/art/dex2oat/linker/arm/ |
D | relative_patcher_thumb2.cc | 109 uint32_t disp = target_offset - (patch_offset + kPcDisplacement); in PatchBakerReadBarrierBranch() local 110 DCHECK((disp >> 20) == 0u || (disp >> 20) == 0xfffu); // 21-bit signed. in PatchBakerReadBarrierBranch() 111 insn |= ((disp << (26 - 20)) & 0x04000000u) | // Shift bit 20 to 26, "S". in PatchBakerReadBarrierBranch() 112 ((disp >> (19 - 11)) & 0x00000800u) | // Shift bit 19 to 13, "J1". in PatchBakerReadBarrierBranch() 113 ((disp >> (18 - 13)) & 0x00002000u) | // Shift bit 18 to 11, "J2". in PatchBakerReadBarrierBranch() 114 ((disp << (16 - 12)) & 0x003f0000u) | // Shift bits 12-17 to 16-25, "imm6". in PatchBakerReadBarrierBranch() 115 ((disp >> (1 - 0)) & 0x000007ffu); // Shift bits 1-12 to 0-11, "imm11". in PatchBakerReadBarrierBranch()
|
/art/compiler/utils/x86/ |
D | assembler_x86.h | 76 int32_t disp() const { in disp() function 121 void SetDisp8(int8_t disp) { in SetDisp8() argument 123 encoding_[length_++] = static_cast<uint8_t>(disp); in SetDisp8() 124 disp_ = disp; in SetDisp8() 127 void SetDisp32(int32_t disp) { in SetDisp32() argument 129 int disp_size = sizeof(disp); in SetDisp32() 130 memmove(&encoding_[length_], &disp, disp_size); in SetDisp32() 132 disp_ = disp; in SetDisp32() 167 Address(Register base_in, int32_t disp) { in Address() argument 168 Init(base_in, disp); in Address() [all …]
|
D | assembler_x86_test.cc | 1365 for (int32_t disp : displacements) { // extra displacement in TEST_F() local 1368 EXPECT_EQ(x86::Address::displace(x86::Address(reg, disp0), disp), in TEST_F() 1369 x86::Address(reg, disp0 + disp)); in TEST_F() 1374 EXPECT_EQ(x86::Address::displace(x86::Address(reg, scale, disp0), disp), in TEST_F() 1375 x86::Address(reg, scale, disp0 + disp)); in TEST_F() 1385 EXPECT_EQ(x86::Address::displace(x86::Address(reg, index, scale, disp0), disp), in TEST_F() 1386 x86::Address(reg, index, scale, disp0 + disp)); in TEST_F() 1391 EXPECT_EQ(x86::Address::displace(x86::Address::Absolute(disp0), disp), in TEST_F() 1392 x86::Address::Absolute(disp0 + disp)); in TEST_F()
|
/art/dex2oat/linker/arm64/ |
D | relative_patcher_arm64.cc | 215 uint32_t disp = target_offset - ((patch_offset - literal_offset + pc_insn_offset) & ~0xfffu); in PatchPcRelativeReference() local 249 insn = PatchAdrp(insn, disp); in PatchPcRelativeReference() 306 uint32_t imm12 = (disp & 0xfffu) >> shift; in PatchPcRelativeReference() 332 uint32_t disp = target_offset - patch_offset; in PatchBakerReadBarrierBranch() local 333 DCHECK((disp >> 20) == 0u || (disp >> 20) == 4095u); // 21-bit signed. in PatchBakerReadBarrierBranch() 334 insn |= (disp << (5 - 2)) & 0x00ffffe0u; // Shift bits 2-20 to 5-23. in PatchBakerReadBarrierBranch() 358 uint32_t Arm64RelativePatcher::PatchAdrp(uint32_t adrp, uint32_t disp) { in PatchAdrp() argument 361 ((disp & 0x00003000u) << (29 - 12)) | in PatchAdrp() 363 ((disp & 0xffffc000u) >> (12 + 2 - 5)) | in PatchAdrp() 369 ((disp & 0x80000000u) >> (31 - 23)); in PatchAdrp()
|
D | relative_patcher_arm64_test.cc | 275 uint32_t disp = target_offset - (adrp_offset & ~0xfffu); in GenNopsAndAdrpAndUse() local 277 DCHECK_ALIGNED(disp, 1u << 2); in GenNopsAndAdrpAndUse() 279 ((disp & 0xfffu) << (10 - 2)); // imm12 = ((disp & 0xfffu) >> 2) is at bit 10. in GenNopsAndAdrpAndUse() 282 (disp & 0xfffu) << 10; // imm12 = (disp & 0xfffu) is at bit 10. in GenNopsAndAdrpAndUse() 287 ((disp & 0x3000u) << (29 - 12)) | // immlo = ((disp & 0x3000u) >> 12) is at bit 29, in GenNopsAndAdrpAndUse() 288 ((disp & 0xffffc000) >> (14 - 5)) | // immhi = (disp >> 14) is at bit 5, in GenNopsAndAdrpAndUse() 290 ((disp & 0x80000000) >> (31 - 23)); // sign bit in immhi is at bit 23. in GenNopsAndAdrpAndUse() 887 [&](uint32_t adrp_offset, uint32_t disp) { in TEST_F() argument 890 /*sprel_disp_in_load_units=*/ disp >> 2, in TEST_F() 901 [&](uint32_t adrp_offset, uint32_t disp) { in TEST_F() argument [all …]
|
D | relative_patcher_arm64.h | 58 static uint32_t PatchAdrp(uint32_t adrp, uint32_t disp);
|
/art/compiler/utils/x86_64/ |
D | assembler_x86_64.h | 114 int32_t disp() const { in disp() function 174 void SetDisp8(int8_t disp) { in SetDisp8() argument 176 encoding_[length_++] = static_cast<uint8_t>(disp); in SetDisp8() 179 void SetDisp32(int32_t disp) { in SetDisp32() argument 181 int disp_size = sizeof(disp); in SetDisp32() 182 memmove(&encoding_[length_], &disp, disp_size); in SetDisp32() 211 Address(CpuRegister base_in, int32_t disp) { in Address() argument 212 Init(base_in, disp); in Address() 215 Address(CpuRegister base_in, Offset disp) { in Address() argument 216 Init(base_in, disp.Int32Value()); in Address() [all …]
|
D | assembler_x86_64_test.cc | 2473 for (int32_t disp : displacements) { // extra displacement in TEST_F() local 2476 EXPECT_EQ(x86_64::Address::displace(x86_64::Address(reg, disp0), disp), in TEST_F() 2477 x86_64::Address(reg, disp0 + disp)); in TEST_F() 2482 EXPECT_EQ(x86_64::Address::displace(x86_64::Address(reg, scale, disp0), disp), in TEST_F() 2483 x86_64::Address(reg, scale, disp0 + disp)); in TEST_F() 2493 EXPECT_EQ(x86_64::Address::displace(x86_64::Address(reg, index, scale, disp0), disp), in TEST_F() 2494 x86_64::Address(reg, index, scale, disp0 + disp)); in TEST_F() 2499 EXPECT_EQ(x86_64::Address::displace(x86_64::Address::Absolute(disp0, false), disp), in TEST_F() 2500 x86_64::Address::Absolute(disp0 + disp, false)); in TEST_F() 2501 EXPECT_EQ(x86_64::Address::displace(x86_64::Address::Absolute(disp0, true), disp), in TEST_F() [all …]
|
/art/dex2oat/linker/riscv64/ |
D | relative_patcher_riscv64.cc | 71 uint32_t disp = target_offset - (patch_offset - literal_offset + pc_insn_offset); in PatchPcRelativeReference() local 76 insn = PatchAuipc(insn, disp); in PatchPcRelativeReference() 86 uint32_t imm12 = disp & 0xfffu; // The instruction shall sign-extend this immediate. in PatchPcRelativeReference()
|
/art/disassembler/ |
D | disassembler_riscv64.cc | 1841 int32_t disp = BitFieldExtract(insn16, 3, 3) << 1 | BitFieldExtract(insn16, 11, 1) << 4 | in Dump16() local 1846 PrintBranchOffset(SignExtendBits<12>(disp)); in Dump16() 1851 int32_t disp = BitFieldExtract(insn16, 3, 2) << 1 | BitFieldExtract(insn16, 10, 2) << 3 | in Dump16() local 1857 PrintBranchOffset(SignExtendBits<9>(disp)); in Dump16()
|
/art/compiler/optimizing/ |
D | code_generator_x86.cc | 1726 int32_t disp = 0) { in CreateAddress() argument 1728 return Address(base, disp); in CreateAddress() 1731 return Address(base, index, scale, disp); in CreateAddress()
|