/art/compiler/utils/x86/ |
D | assembler_x86.h | 60 Register rm() const { in rm() 61 return static_cast<Register>(encoding_at(0) & 7); in rm() 68 Register index() const { in index() 69 return static_cast<Register>((encoding_at(1) >> 3) & 7); in index() 72 Register base() const { in base() 73 return static_cast<Register>(encoding_at(1) & 7); in base() 92 bool IsRegister(Register reg) const { in IsRegister() 101 void SetModRM(int mod_in, Register rm_in) { in SetModRM() 107 void SetSIB(ScaleFactor scale_in, Register index_in, Register base_in) { in SetSIB() 145 explicit Operand(Register reg) : disp_(0), fixup_(nullptr) { SetModRM(3, reg); } in Operand() [all …]
|
D | assembler_x86.cc | 69 void X86Assembler::call(Register reg) { in call() 102 void X86Assembler::pushl(Register reg) { in pushl() 127 void X86Assembler::popl(Register reg) { in popl() 140 void X86Assembler::movl(Register dst, const Immediate& imm) { in movl() 147 void X86Assembler::movl(Register dst, Register src) { in movl() 154 void X86Assembler::movl(Register dst, const Address& src) { in movl() 161 void X86Assembler::movl(const Address& dst, Register src) { in movl() 182 void X86Assembler::movntl(const Address& dst, Register src) { in movntl() 189 void X86Assembler::blsi(Register dst, Register src) { in blsi() 203 void X86Assembler::blsmsk(Register dst, Register src) { in blsmsk() [all …]
|
D | assembler_x86_test.cc | 38 bool operator()(const x86::Register& a, const x86::Register& b) const { in operator ()() 49 x86::Register, 55 x86::Register, 94 new x86::Register(x86::EAX), in SetUpHelpers() 95 new x86::Register(x86::EBX), in SetUpHelpers() 96 new x86::Register(x86::ECX), in SetUpHelpers() 97 new x86::Register(x86::EDX), in SetUpHelpers() 98 new x86::Register(x86::EBP), in SetUpHelpers() 99 new x86::Register(x86::ESP), in SetUpHelpers() 100 new x86::Register(x86::ESI), in SetUpHelpers() [all …]
|
D | managed_register_x86.cc | 42 Register low; 43 Register high; 68 Register low = AsRegisterPairLow(); in Overlaps() 69 Register high = AsRegisterPairHigh(); in Overlaps()
|
D | managed_register_x86.h | 97 constexpr Register AsCpuRegister() const { in AsCpuRegister() 99 return static_cast<Register>(id_); in AsCpuRegister() 113 constexpr Register AsRegisterPairLow() const { in AsRegisterPairLow() 119 constexpr Register AsRegisterPairHigh() const { in AsRegisterPairHigh() 162 static constexpr X86ManagedRegister FromCpuRegister(Register r) { in FromCpuRegister()
|
/art/compiler/utils/arm/ |
D | assembler_arm_vixl.h | 43 inline dwarf::Reg DWARFReg(vixl32::Register reg) { in DWARFReg() 69 void CompareAndBranchIfZero(vixl32::Register rn, 72 void CompareAndBranchIfNonZero(vixl32::Register rn, 86 void (func_name)(vixl32::Register rd, vixl32::Register rn, const vixl32::Operand& operand) { \ 111 void (func_name)(vixl32::Register rd, const vixl32::Operand& operand) { \ 122 void Rrx(vixl32::Register rd, vixl32::Register rn) { in Rrx() 127 void Mul(vixl32::Register rd, vixl32::Register rn, vixl32::Register rm) { in Mul() 134 void Add(vixl32::Register rd, vixl32::Register rn, const vixl32::Operand& operand) { in Add() 201 void PoisonHeapReference(vixl32::Register reg); 203 void UnpoisonHeapReference(vixl32::Register reg); [all …]
|
D | assembler_arm_vixl.cc | 39 extern const vixl32::Register tr(TR); 41 extern const vixl32::Register mr(MR); 61 void ArmVIXLAssembler::PoisonHeapReference(vixl::aarch32::Register reg) { in PoisonHeapReference() 66 void ArmVIXLAssembler::UnpoisonHeapReference(vixl::aarch32::Register reg) { in UnpoisonHeapReference() 71 void ArmVIXLAssembler::MaybePoisonHeapReference(vixl32::Register reg) { in MaybePoisonHeapReference() 77 void ArmVIXLAssembler::MaybeUnpoisonHeapReference(vixl32::Register reg) { in MaybeUnpoisonHeapReference() 83 void ArmVIXLAssembler::GenerateMarkingRegisterCheck(vixl32::Register temp, int code) { in GenerateMarkingRegisterCheck() 99 void ArmVIXLAssembler::LoadImmediate(vixl32::Register rd, int32_t value) { in LoadImmediate() 148 vixl32::Register temp, in AdjustLoadStoreOffset() 149 vixl32::Register base, in AdjustLoadStoreOffset() [all …]
|
D | managed_register_arm.h | 88 constexpr Register AsCoreRegister() const { in AsCoreRegister() 90 return static_cast<Register>(id_); in AsCoreRegister() 117 Register reg_low = AsRegisterPairLow(); in AsRegisterPair() 125 constexpr Register AsRegisterPairLow() const { in AsRegisterPairLow() 131 constexpr Register AsRegisterPairHigh() const { in AsRegisterPairHigh() 185 static constexpr ArmManagedRegister FromCoreRegister(Register r) { in FromCoreRegister() 207 static constexpr ArmManagedRegister FromCoreRegisterPair(Register r_low) { in FromCoreRegisterPair()
|
D | jni_macro_assembler_arm_vixl.cc | 47 vixl::aarch32::Register AsVIXLRegister(ArmManagedRegister reg) { in AsVIXLRegister() 49 return vixl::aarch32::Register(reg.RegId()); in AsVIXLRegister() 62 static inline vixl::aarch32::Register AsVIXLRegisterPairLow(ArmManagedRegister reg) { in AsVIXLRegisterPairLow() 63 return vixl::aarch32::Register(reg.AsRegisterPairLow()); in AsVIXLRegisterPairLow() 66 static inline vixl::aarch32::Register AsVIXLRegisterPairHigh(ArmManagedRegister reg) { in AsVIXLRegisterPairHigh() 67 return vixl::aarch32::Register(reg.AsRegisterPairHigh()); in AsVIXLRegisterPairHigh() 207 vixl32::Register reg(WhichPowerOf2(core_spill_mask)); in RemoveFrame() 235 vixl32::Register temp = temps.Acquire(); in RemoveFrame() 295 vixl::aarch32::Register src = AsVIXLRegister(msrc.AsArm()); in StoreRef() 302 vixl::aarch32::Register src = AsVIXLRegister(msrc.AsArm()); in StoreRawPtr() [all …]
|
/art/compiler/optimizing/ |
D | intrinsics_x86.cc | 95 Register src = locations->InAt(0).AsRegister<Register>(); in EmitNativeCode() 97 Register dest = locations->InAt(2).AsRegister<Register>(); in EmitNativeCode() 101 Register temp1 = temp1_loc.AsRegister<Register>(); in EmitNativeCode() 102 Register temp2 = locations->GetTemp(1).AsRegister<Register>(); in EmitNativeCode() 103 Register temp3 = locations->GetTemp(2).AsRegister<Register>(); in EmitNativeCode() 126 __ leal(temp2, Address(src_pos.AsRegister<Register>(), temp1, ScaleFactor::TIMES_1, 0)); in EmitNativeCode() 149 __ leal(temp3, Address(dest_pos.AsRegister<Register>(), temp1, ScaleFactor::TIMES_1, 0)); in EmitNativeCode() 198 __ movd(output.AsRegisterPairLow<Register>(), temp); in MoveFPToInt() 200 __ movd(output.AsRegisterPairHigh<Register>(), temp); in MoveFPToInt() 202 __ movd(output.AsRegister<Register>(), input.AsFpuRegister<XmmRegister>()); in MoveFPToInt() [all …]
|
D | code_generator_x86.cc | 53 static constexpr Register kMethodRegisterArgument = EAX; 54 static constexpr Register kCoreCalleeSaves[] = { EBP, ESI, EDI }; 58 static constexpr int kFakeReturnRegister = Register(8); 123 DivRemMinusOneSlowPathX86(HInstruction* instruction, Register reg, bool is_div) in DivRemMinusOneSlowPathX86() 139 Register reg_; 168 Address array_len(array_loc.AsRegister<Register>(), len_offset); in EmitNativeCode() 175 __ movl(length_loc.AsRegister<Register>(), array_len); in EmitNativeCode() 177 __ shrl(length_loc.AsRegister<Register>(), Immediate(1)); in EmitNativeCode() 347 __ UnpoisonHeapReference(locations->InAt(1).AsRegister<Register>()); in EmitNativeCode() 488 Register ref_reg = ref_.AsRegister<Register>(); in EmitNativeCode() [all …]
|
D | code_generator_x86.h | 37 static constexpr Register kParameterCoreRegisters[] = { ECX, EDX, EBX }; 43 static constexpr Register kRuntimeParameterCoreRegisters[] = { EAX, ECX, EDX, EBX }; 50 class InvokeRuntimeCallingConvention : public CallingConvention<Register, XmmRegister> { 63 class InvokeDexCallingConvention : public CallingConvention<Register, XmmRegister> { 164 void Exchange(Register reg, int mem); 250 Register base, 259 void GenerateClassInitializationCheck(SlowPathCode* slow_path, Register class_reg); 260 void GenerateBitstringTypeCheckCompare(HTypeCheckInstruction* check, Register temp); 270 void GenerateShlLong(const Location& loc, Register shifter); 271 void GenerateShrLong(const Location& loc, Register shifter); [all …]
|
D | code_generator_arm_vixl.h | 52 static const vixl::aarch32::Register kParameterCoreRegistersVIXL[] = { 78 static const vixl::aarch32::Register kMethodRegister = vixl::aarch32::r0; 98 static const vixl::aarch32::Register kRuntimeParameterCoreRegistersVIXL[] = { 148 : public CallingConvention<vixl::aarch32::Register, vixl::aarch32::SRegister> { 162 : public CallingConvention<vixl::aarch32::Register, vixl::aarch32::SRegister> { 278 void Exchange(vixl32::Register reg, int mem); 346 void GenerateAndConst(vixl::aarch32::Register out, vixl::aarch32::Register first, uint32_t value); 354 vixl32::Register class_reg); 356 vixl::aarch32::Register temp, 358 void GenerateOrrConst(vixl::aarch32::Register out, vixl::aarch32::Register first, uint32_t value); [all …]
|
D | common_arm.h | 40 inline vixl::aarch32::Register HighRegisterFrom(Location location) { in HighRegisterFrom() 42 return vixl::aarch32::Register(location.AsRegisterPairHigh<vixl::aarch32::Register>()); in HighRegisterFrom() 50 inline vixl::aarch32::Register LowRegisterFrom(Location location) { in LowRegisterFrom() 52 return vixl::aarch32::Register(location.AsRegisterPairLow<vixl::aarch32::Register>()); in LowRegisterFrom() 65 inline vixl::aarch32::Register RegisterFrom(Location location) { in RegisterFrom() 67 return vixl::aarch32::Register(location.reg()); in RegisterFrom() 70 inline vixl::aarch32::Register RegisterFrom(Location location, DataType::Type type) { in RegisterFrom() 135 inline vixl::aarch32::Register OutputRegister(HInstruction* instr) { in OutputRegister() 139 inline vixl::aarch32::Register InputRegisterAt(HInstruction* instr, int input_index) { in InputRegisterAt() 144 inline vixl::aarch32::Register InputRegister(HInstruction* instr) { in InputRegister() [all …]
|
D | intrinsics_arm64.cc | 111 Register src_curr_addr = XRegisterFrom(locations->GetTemp(0)); in EmitNativeCode() 112 Register dst_curr_addr = XRegisterFrom(locations->GetTemp(1)); in EmitNativeCode() 113 Register src_stop_addr = XRegisterFrom(locations->GetTemp(2)); in EmitNativeCode() 114 Register tmp_reg = WRegisterFrom(tmp_); in EmitNativeCode() 405 Register src = InputRegisterAt(instr, 0); in GenBitCount() 406 Register dst = RegisterFrom(instr->GetLocations()->Out(), type); in GenBitCount() 436 Register src = InputRegisterAt(invoke, 0); in GenHighestOneBit() 437 Register dst = RegisterFrom(invoke->GetLocations()->Out(), type); in GenHighestOneBit() 438 Register temp = (type == DataType::Type::kInt64) ? temps.AcquireX() : temps.AcquireW(); in GenHighestOneBit() 469 Register src = InputRegisterAt(invoke, 0); in GenLowestOneBit() [all …]
|
D | intrinsics_arm_vixl.cc | 77 const vixl32::Register& array, in GenSystemArrayCopyBaseAddress() 79 const vixl32::Register& base) { in GenSystemArrayCopyBaseAddress() 101 const vixl32::Register& base, in GenSystemArrayCopyEndAddress() 102 const vixl32::Register& end) { in GenSystemArrayCopyEndAddress() 141 vixl32::Register dest = InputRegisterAt(instruction_, 2); in EmitNativeCode() 143 vixl32::Register src_curr_addr = RegisterFrom(locations->GetTemp(0)); in EmitNativeCode() 144 vixl32::Register dst_curr_addr = RegisterFrom(locations->GetTemp(1)); in EmitNativeCode() 145 vixl32::Register src_stop_addr = RegisterFrom(locations->GetTemp(2)); in EmitNativeCode() 146 vixl32::Register tmp = RegisterFrom(locations->GetTemp(3)); in EmitNativeCode() 308 vixl32::Register out = RegisterFrom(locations->Out()); in GenNumberOfLeadingZeros() [all …]
|
D | code_generator_arm64.h | 57 static const vixl::aarch64::Register kParameterCoreRegisters[] = { 80 const vixl::aarch64::Register tr = vixl::aarch64::x19; 82 const vixl::aarch64::Register mr = vixl::aarch64::x20; 84 static const vixl::aarch64::Register kArtMethodRegister = vixl::aarch64::x0; 155 static const vixl::aarch64::Register kRuntimeParameterCoreRegisters[] = 178 class InvokeRuntimeCallingConvention : public CallingConvention<vixl::aarch64::Register, 196 class InvokeDexCallingConvention : public CallingConvention<vixl::aarch64::Register, 319 vixl::aarch64::Register class_reg); 321 vixl::aarch64::Register temp); 372 void GenerateIncrementNegativeByOne(vixl::aarch64::Register out, [all …]
|
D | code_generator_arm_vixl.cc | 111 static inline bool CanEmitNarrowLdr(vixl32::Register rt, vixl32::Register rn, uint32_t offset) { in CanEmitNarrowLdr() 117 EmitAdrCode(ArmVIXLMacroAssembler* assembler, vixl32::Register rd, vixl32::Label* label) in EmitAdrCode() 140 vixl32::Register rd_; 205 vixl32::Register base = sp; in SaveContiguousSRegisterList() 253 vixl32::Register base = sp; in RestoreContiguousSRegisterList() 760 vixl32::Register reg_out = RegisterFrom(out_); in EmitNativeCode() 789 vixl32::Register index_reg = RegisterFrom(index_); in EmitNativeCode() 814 vixl32::Register free_reg = FindAvailableCallerSaveRegister(codegen); in EmitNativeCode() 897 vixl32::Register FindAvailableCallerSaveRegister(CodeGenerator* codegen) { in FindAvailableCallerSaveRegister() 902 return vixl32::Register(i); in FindAvailableCallerSaveRegister() [all …]
|
D | code_generator_arm64.cc | 629 Register index_reg = RegisterFrom(index_, DataType::Type::kInt32); in EmitNativeCode() 654 Register free_reg = FindAvailableCallerSaveRegister(codegen); in EmitNativeCode() 736 Register FindAvailableCallerSaveRegister(CodeGenerator* codegen) { in FindAvailableCallerSaveRegister() 741 return Register(VIXLRegCodeFromART(i), kXRegSize); in FindAvailableCallerSaveRegister() 1116 Register counter = temps.AcquireX(); in MaybeIncrementHotness() 1117 Register method = is_frame_entry ? kArtMethodRegister : temps.AcquireX(); in MaybeIncrementHotness() 1136 Register temp = temps.AcquireX(); in MaybeIncrementHotness() 1137 Register counter = temps.AcquireW(); in MaybeIncrementHotness() 1180 Register temp = temps.AcquireX(); in GenerateFrameEntry() 1233 Register wzr = Register(VIXLRegCodeFromART(WZR), kWRegSize); in GenerateFrameEntry() [all …]
|
D | common_arm64.h | 66 inline vixl::aarch64::Register XRegisterFrom(Location location) { in XRegisterFrom() 71 inline vixl::aarch64::Register WRegisterFrom(Location location) { in WRegisterFrom() 76 inline vixl::aarch64::Register RegisterFrom(Location location, DataType::Type type) { in RegisterFrom() 81 inline vixl::aarch64::Register OutputRegister(HInstruction* instr) { in OutputRegister() 85 inline vixl::aarch64::Register InputRegisterAt(HInstruction* instr, int input_index) { in InputRegisterAt() 158 ? vixl::aarch64::Register(vixl::aarch64::xzr) in InputCPURegisterOrZeroRegAt() 159 : vixl::aarch64::Register(vixl::aarch64::wzr); in InputCPURegisterOrZeroRegAt() 189 inline vixl::aarch64::MemOperand HeapOperand(const vixl::aarch64::Register& base, 196 inline vixl::aarch64::MemOperand HeapOperand(const vixl::aarch64::Register& base, 197 const vixl::aarch64::Register& regoffset, [all …]
|
/art/compiler/utils/arm64/ |
D | assembler_arm64.h | 109 vixl::aarch64::Register temp = temps.AcquireX(); in SaveRestoreZRegisterList() 132 void PoisonHeapReference(vixl::aarch64::Register reg); 134 void UnpoisonHeapReference(vixl::aarch64::Register reg); 136 void MaybePoisonHeapReference(vixl::aarch64::Register reg); 138 void MaybeUnpoisonHeapReference(vixl::aarch64::Register reg); 147 void GenerateMarkingRegisterCheck(vixl::aarch64::Register temp, int code = 0); 163 static vixl::aarch64::Register reg_x(int code) { in reg_x() 173 static vixl::aarch64::Register reg_w(int code) { in reg_w()
|
D | assembler_arm64.cc | 113 const Register sp = vixl_masm_.StackPointer(); in SpillRegisters() 141 const Register sp = vixl_masm_.StackPointer(); in UnspillRegisters() 165 void Arm64Assembler::PoisonHeapReference(Register reg) { in PoisonHeapReference() 171 void Arm64Assembler::UnpoisonHeapReference(Register reg) { in UnpoisonHeapReference() 177 void Arm64Assembler::MaybePoisonHeapReference(Register reg) { in MaybePoisonHeapReference() 183 void Arm64Assembler::MaybeUnpoisonHeapReference(Register reg) { in MaybeUnpoisonHeapReference() 189 void Arm64Assembler::GenerateMarkingRegisterCheck(Register temp, int code) { in GenerateMarkingRegisterCheck() 194 vixl::aarch64::Register mr = reg_x(MR); // Marking Register. in GenerateMarkingRegisterCheck() 195 vixl::aarch64::Register tr = reg_x(TR); // Thread Register. in GenerateMarkingRegisterCheck()
|
/art/compiler/utils/x86_64/ |
D | managed_register_x86_64.cc | 41 Register low; 42 Register high; 63 Register low = AsRegisterPairLow().AsRegister(); in Overlaps() 64 Register high = AsRegisterPairHigh().AsRegister(); in Overlaps()
|
D | constants_x86_64.h | 33 explicit constexpr CpuRegister(Register r) : reg_(r) {} in CpuRegister() 34 explicit constexpr CpuRegister(int r) : reg_(Register(r)) {} in CpuRegister() 35 constexpr Register AsRegister() const { in AsRegister() 45 const Register reg_;
|
/art/runtime/arch/x86/ |
D | registers_x86.h | 27 enum Register { enum 40 std::ostream& operator<<(std::ostream& os, const Register& rhs);
|