/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 149 IGetMemAccessType(Instruction::Code code) argument 154 IPutMemAccessType(Instruction::Code code) argument 159 SGetMemAccessType(Instruction::Code code) argument 164 SPutMemAccessType(Instruction::Code code) argument 169 AGetMemAccessType(Instruction::Code code) argument 174 APutMemAccessType(Instruction::Code code) argument 179 IGetOrIPutMemAccessType(Instruction::Code code) argument 184 IGetQuickOrIPutQuickMemAccessType(Instruction::Code code) argument 207 SGetOrSPutMemAccessType(Instruction::Code code) argument 212 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].GetFrameInfo().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 | 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/mips64/ |
H A D | relative_patcher_mips64.cc | 39 void Mips64RelativePatcher::PatchCall(std::vector<uint8_t>* code, argument 44 DCHECK_GE(code->size(), 8u); 45 DCHECK_LE(literal_offset, code->size() - 8u); 47 DCHECK_EQ((*code)[literal_offset + 0], 0x34); 48 DCHECK_EQ((*code)[literal_offset + 1], 0x12); 49 DCHECK_EQ(((*code)[literal_offset + 2] & 0x1F), 0x1E); 50 DCHECK_EQ(((*code)[literal_offset + 3] & 0xFC), 0xEC); 52 DCHECK_EQ((*code)[literal_offset + 4], 0x78); 53 DCHECK_EQ((*code)[literal_offset + 5], 0x56); 54 DCHECK_EQ(((*code)[literal_offse 73 PatchPcRelativeReference(std::vector<uint8_t>* code, const LinkerPatch& patch, uint32_t patch_offset, uint32_t target_offset) argument [all...] |
H A D | relative_patcher_mips64.h | 34 void PatchCall(std::vector<uint8_t>* code, 38 void PatchPcRelativeReference(std::vector<uint8_t>* code, 42 void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code,
|
/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.h | 29 void PatchPcRelativeReference(std::vector<uint8_t>* code, 33 void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code,
|
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_base.h | 32 void PatchCall(std::vector<uint8_t>* code,
|
/art/compiler/linker/mips/ |
H A D | relative_patcher_mips.cc | 39 void MipsRelativePatcher::PatchCall(std::vector<uint8_t>* code ATTRIBUTE_UNUSED, 46 void MipsRelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 59 DCHECK_GE(code->size(), 8u); 60 DCHECK_LE(literal_offset, code->size() - 8u); 63 DCHECK_EQ((*code)[literal_offset + 0], 0x34); 64 DCHECK_EQ((*code)[literal_offset + 1], 0x12); 65 DCHECK_EQ(((*code)[literal_offset + 2] & 0x1F), 0x1E); 66 DCHECK_EQ(((*code)[literal_offset + 3] & 0xFC), 0xEC); 68 DCHECK_EQ((*code)[literal_offset + 4], 0x78); 69 DCHECK_EQ((*code)[literal_offse [all...] |
H A D | relative_patcher_mips.h | 36 void PatchCall(std::vector<uint8_t>* code, 40 void PatchPcRelativeReference(std::vector<uint8_t>* code, 44 void PatchBakerReadBarrierBranch(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; 37 void X86_64RelativePatcher::PatchBakerReadBarrierBranch(std::vector<uint8_t>* code ATTRIBUTE_UNUSED,
|
H A D | relative_patcher_x86_64.h | 29 void PatchPcRelativeReference(std::vector<uint8_t>* code, 33 void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code,
|
/art/compiler/utils/arm64/ |
H A D | assembler_arm64.h | 70 // Finalize the code. 73 // Size of generated code. 108 static vixl::aarch64::Register reg_x(int code) { argument 109 CHECK(code < kNumberOfXRegisters) << code; 110 if (code == SP) { 112 } else if (code == XZR) { 115 return vixl::aarch64::Register::GetXRegFromCode(code); 118 static vixl::aarch64::Register reg_w(int code) { 119 CHECK(code < kNumberOfWRegister [all...] |
/art/compiler/linker/arm/ |
H A D | relative_patcher_thumb2.h | 29 void PatchCall(std::vector<uint8_t>* code, 33 void PatchPcRelativeReference(std::vector<uint8_t>* code, 37 void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code, 48 void SetInsn32(std::vector<uint8_t>* code, uint32_t offset, uint32_t value); 49 static uint32_t GetInsn32(ArrayRef<const uint8_t> code, uint32_t offset); 52 static uint32_t GetInsn32(Vector* code, uint32_t offset);
|
H A D | relative_patcher_thumb2.cc | 39 void Thumb2RelativePatcher::PatchCall(std::vector<uint8_t>* code, argument 43 DCHECK_LE(literal_offset + 4u, code->size()); 62 DCHECK_EQ(GetInsn32(code, literal_offset) & 0xf800d000, 0xf000d000); 64 SetInsn32(code, literal_offset, value); 67 void Thumb2RelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 76 uint32_t insn = GetInsn32(code, literal_offset); 84 SetInsn32(code, literal_offset, insn); 87 void Thumb2RelativePatcher::PatchBakerReadBarrierBranch(std::vector<uint8_t>* code ATTRIBUTE_UNUSED, 112 MemoryRegion code(thunk_code.data(), thunk_code.size()); 113 assembler.FinalizeInstructions(code); 127 SetInsn32(std::vector<uint8_t>* code, uint32_t offset, uint32_t value) argument 137 GetInsn32(ArrayRef<const uint8_t> code, uint32_t offset) argument 149 GetInsn32(Vector* 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/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); 115 void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code, argument 119 relative_patcher_->PatchBakerReadBarrierBranch(code, patch, patch_offset);
|
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, 113 virtual void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code,
|
H A D | relative_patcher_test.h | 81 const ArrayRef<const uint8_t>& code, 87 code, 98 // We want to align the code rather than the preheader. 118 const auto code = compiled_method->GetQuickCode(); local 119 offset += code.size(); 149 ArrayRef<const uint8_t> code = compiled_method->GetQuickCode(); local 151 patched_code_.assign(code.begin(), code.end()); 152 code = ArrayRef<const uint8_t>(patched_code_); 183 out_.WriteFully(&code[ 79 AddCompiledMethod( MethodReference method_ref, const ArrayRef<const uint8_t>& code, const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) argument [all...] |
/art/dexlayout/ |
H A D | dexlayout.h | 88 void DumpBytecodes(uint32_t idx, const dex_ir::CodeItem* code, uint32_t code_offset); 89 void DumpCatches(const dex_ir::CodeItem* code); 93 void DumpCode(uint32_t idx, const dex_ir::CodeItem* code, uint32_t code_offset); 98 void DumpInstruction(const dex_ir::CodeItem* code, 104 void DumpLocalInfo(const dex_ir::CodeItem* code); 105 void DumpMethod(uint32_t idx, uint32_t flags, const dex_ir::CodeItem* code, int i); 106 void DumpPositionInfo(const dex_ir::CodeItem* code); 124 void DumpCFG(const DexFile* dex_file, uint32_t dex_method_idx, const DexFile::CodeItem* code);
|
/art/compiler/linker/arm64/ |
H A D | relative_patcher_arm64.h | 58 void PatchCall(std::vector<uint8_t>* code, 62 void PatchPcRelativeReference(std::vector<uint8_t>* code, 66 void PatchBakerReadBarrierBranch(std::vector<uint8_t>* code, 95 static bool NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, uint32_t literal_offset, 97 void SetInsn(std::vector<uint8_t>* code, uint32_t offset, uint32_t value); 98 static uint32_t GetInsn(ArrayRef<const uint8_t> code, uint32_t offset); 101 static uint32_t GetInsn(std::vector<uint8_t, Alloc>* code, uint32_t offset);
|
H A D | relative_patcher_arm64.cc | 118 ArrayRef<const uint8_t> code = compiled_method->GetQuickCode(); local 119 uint32_t max_extra_space = MaxExtraSpace(num_adrp, code.size()); 125 // Now that we have the actual offset where the code will be placed, locate the ADRP insns 128 uint32_t thunk_offset = compiled_method->AlignCode(quick_code_offset + code.size()); 133 if (NeedsErratum843419Thunk(code, patch.LiteralOffset(), patch_offset)) { 183 void Arm64RelativePatcher::PatchCall(std::vector<uint8_t>* code, argument 187 DCHECK_LE(literal_offset + 4u, code->size()); 198 DCHECK_EQ(GetInsn(code, literal_offset) & 0xfc000000u, 0x94000000u); 200 SetInsn(code, literal_offset, insn); 203 void Arm64RelativePatcher::PatchPcRelativeReference(std::vector<uint8_t>* code, argument 298 PatchBakerReadBarrierBranch(std::vector<uint8_t>* code, const LinkerPatch& patch, uint32_t patch_offset) argument 526 NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, uint32_t literal_offset, uint32_t patch_offset) argument 576 SetInsn(std::vector<uint8_t>* code, uint32_t offset, uint32_t value) argument 586 GetInsn(ArrayRef<const uint8_t> code, uint32_t offset) argument 598 GetInsn(std::vector<uint8_t, Alloc>* code, uint32_t offset) argument [all...] |
/art/compiler/trampolines/ |
H A D | trampoline_compiler.cc | 87 MemoryRegion code(entry_stub->data(), entry_stub->size()); 88 __ FinalizeInstructions(code); 129 MemoryRegion code(entry_stub->data(), entry_stub->size()); 130 __ FinalizeInstructions(code); 161 MemoryRegion code(entry_stub->data(), entry_stub->size()); 162 __ FinalizeInstructions(code); 193 MemoryRegion code(entry_stub->data(), entry_stub->size()); 194 __ FinalizeInstructions(code); 214 MemoryRegion code(entry_stub->data(), entry_stub->size()); 215 __ FinalizeInstructions(code); [all...] |
/art/runtime/interpreter/mterp/arm/ |
H A D | bincmp.S | 12 FETCH_S rINST, 1 @ rINST<- branch offset, in code units
|