/art/runtime/ |
H A D | dex_instruction_utils.h | 92 constexpr bool IsInstructionIGet(Instruction::Code code) { argument 93 return Instruction::IGET <= code && code <= Instruction::IGET_SHORT; 96 constexpr bool IsInstructionIPut(Instruction::Code code) { argument 97 return Instruction::IPUT <= code && code <= Instruction::IPUT_SHORT; 100 constexpr bool IsInstructionSGet(Instruction::Code code) { argument 101 return Instruction::SGET <= code && code <= Instruction::SGET_SHORT; 104 constexpr bool IsInstructionSPut(Instruction::Code code) { argument 108 IsInstructionAGet(Instruction::Code code) argument 112 IsInstructionAPut(Instruction::Code code) argument 116 IsInstructionIGetOrIPut(Instruction::Code code) argument 120 IsInstructionIGetQuickOrIPutQuick(Instruction::Code code) argument 125 IsInstructionSGetOrSPut(Instruction::Code code) argument 129 IsInstructionAGetOrAPut(Instruction::Code code) argument 133 IsInstructionBinOp2Addr(Instruction::Code code) argument 155 IGetMemAccessType(Instruction::Code code) argument 162 IPutMemAccessType(Instruction::Code code) argument 169 SGetMemAccessType(Instruction::Code code) argument 176 SPutMemAccessType(Instruction::Code code) argument 183 AGetMemAccessType(Instruction::Code code) argument 190 APutMemAccessType(Instruction::Code code) argument 197 IGetOrIPutMemAccessType(Instruction::Code code) argument 204 IGetQuickOrIPutQuickMemAccessType(Instruction::Code code) argument 227 SGetOrSPutMemAccessType(Instruction::Code code) argument 234 AGetOrAPutMemAccessType(Instruction::Code code) argument [all...] |
H A D | oat_file-inl.h | 26 const void* code = EntryPointToCodePointer(GetOatPointer<const void*>(code_offset_)); local 27 if (code == nullptr) { 30 // Return a pointer to the packed struct before the code. 31 return reinterpret_cast<const OatQuickMethodHeader*>(code) - 1; 51 const void* code = EntryPointToCodePointer(GetQuickCode()); local 52 if (code == nullptr) { 55 return reinterpret_cast<const OatQuickMethodHeader*>(code)[-1].frame_info_.FrameSizeInBytes(); 59 const void* code = EntryPointToCodePointer(GetQuickCode()); local 60 if (code == nullptr) { 63 return reinterpret_cast<const OatQuickMethodHeader*>(code)[ 67 const void* code = EntryPointToCodePointer(GetQuickCode()); local 88 const void* code = EntryPointToCodePointer(GetOatPointer<const void*>(code_offset_)); local 100 const void* code = EntryPointToCodePointer(GetOatPointer<const void*>(code_offset_)); local [all...] |
H A D | oat_quick_method_header.h | 30 // OatQuickMethodHeader precedes the raw code chunk generated by the compiler. 42 uintptr_t code = reinterpret_cast<uintptr_t>(code_ptr); local 43 uintptr_t header = code - OFFSETOF_MEMBER(OatQuickMethodHeader, code_); 44 DCHECK(IsAlignedParam(code, GetInstructionSetAlignment(kRuntimeISA)) || 46 << std::hex << code << " " << std::hex << header; 99 // (not `kThumb2`), *but* we always generate code for the Thumb-2 132 // The code size in bytes. 134 // The actual code.
|
H A D | dex_instruction_visitor.h | 28 void Visit(const uint16_t* code, size_t size_in_bytes) { argument 33 const Instruction* inst = Instruction::At(&code[i]);
|
/art/compiler/linker/x86/ |
H A D | relative_patcher_x86.cc | 24 void X86RelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 33 DCHECK_LT(anchor_literal_offset, code->size()); 34 DCHECK_EQ((*code)[anchor_literal_offset - 5u], 0xe8u); 35 DCHECK_EQ((*code)[anchor_literal_offset - 4u], 0x00u); 36 DCHECK_EQ((*code)[anchor_literal_offset - 3u], 0x00u); 37 DCHECK_EQ((*code)[anchor_literal_offset - 2u], 0x00u); 38 DCHECK_EQ((*code)[anchor_literal_offset - 1u], 0x00u); 39 DCHECK_EQ((*code)[anchor_literal_offset] & 0xf8u, 0x58u); 44 DCHECK_LE(literal_offset, code->size()); 45 DCHECK_EQ((*code)[literal_offse [all...] |
H A D | relative_patcher_x86_base.cc | 37 void X86BaseRelativePatcher::PatchCall(std::vector<uint8_t>* code, argument 41 DCHECK_LE(literal_offset + 4u, code->size()); 47 reinterpret_cast<unaligned_int32_t*>(&(*code)[literal_offset])[0] = displacement;
|
H A D | relative_patcher_x86.h | 29 void PatchPcRelativeReference(std::vector<uint8_t>* code,
|
H A D | relative_patcher_x86_base.h | 32 void PatchCall(std::vector<uint8_t>* code,
|
/art/compiler/linker/x86_64/ |
H A D | relative_patcher_x86_64.cc | 24 void X86_64RelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 28 DCHECK_LE(patch.LiteralOffset() + 4u, code->size()); 34 reinterpret_cast<unaligned_int32_t*>(&(*code)[patch.LiteralOffset()])[0] = displacement;
|
H A D | relative_patcher_x86_64.h | 29 void PatchPcRelativeReference(std::vector<uint8_t>* code,
|
/art/compiler/linker/arm/ |
H A D | relative_patcher_thumb2.cc | 31 void Thumb2RelativePatcher::PatchCall(std::vector<uint8_t>* code, argument 35 DCHECK_LE(literal_offset + 4u, code->size()); 54 DCHECK_EQ(GetInsn32(code, literal_offset) & 0xf800d000, 0xf000d000); 56 SetInsn32(code, literal_offset, value); 59 void Thumb2RelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 68 uint32_t insn = GetInsn32(code, literal_offset); 76 SetInsn32(code, literal_offset, insn); 91 MemoryRegion code(thunk_code.data(), thunk_code.size()); 92 assembler.FinalizeInstructions(code); 96 void Thumb2RelativePatcher::SetInsn32(std::vector<uint8_t>* code, uint32_ argument 106 GetInsn32(ArrayRef<const uint8_t> code, uint32_t offset) argument 118 GetInsn32(Vector* code, uint32_t offset) argument [all...] |
H A D | relative_patcher_thumb2.h | 29 void PatchCall(std::vector<uint8_t>* code, 33 void PatchPcRelativeReference(std::vector<uint8_t>* code, 41 void SetInsn32(std::vector<uint8_t>* code, uint32_t offset, uint32_t value); 42 static uint32_t GetInsn32(ArrayRef<const uint8_t> code, uint32_t offset); 45 static uint32_t GetInsn32(Vector* code, uint32_t offset);
|
/art/compiler/linker/arm64/ |
H A D | relative_patcher_arm64.h | 36 void PatchCall(std::vector<uint8_t>* code, 40 void PatchPcRelativeReference(std::vector<uint8_t>* code, 49 static bool NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, uint32_t literal_offset, 51 void SetInsn(std::vector<uint8_t>* code, uint32_t offset, uint32_t value); 52 static uint32_t GetInsn(ArrayRef<const uint8_t> code, uint32_t offset); 55 static uint32_t GetInsn(std::vector<uint8_t, Alloc>* code, uint32_t offset);
|
H A D | relative_patcher_arm64.cc | 84 // Now that we have the actual offset where the code will be placed, locate the ADRP insns 87 ArrayRef<const uint8_t> code = compiled_method->GetQuickCode(); local 88 uint32_t thunk_offset = compiled_method->AlignCode(quick_code_offset + code.size()); 93 if (NeedsErratum843419Thunk(code, patch.LiteralOffset(), patch_offset)) { 143 void Arm64RelativePatcher::PatchCall(std::vector<uint8_t>* code, argument 147 DCHECK_LE(literal_offset + 4u, code->size()); 158 DCHECK_EQ(GetInsn(code, literal_offset) & 0xfc000000u, 0x94000000u); 160 SetInsn(code, literal_offset, insn); 163 void Arm64RelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 170 uint32_t insn = GetInsn(code, literal_offse 278 NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, uint32_t literal_offset, uint32_t patch_offset) argument 328 SetInsn(std::vector<uint8_t>* code, uint32_t offset, uint32_t value) argument 338 GetInsn(ArrayRef<const uint8_t> code, uint32_t offset) argument 350 GetInsn(std::vector<uint8_t, Alloc>* code, uint32_t offset) argument [all...] |
/art/runtime/arch/x86_64/ |
H A D | thread_x86_64.cc | 33 static void arch_prctl(int code, void* val) { argument 34 syscall(__NR_arch_prctl, code, val);
|
/art/compiler/utils/arm64/ |
H A D | assembler_arm64.h | 87 // We indicate the size of the initial code generation buffer to the VIXL 98 // Finalize the code. 101 // Size of generated code. 111 // Emit code that will create an activation on the stack. 116 // Emit code that will remove an activation from the stack. 171 // Exploit fast access in managed code to Thread::Current(). 203 // Generate code to check if Thread::Current()->exception_ is non-null 226 static vixl::Register reg_x(int code) { argument 227 CHECK(code < kNumberOfXRegisters) << code; [all...] |
/art/compiler/trampolines/ |
H A D | trampoline_compiler.cc | 72 MemoryRegion code(entry_stub->data(), entry_stub->size()); 73 __ FinalizeInstructions(code); 111 MemoryRegion code(entry_stub->data(), entry_stub->size()); 112 __ FinalizeInstructions(code); 143 MemoryRegion code(entry_stub->data(), entry_stub->size()); 144 __ FinalizeInstructions(code); 175 MemoryRegion code(entry_stub->data(), entry_stub->size()); 176 __ FinalizeInstructions(code); 196 MemoryRegion code(entry_stub->data(), entry_stub->size()); 197 __ FinalizeInstructions(code); [all...] |
/art/compiler/linker/ |
H A D | multi_oat_relative_patcher.h | 34 // any number of oat files. It provides storage for method code offsets 50 // It must must never point directly to a method's code to avoid relative offsets 96 void PatchCall(std::vector<uint8_t>* code, argument 102 relative_patcher_->PatchCall(code, literal_offset, patch_offset, target_offset); 106 void PatchPcRelativeReference(std::vector<uint8_t>* code, argument 112 relative_patcher_->PatchPcRelativeReference(code, patch, patch_offset, target_offset);
|
H A D | relative_patcher_test.h | 85 const ArrayRef<const uint8_t>& code, 91 code, 115 const auto code = compiled_method->GetQuickCode(); local 116 offset += code.size(); 147 ArrayRef<const uint8_t> code = compiled_method->GetQuickCode(); local 149 patched_code_.assign(code.begin(), code.end()); 150 code = ArrayRef<const uint8_t>(patched_code_); 176 out_.WriteFully(&code[0], code 84 AddCompiledMethod(MethodReference method_ref, const ArrayRef<const uint8_t>& code, const ArrayRef<const LinkerPatch>& patches) argument [all...] |
H A D | relative_patcher.h | 99 // Patch method code. The input displacement is relative to the patched location, 101 virtual void PatchCall(std::vector<uint8_t>* code, 107 virtual void PatchPcRelativeReference(std::vector<uint8_t>* code,
|
/art/runtime/interpreter/mterp/arm/ |
H A D | bincmp.S | 12 FETCH_S rINST, 1 @ rINST<- branch offset, in code units
|
H A D | op_packed_switch.S | 18 bl $func @ r0<- code-unit branch offset
|
H A D | zcmp.S | 10 FETCH_S rINST, 1 @ rINST<- branch offset, in code units
|
/art/runtime/arch/arm/ |
H A D | jni_entrypoints_arm.S | 37 cbz r0, 1f @ is method code null? 45 bx r12 @ if non-null, tail call to method's code
|
/art/compiler/driver/ |
H A D | compiled_method_storage.h | 52 const LengthPrefixedArray<uint8_t>* DeduplicateCode(const ArrayRef<const uint8_t>& code); 53 void ReleaseCode(const LengthPrefixedArray<uint8_t>* code);
|