/art/dex2oat/linker/arm/ |
D | relative_patcher_thumb2_test.cc | 289 static uint32_t EncodeBakerReadBarrierGcRootData(uint32_t root_reg, bool narrow) { in EncodeBakerReadBarrierGcRootData() argument 290 return arm::CodeGeneratorARMVIXL::EncodeBakerReadBarrierGcRootData(root_reg, narrow); in EncodeBakerReadBarrierGcRootData() 307 std::vector<uint8_t> CompileBakerGcRootThunk(uint32_t root_reg, bool narrow) { in CompileBakerGcRootThunk() argument 309 /* literal_offset */ 0u, EncodeBakerReadBarrierGcRootData(root_reg, narrow)); in CompileBakerGcRootThunk() 1188 for (uint32_t root_reg : kBakerValidRegs) { in TEST_F() local 1190 uint32_t ldr = kLdrWInsn | (/* offset */ 8) | (/* base_reg */ 0 << 16) | (root_reg << 12); in TEST_F() 1196 kLiteralOffset, EncodeBakerReadBarrierGcRootData(root_reg, /* narrow */ false)), in TEST_F() 1205 for (uint32_t root_reg : kBakerValidRegs) { in TEST_F() local 1208 uint32_t ldr = kLdrWInsn | (/* offset */ 8) | (/* base_reg */ 0 << 16) | (root_reg << 12); in TEST_F() 1213 std::vector<uint8_t> expected_thunk = CompileBakerGcRootThunk(root_reg, /* narrow */ false); in TEST_F() [all …]
|
/art/compiler/optimizing/ |
D | code_generator_arm_vixl.h | 826 static uint32_t EncodeBakerReadBarrierGcRootData(uint32_t root_reg, bool narrow) { in EncodeBakerReadBarrierGcRootData() argument 827 CheckValidReg(root_reg); in EncodeBakerReadBarrierGcRootData() 828 DCHECK(!narrow || root_reg < 8u) << root_reg; in EncodeBakerReadBarrierGcRootData() 832 BakerReadBarrierFirstRegField::Encode(root_reg) | in EncodeBakerReadBarrierGcRootData() 837 static uint32_t EncodeBakerReadBarrierUnsafeCasData(uint32_t root_reg) { in EncodeBakerReadBarrierUnsafeCasData() argument 838 CheckValidReg(root_reg); in EncodeBakerReadBarrierUnsafeCasData() 840 BakerReadBarrierFirstRegField::Encode(root_reg) | in EncodeBakerReadBarrierUnsafeCasData()
|
D | code_generator_arm64.h | 848 static inline uint32_t EncodeBakerReadBarrierGcRootData(uint32_t root_reg) { in EncodeBakerReadBarrierGcRootData() argument 849 CheckValidReg(root_reg); in EncodeBakerReadBarrierGcRootData() 851 BakerReadBarrierFirstRegField::Encode(root_reg) | in EncodeBakerReadBarrierGcRootData()
|
D | code_generator_arm64.cc | 990 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); in Finalize() local 993 if ((prev_insn & 0xffe0ffff) != (0x2a0003e0 | root_reg)) { // MOV? in Finalize() 994 CHECK_EQ(prev_insn & 0xffc0001fu, 0xb9400000u | root_reg); // LDR? in Finalize() 5988 Register root_reg = RegisterFrom(root, DataType::Type::kReference); in GenerateGcRootFieldLoad() local 6014 uint32_t custom_data = EncodeBakerReadBarrierGcRootData(root_reg.GetCode()); in GenerateGcRootFieldLoad() 6024 __ ldr(root_reg, MemOperand(obj.X(), offset)); in GenerateGcRootFieldLoad() 6032 __ Add(root_reg.X(), obj.X(), offset); in GenerateGcRootFieldLoad() 6034 EmitAddPlaceholder(fixup_label, root_reg.X(), obj.X()); in GenerateGcRootFieldLoad() 6043 __ Ldr(root_reg, MemOperand(obj, offset)); in GenerateGcRootFieldLoad() 6045 EmitLdrOffsetPlaceholder(fixup_label, root_reg, obj.X()); in GenerateGcRootFieldLoad() [all …]
|
D | code_generator_arm_vixl.cc | 2001 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); in Finalize() local 2002 CHECK_EQ(prev_insn & 0xfff0f000u, 0xf8d00000u | (root_reg << 12)); in Finalize() 2007 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); in Finalize() local 2008 CHECK_EQ(prev_insn & 0xf807u, 0x6800u | root_reg); in Finalize() 2016 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); in Finalize() local 2017 CHECK_EQ(prev_insn & 0xfff0fff0u, 0xeb000000u | (root_reg << 8)); in Finalize() 8528 vixl32::Register root_reg = RegisterFrom(root); in GenerateGcRootFieldLoad() local 8552 bool narrow = CanEmitNarrowLdr(root_reg, obj, offset); in GenerateGcRootFieldLoad() 8553 uint32_t custom_data = EncodeBakerReadBarrierGcRootData(root_reg.GetCode(), narrow); in GenerateGcRootFieldLoad() 8567 __ ldr(EncodingSize(narrow ? Narrow : Wide), root_reg, MemOperand(obj, offset)); in GenerateGcRootFieldLoad() [all …]
|
D | code_generator_x86_64.cc | 7119 CpuRegister root_reg = root.AsRegister<CpuRegister>(); in GenerateGcRootFieldLoad() local 7133 __ movl(root_reg, address); in GenerateGcRootFieldLoad() 7161 __ leaq(root_reg, address); in GenerateGcRootFieldLoad() 7171 __ movl(root_reg, address); in GenerateGcRootFieldLoad()
|
D | code_generator_x86.cc | 7848 Register root_reg = root.AsRegister<Register>(); in GenerateGcRootFieldLoad() local 7862 __ movl(root_reg, address); in GenerateGcRootFieldLoad() 7890 __ leal(root_reg, address); in GenerateGcRootFieldLoad() 7900 __ movl(root_reg, address); in GenerateGcRootFieldLoad()
|
/art/dex2oat/linker/arm64/ |
D | relative_patcher_arm64_test.cc | 528 static uint32_t EncodeBakerReadBarrierGcRootData(uint32_t root_reg) { in EncodeBakerReadBarrierGcRootData() argument 529 return arm64::CodeGeneratorARM64::EncodeBakerReadBarrierGcRootData(root_reg); in EncodeBakerReadBarrierGcRootData() 544 std::vector<uint8_t> CompileBakerGcRootThunk(uint32_t root_reg) { in CompileBakerGcRootThunk() argument 546 /* literal_offset */ 0u, EncodeBakerReadBarrierGcRootData(root_reg)); in CompileBakerGcRootThunk() 1380 for (uint32_t root_reg : valid_regs) { in TEST_F() local 1382 uint32_t ldr = kLdrWInsn | (/* offset */ 8 << (10 - 2)) | (/* base_reg */ 0 << 5) | root_reg; in TEST_F() 1388 kLiteralOffset, EncodeBakerReadBarrierGcRootData(root_reg)), in TEST_F() 1397 for (uint32_t root_reg : valid_regs) { in TEST_F() local 1401 uint32_t ldr = kLdrWInsn | (/* offset */ 8 << (10 - 2)) | (/* base_reg */ 0 << 5) | root_reg; in TEST_F() 1406 std::vector<uint8_t> expected_thunk = CompileBakerGcRootThunk(root_reg); in TEST_F() [all …]
|