Lines Matching refs:Register

51 static constexpr Register kMethodRegisterArgument = EAX;
52 static constexpr Register kCoreCalleeSaves[] = { EBP, ESI, EDI };
56 static constexpr int kFakeReturnRegister = Register(8);
121 DivRemMinusOneSlowPathX86(HInstruction* instruction, Register reg, bool is_div) in DivRemMinusOneSlowPathX86()
137 Register reg_;
166 Address array_len(array_loc.AsRegister<Register>(), len_offset); in EmitNativeCode()
173 __ movl(length_loc.AsRegister<Register>(), array_len); in EmitNativeCode()
175 __ shrl(length_loc.AsRegister<Register>(), Immediate(1)); in EmitNativeCode()
340 __ UnpoisonHeapReference(locations->InAt(1).AsRegister<Register>()); in EmitNativeCode()
481 Register ref_reg = ref_.AsRegister<Register>(); in EmitNativeCode()
551 Register obj, in ReadBarrierMarkAndUpdateFieldSlowPathX86()
554 Register temp) in ReadBarrierMarkAndUpdateFieldSlowPathX86()
568 Register ref_reg = ref_.AsRegister<Register>(); in EmitNativeCode()
635 Register base = obj_; in EmitNativeCode()
636 Register expected = EAX; in EmitNativeCode()
637 Register value = ref_reg; in EmitNativeCode()
689 const Register obj_;
696 const Register temp_;
733 Register reg_out = out_.AsRegister<Register>(); in EmitNativeCode()
756 Register index_reg = index_.AsRegister<Register>(); in EmitNativeCode()
781 Register free_reg = FindAvailableCallerSaveRegister(codegen); in EmitNativeCode()
852 Register FindAvailableCallerSaveRegister(CodeGenerator* codegen) { in FindAvailableCallerSaveRegister()
853 size_t ref = static_cast<int>(ref_.AsRegister<Register>()); in FindAvailableCallerSaveRegister()
854 size_t obj = static_cast<int>(obj_.AsRegister<Register>()); in FindAvailableCallerSaveRegister()
857 return static_cast<Register>(i); in FindAvailableCallerSaveRegister()
891 Register reg_out = out_.AsRegister<Register>(); in EmitNativeCode()
966 stream << Register(reg); in DumpCoreRegister()
978 __ movl(Address(ESP, stack_index), static_cast<Register>(reg_id)); in SaveCoreRegister()
983 __ movl(static_cast<Register>(reg_id), Address(ESP, stack_index)); in RestoreCoreRegister()
1072 static dwarf::Reg DWARFReg(Register reg) { in DWARFReg()
1078 Register reg = EAX; in MaybeIncrementHotness()
1161 Register reg = kCoreCalleeSaves[i]; in GenerateFrameEntry()
1194 Register reg = kCoreCalleeSaves[i]; in GenerateFrameExit()
1336 __ movl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in Move32()
1338 __ movd(destination.AsRegister<Register>(), source.AsFpuRegister<XmmRegister>()); in Move32()
1341 __ movl(destination.AsRegister<Register>(), Address(ESP, source.GetStackIndex())); in Move32()
1345 __ movd(destination.AsFpuRegister<XmmRegister>(), source.AsRegister<Register>()); in Move32()
1355 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegister<Register>()); in Move32()
1377 Location::RegisterLocation(source.AsRegisterPairHigh<Register>()), in Move64()
1378 Location::RegisterLocation(destination.AsRegisterPairHigh<Register>()), in Move64()
1380 Location::RegisterLocation(source.AsRegisterPairLow<Register>()), in Move64()
1381 Location::RegisterLocation(destination.AsRegisterPairLow<Register>()), in Move64()
1385 __ movd(destination.AsRegisterPairLow<Register>(), src_reg); in Move64()
1387 __ movd(destination.AsRegisterPairHigh<Register>(), src_reg); in Move64()
1391 __ movl(destination.AsRegisterPairLow<Register>(), Address(ESP, source.GetStackIndex())); in Move64()
1392 __ movl(destination.AsRegisterPairHigh<Register>(), in Move64()
1403 __ pushl(source.AsRegisterPairHigh<Register>()); in Move64()
1405 __ pushl(source.AsRegisterPairLow<Register>()); in Move64()
1417 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegisterPairLow<Register>()); in Move64()
1419 source.AsRegisterPairHigh<Register>()); in Move64()
1444 __ movl(location.AsRegister<Register>(), Immediate(value)); in MoveConstant()
1462 locations->AddTemp(Location::RegisterLocation(location.AsRegisterPairLow<Register>())); in AddLocationAsTemp()
1463 locations->AddTemp(Location::RegisterLocation(location.AsRegisterPairHigh<Register>())); in AddLocationAsTemp()
1540 Register left_high = left.AsRegisterPairHigh<Register>(); in GenerateLongComparesAndJumps()
1541 Register left_low = left.AsRegisterPairLow<Register>(); in GenerateLongComparesAndJumps()
1596 Register right_high = right.AsRegisterPairHigh<Register>(); in GenerateLongComparesAndJumps()
1597 Register right_low = right.AsRegisterPairLow<Register>(); in GenerateLongComparesAndJumps()
1642 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in GenerateFPCompare()
1656 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in GenerateFPCompare()
1758 __ testl(lhs.AsRegister<Register>(), lhs.AsRegister<Register>()); in GenerateTestAndBranch()
1843 __ movl(flag->GetLocations()->Out().AsRegister<Register>(), in VisitShouldDeoptimizeFlag()
1913 Register cond_reg = locations->InAt(2).AsRegister<Register>(); in VisitSelect()
1926 Register cond_reg = locations->InAt(2).AsRegister<Register>(); in VisitSelect()
1935 Register false_high = false_loc.AsRegisterPairHigh<Register>(); in VisitSelect()
1936 Register false_low = false_loc.AsRegisterPairLow<Register>(); in VisitSelect()
1938 __ cmovl(cond, false_high, true_loc.AsRegisterPairHigh<Register>()); in VisitSelect()
1939 __ cmovl(cond, false_low, true_loc.AsRegisterPairLow<Register>()); in VisitSelect()
1946 Register false_reg = false_loc.AsRegister<Register>(); in VisitSelect()
1948 __ cmovl(cond, false_reg, true_loc.AsRegister<Register>()); in VisitSelect()
2031 Register reg = locations->Out().AsRegister<Register>(); in HandleCondition()
2265 DCHECK_EQ(ret->GetLocations()->InAt(0).AsRegister<Register>(), EAX); in VisitReturn()
2269 DCHECK_EQ(ret->GetLocations()->InAt(0).AsRegisterPairLow<Register>(), EAX); in VisitReturn()
2270 DCHECK_EQ(ret->GetLocations()->InAt(0).AsRegisterPairHigh<Register>(), EDX); in VisitReturn()
2406 void CodeGeneratorX86::MaybeGenerateInlineCacheCheck(HInstruction* instruction, Register klass) { in MaybeGenerateInlineCacheCheck()
2422 CHECK_EQ(EBP, instruction->GetLocations()->GetTemp(temp_index).AsRegister<Register>()); in MaybeGenerateInlineCacheCheck()
2424 Register temp = EBP; in MaybeGenerateInlineCacheCheck()
2439 Register temp = locations->GetTemp(0).AsRegister<Register>(); in VisitInvokeInterface()
2456 __ movl(temp, Address(receiver.AsRegister<Register>(), class_offset)); in VisitInvokeInterface()
2544 __ negl(out.AsRegister<Register>()); in VisitNeg()
2550 __ negl(out.AsRegisterPairLow<Register>()); in VisitNeg()
2556 __ adcl(out.AsRegisterPairHigh<Register>(), Immediate(0)); in VisitNeg()
2557 __ negl(out.AsRegisterPairHigh<Register>()); in VisitNeg()
2562 Register constant = locations->GetTemp(0).AsRegister<Register>(); in VisitNeg()
2604 Register constant_area = locations->InAt(1).AsRegister<Register>(); in VisitX86FPNeg()
2806 __ movzxb(out.AsRegister<Register>(), in.AsRegister<ByteRegister>()); in VisitTypeConversion()
2810 __ movl(out.AsRegister<Register>(), Immediate(static_cast<uint8_t>(value))); in VisitTypeConversion()
2815 __ movzxb(out.AsRegister<Register>(), in.AsRegisterPairLow<ByteRegister>()); in VisitTypeConversion()
2819 __ movl(out.AsRegister<Register>(), Immediate(static_cast<uint8_t>(value))); in VisitTypeConversion()
2836 __ movsxb(out.AsRegister<Register>(), in.AsRegister<ByteRegister>()); in VisitTypeConversion()
2840 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int8_t>(value))); in VisitTypeConversion()
2845 __ movsxb(out.AsRegister<Register>(), in.AsRegisterPairLow<ByteRegister>()); in VisitTypeConversion()
2849 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int8_t>(value))); in VisitTypeConversion()
2865 __ movzxw(out.AsRegister<Register>(), in.AsRegister<Register>()); in VisitTypeConversion()
2867 __ movzxw(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
2871 __ movl(out.AsRegister<Register>(), Immediate(static_cast<uint16_t>(value))); in VisitTypeConversion()
2876 __ movzxw(out.AsRegister<Register>(), in.AsRegisterPairLow<Register>()); in VisitTypeConversion()
2878 __ movzxw(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
2882 __ movl(out.AsRegister<Register>(), Immediate(static_cast<uint16_t>(value))); in VisitTypeConversion()
2897 __ movsxw(out.AsRegister<Register>(), in.AsRegister<Register>()); in VisitTypeConversion()
2899 __ movsxw(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
2903 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int16_t>(value))); in VisitTypeConversion()
2908 __ movsxw(out.AsRegister<Register>(), in.AsRegisterPairLow<Register>()); in VisitTypeConversion()
2910 __ movsxw(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
2914 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int16_t>(value))); in VisitTypeConversion()
2928 __ movl(out.AsRegister<Register>(), in.AsRegisterPairLow<Register>()); in VisitTypeConversion()
2930 __ movl(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
2935 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int32_t>(value))); in VisitTypeConversion()
2941 Register output = out.AsRegister<Register>(); in VisitTypeConversion()
2965 Register output = out.AsRegister<Register>(); in VisitTypeConversion()
3001 DCHECK_EQ(out.AsRegisterPairLow<Register>(), EAX); in VisitTypeConversion()
3002 DCHECK_EQ(out.AsRegisterPairHigh<Register>(), EDX); in VisitTypeConversion()
3003 DCHECK_EQ(in.AsRegister<Register>(), EAX); in VisitTypeConversion()
3031 __ cvtsi2ss(out.AsFpuRegister<XmmRegister>(), in.AsRegister<Register>()); in VisitTypeConversion()
3081 __ cvtsi2sd(out.AsFpuRegister<XmmRegister>(), in.AsRegister<Register>()); in VisitTypeConversion()
3176 if (out.AsRegister<Register>() == first.AsRegister<Register>()) { in VisitAdd()
3177 __ addl(out.AsRegister<Register>(), second.AsRegister<Register>()); in VisitAdd()
3178 } else if (out.AsRegister<Register>() == second.AsRegister<Register>()) { in VisitAdd()
3179 __ addl(out.AsRegister<Register>(), first.AsRegister<Register>()); in VisitAdd()
3181 __ leal(out.AsRegister<Register>(), Address( in VisitAdd()
3182 first.AsRegister<Register>(), second.AsRegister<Register>(), TIMES_1, 0)); in VisitAdd()
3186 if (out.AsRegister<Register>() == first.AsRegister<Register>()) { in VisitAdd()
3187 __ addl(out.AsRegister<Register>(), Immediate(value)); in VisitAdd()
3189 __ leal(out.AsRegister<Register>(), Address(first.AsRegister<Register>(), value)); in VisitAdd()
3193 __ addl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in VisitAdd()
3200 __ addl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in VisitAdd()
3201 __ adcl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in VisitAdd()
3203 __ addl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in VisitAdd()
3204 __ adcl(first.AsRegisterPairHigh<Register>(), in VisitAdd()
3209 __ addl(first.AsRegisterPairLow<Register>(), Immediate(Low32Bits(value))); in VisitAdd()
3210 __ adcl(first.AsRegisterPairHigh<Register>(), Immediate(High32Bits(value))); in VisitAdd()
3225 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitAdd()
3243 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitAdd()
3294 __ subl(first.AsRegister<Register>(), second.AsRegister<Register>()); in VisitSub()
3296 __ subl(first.AsRegister<Register>(), in VisitSub()
3299 __ subl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in VisitSub()
3306 __ subl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in VisitSub()
3307 __ sbbl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in VisitSub()
3309 __ subl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in VisitSub()
3310 __ sbbl(first.AsRegisterPairHigh<Register>(), in VisitSub()
3315 __ subl(first.AsRegisterPairLow<Register>(), Immediate(Low32Bits(value))); in VisitSub()
3316 __ sbbl(first.AsRegisterPairHigh<Register>(), Immediate(High32Bits(value))); in VisitSub()
3331 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitSub()
3349 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitSub()
3416 __ imull(out.AsRegister<Register>(), first.AsRegister<Register>(), imm); in VisitMul()
3419 __ imull(first.AsRegister<Register>(), second.AsRegister<Register>()); in VisitMul()
3423 __ imull(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in VisitMul()
3428 Register in1_hi = first.AsRegisterPairHigh<Register>(); in VisitMul()
3429 Register in1_lo = first.AsRegisterPairLow<Register>(); in VisitMul()
3430 Register eax = locations->GetTemp(0).AsRegister<Register>(); in VisitMul()
3431 Register edx = locations->GetTemp(1).AsRegister<Register>(); in VisitMul()
3466 Register in2_hi = second.AsRegisterPairHigh<Register>(); in VisitMul()
3467 Register in2_lo = second.AsRegisterPairLow<Register>(); in VisitMul()
3520 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitMul()
3539 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitMul()
3655 Register out_register = locations->Out().AsRegister<Register>(); in DivRemOneOrMinusOne()
3656 Register input_register = locations->InAt(0).AsRegister<Register>(); in DivRemOneOrMinusOne()
3675 Register out = locations->Out().AsRegister<Register>(); in RemByPowerOfTwo()
3676 Register numerator = locations->InAt(0).AsRegister<Register>(); in RemByPowerOfTwo()
3682 Register tmp = locations->GetTemp(0).AsRegister<Register>(); in RemByPowerOfTwo()
3696 Register out_register = locations->Out().AsRegister<Register>(); in DivByPowerOfTwo()
3697 Register input_register = locations->InAt(0).AsRegister<Register>(); in DivByPowerOfTwo()
3702 Register num = locations->GetTemp(0).AsRegister<Register>(); in DivByPowerOfTwo()
3723 Register eax = locations->InAt(0).AsRegister<Register>(); in GenerateDivRemWithAnyConstant()
3724 Register out = locations->Out().AsRegister<Register>(); in GenerateDivRemWithAnyConstant()
3725 Register num; in GenerateDivRemWithAnyConstant()
3726 Register edx; in GenerateDivRemWithAnyConstant()
3729 edx = locations->GetTemp(0).AsRegister<Register>(); in GenerateDivRemWithAnyConstant()
3730 num = locations->GetTemp(1).AsRegister<Register>(); in GenerateDivRemWithAnyConstant()
3732 edx = locations->Out().AsRegister<Register>(); in GenerateDivRemWithAnyConstant()
3733 num = locations->GetTemp(0).AsRegister<Register>(); in GenerateDivRemWithAnyConstant()
3795 DCHECK_EQ(EAX, first.AsRegister<Register>()); in GenerateDivRemIntegral()
3796 DCHECK_EQ(is_div ? EAX : EDX, out.AsRegister<Register>()); in GenerateDivRemIntegral()
3817 instruction, out.AsRegister<Register>(), is_div); in GenerateDivRemIntegral()
3820 Register second_reg = second.AsRegister<Register>(); in GenerateDivRemIntegral()
3839 DCHECK_EQ(calling_convention.GetRegisterAt(0), first.AsRegisterPairLow<Register>()); in GenerateDivRemIntegral()
3840 DCHECK_EQ(calling_convention.GetRegisterAt(1), first.AsRegisterPairHigh<Register>()); in GenerateDivRemIntegral()
3841 DCHECK_EQ(calling_convention.GetRegisterAt(2), second.AsRegisterPairLow<Register>()); in GenerateDivRemIntegral()
3842 DCHECK_EQ(calling_convention.GetRegisterAt(3), second.AsRegisterPairHigh<Register>()); in GenerateDivRemIntegral()
3843 DCHECK_EQ(EAX, out.AsRegisterPairLow<Register>()); in GenerateDivRemIntegral()
3844 DCHECK_EQ(EDX, out.AsRegisterPairHigh<Register>()); in GenerateDivRemIntegral()
3933 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitDiv()
3951 const_area->GetLocations()->InAt(0).AsRegister<Register>())); in VisitDiv()
4077 Register output_lo = output.AsRegisterPairLow<Register>(); in GenerateMinMaxInt()
4078 Register output_hi = output.AsRegisterPairHigh<Register>(); in GenerateMinMaxInt()
4080 Register op2_lo = op2_loc.AsRegisterPairLow<Register>(); in GenerateMinMaxInt()
4081 Register op2_hi = op2_loc.AsRegisterPairHigh<Register>(); in GenerateMinMaxInt()
4089 Register temp = locations->GetTemp(0).AsRegister<Register>(); in GenerateMinMaxInt()
4099 Register out = locations->Out().AsRegister<Register>(); in GenerateMinMaxInt()
4100 Register op2 = op2_loc.AsRegister<Register>(); in GenerateMinMaxInt()
4182 Register constant = locations->GetTemp(0).AsRegister<Register>(); in GenerateMinMaxFP()
4265 Register out = locations->Out().AsRegister<Register>(); in VisitAbs()
4267 Register temp = locations->GetTemp(0).AsRegister<Register>(); in VisitAbs()
4280 Register input_lo = input.AsRegisterPairLow<Register>(); in VisitAbs()
4281 Register input_hi = input.AsRegisterPairHigh<Register>(); in VisitAbs()
4283 Register output_lo = output.AsRegisterPairLow<Register>(); in VisitAbs()
4284 Register output_hi = output.AsRegisterPairHigh<Register>(); in VisitAbs()
4285 Register temp = locations->GetTemp(0).AsRegister<Register>(); in VisitAbs()
4303 Register constant = locations->GetTemp(1).AsRegister<Register>(); in VisitAbs()
4362 __ testl(value.AsRegister<Register>(), value.AsRegister<Register>()); in VisitDivZeroCheck()
4377 Register temp = locations->GetTemp(0).AsRegister<Register>(); in VisitDivZeroCheck()
4378 __ movl(temp, value.AsRegisterPairLow<Register>()); in VisitDivZeroCheck()
4379 __ orl(temp, value.AsRegisterPairHigh<Register>()); in VisitDivZeroCheck()
4426 Register first_reg = first.AsRegister<Register>(); in HandleShift()
4428 Register second_reg = second.AsRegister<Register>(); in HandleShift()
4455 Register second_reg = second.AsRegister<Register>(); in HandleShift()
4486 Register low = loc.AsRegisterPairLow<Register>(); in GenerateShlLong()
4487 Register high = loc.AsRegisterPairHigh<Register>(); in GenerateShlLong()
4513 void InstructionCodeGeneratorX86::GenerateShlLong(const Location& loc, Register shifter) { in GenerateShlLong()
4515 __ shld(loc.AsRegisterPairHigh<Register>(), loc.AsRegisterPairLow<Register>(), shifter); in GenerateShlLong()
4516 __ shll(loc.AsRegisterPairLow<Register>(), shifter); in GenerateShlLong()
4519 __ movl(loc.AsRegisterPairHigh<Register>(), loc.AsRegisterPairLow<Register>()); in GenerateShlLong()
4520 __ movl(loc.AsRegisterPairLow<Register>(), Immediate(0)); in GenerateShlLong()
4525 Register low = loc.AsRegisterPairLow<Register>(); in GenerateShrLong()
4526 Register high = loc.AsRegisterPairHigh<Register>(); in GenerateShrLong()
4545 void InstructionCodeGeneratorX86::GenerateShrLong(const Location& loc, Register shifter) { in GenerateShrLong()
4547 __ shrd(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>(), shifter); in GenerateShrLong()
4548 __ sarl(loc.AsRegisterPairHigh<Register>(), shifter); in GenerateShrLong()
4551 __ movl(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>()); in GenerateShrLong()
4552 __ sarl(loc.AsRegisterPairHigh<Register>(), Immediate(31)); in GenerateShrLong()
4557 Register low = loc.AsRegisterPairLow<Register>(); in GenerateUShrLong()
4558 Register high = loc.AsRegisterPairHigh<Register>(); in GenerateUShrLong()
4580 void InstructionCodeGeneratorX86::GenerateUShrLong(const Location& loc, Register shifter) { in GenerateUShrLong()
4582 __ shrd(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>(), shifter); in GenerateUShrLong()
4583 __ shrl(loc.AsRegisterPairHigh<Register>(), shifter); in GenerateUShrLong()
4586 __ movl(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>()); in GenerateUShrLong()
4587 __ movl(loc.AsRegisterPairHigh<Register>(), Immediate(0)); in GenerateUShrLong()
4618 Register first_reg = first.AsRegister<Register>(); in VisitRor()
4620 Register second_reg = second.AsRegister<Register>(); in VisitRor()
4630 Register first_reg_lo = first.AsRegisterPairLow<Register>(); in VisitRor()
4631 Register first_reg_hi = first.AsRegisterPairHigh<Register>(); in VisitRor()
4632 Register temp_reg = locations->GetTemp(0).AsRegister<Register>(); in VisitRor()
4634 Register second_reg = second.AsRegister<Register>(); in VisitRor()
4768 __ movl(locations->Out().AsRegister<Register>(), in VisitClassTableGet()
4769 Address(locations->InAt(0).AsRegister<Register>(), method_offset)); in VisitClassTableGet()
4773 __ movl(locations->Out().AsRegister<Register>(), in VisitClassTableGet()
4774 Address(locations->InAt(0).AsRegister<Register>(), in VisitClassTableGet()
4777 __ movl(locations->Out().AsRegister<Register>(), in VisitClassTableGet()
4778 Address(locations->Out().AsRegister<Register>(), method_offset)); in VisitClassTableGet()
4796 __ notl(out.AsRegister<Register>()); in VisitNot()
4800 __ notl(out.AsRegisterPairLow<Register>()); in VisitNot()
4801 __ notl(out.AsRegisterPairHigh<Register>()); in VisitNot()
4821 __ xorl(out.AsRegister<Register>(), Immediate(1)); in VisitBooleanNot()
4860 Register out = locations->Out().AsRegister<Register>(); in VisitCompare()
4878 Register left_low = left.AsRegisterPairLow<Register>(); in VisitCompare()
4879 Register left_high = left.AsRegisterPairHigh<Register>(); in VisitCompare()
4893 __ cmpl(left_high, right.AsRegisterPairHigh<Register>()); in VisitCompare()
4903 __ cmpl(left_low, right.AsRegisterPairLow<Register>()); in VisitCompare()
4986 Register CodeGeneratorX86::GetInvokeStaticOrDirectExtraParameter(HInvokeStaticOrDirect* invoke, in GetInvokeStaticOrDirectExtraParameter()
4987 Register temp) { in GetInvokeStaticOrDirectExtraParameter()
4990 return location.AsRegister<Register>(); in GetInvokeStaticOrDirectExtraParameter()
5003 if (slow_path->IsCoreRegisterSaved(location.AsRegister<Register>())) { in GetInvokeStaticOrDirectExtraParameter()
5004 int stack_offset = slow_path->GetStackOffsetOfCoreRegister(location.AsRegister<Register>()); in GetInvokeStaticOrDirectExtraParameter()
5008 return location.AsRegister<Register>(); in GetInvokeStaticOrDirectExtraParameter()
5019 __ fs()->movl(temp.AsRegister<Register>(), Address::Absolute(offset)); in GenerateStaticOrDirectCall()
5027 Register base_reg = GetInvokeStaticOrDirectExtraParameter(invoke, in GenerateStaticOrDirectCall()
5028 temp.AsRegister<Register>()); in GenerateStaticOrDirectCall()
5029 __ leal(temp.AsRegister<Register>(), in GenerateStaticOrDirectCall()
5035 Register base_reg = GetInvokeStaticOrDirectExtraParameter(invoke, in GenerateStaticOrDirectCall()
5036 temp.AsRegister<Register>()); in GenerateStaticOrDirectCall()
5037 __ movl(temp.AsRegister<Register>(), Address(base_reg, kPlaceholder32BitOffset)); in GenerateStaticOrDirectCall()
5044 Register base_reg = GetInvokeStaticOrDirectExtraParameter(invoke, in GenerateStaticOrDirectCall()
5045 temp.AsRegister<Register>()); in GenerateStaticOrDirectCall()
5046 __ movl(temp.AsRegister<Register>(), Address(base_reg, kPlaceholder32BitOffset)); in GenerateStaticOrDirectCall()
5052 __ movl(temp.AsRegister<Register>(), Immediate(invoke->GetMethodAddress())); in GenerateStaticOrDirectCall()
5071 __ call(Address(callee_method.AsRegister<Register>(), in GenerateStaticOrDirectCall()
5116 __ call(Address(callee_method.AsRegister<Register>(), in GenerateStaticOrDirectCall()
5128 Register temp = temp_in.AsRegister<Register>(); in GenerateVirtualCall()
5137 Register receiver = calling_convention.GetRegisterAt(0); in GenerateVirtualCall()
5224 void CodeGeneratorX86::LoadBootImageAddress(Register reg, in LoadBootImageAddress()
5231 Register method_address_reg = in LoadBootImageAddress()
5232 invoke->GetLocations()->InAt(invoke->GetSpecialInputIndex()).AsRegister<Register>(); in LoadBootImageAddress()
5239 Register method_address_reg = in LoadBootImageAddress()
5240 invoke->GetLocations()->InAt(invoke->GetSpecialInputIndex()).AsRegister<Register>(); in LoadBootImageAddress()
5256 Register argument = calling_convention.GetRegisterAt(0); in AllocateInstanceForIntrinsic()
5263 Register method_address_reg = in AllocateInstanceForIntrinsic()
5264 invoke->GetLocations()->InAt(invoke->GetSpecialInputIndex()).AsRegister<Register>(); in AllocateInstanceForIntrinsic()
5342 void CodeGeneratorX86::MarkGCCard(Register temp, in MarkGCCard()
5343 Register card, in MarkGCCard()
5344 Register object, in MarkGCCard()
5345 Register value, in MarkGCCard()
5423 Register base = base_loc.AsRegister<Register>(); in HandleFieldGet()
5433 __ movzxb(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
5438 __ movsxb(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
5443 __ movzxw(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
5448 __ movsxw(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
5453 __ movl(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
5467 __ movl(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
5485 __ movd(out.AsRegisterPairLow<Register>(), temp); in HandleFieldGet()
5487 __ movd(out.AsRegisterPairHigh<Register>(), temp); in HandleFieldGet()
5489 DCHECK_NE(base, out.AsRegisterPairLow<Register>()); in HandleFieldGet()
5490 __ movl(out.AsRegisterPairLow<Register>(), Address(base, offset)); in HandleFieldGet()
5492 __ movl(out.AsRegisterPairHigh<Register>(), Address(base, kX86WordSize + offset)); in HandleFieldGet()
5582 Register base = locations->InAt(0).AsRegister<Register>(); in HandleFieldSet()
5610 __ movw(Address(base, offset), value.AsRegister<Register>()); in HandleFieldSet()
5622 Register temp = locations->GetTemp(0).AsRegister<Register>(); in HandleFieldSet()
5623 __ movl(temp, value.AsRegister<Register>()); in HandleFieldSet()
5631 __ movl(Address(base, offset), value.AsRegister<Register>()); in HandleFieldSet()
5640 __ movd(temp1, value.AsRegisterPairLow<Register>()); in HandleFieldSet()
5641 __ movd(temp2, value.AsRegisterPairHigh<Register>()); in HandleFieldSet()
5651 __ movl(Address(base, offset), value.AsRegisterPairLow<Register>()); in HandleFieldSet()
5653 __ movl(Address(base, kX86WordSize + offset), value.AsRegisterPairHigh<Register>()); in HandleFieldSet()
5694 Register temp = locations->GetTemp(0).AsRegister<Register>(); in HandleFieldSet()
5695 Register card = locations->GetTemp(1).AsRegister<Register>(); in HandleFieldSet()
5696 codegen_->MarkGCCard(temp, card, base, value.AsRegister<Register>(), value_can_be_null); in HandleFieldSet()
5828 __ testl(EAX, Address(obj.AsRegister<Register>(), 0)); in GenerateImplicitNullCheck()
5840 __ testl(obj.AsRegister<Register>(), obj.AsRegister<Register>()); in GenerateExplicitNullCheck()
5888 Register obj = obj_loc.AsRegister<Register>(); in VisitArrayGet()
5897 Register out = out_loc.AsRegister<Register>(); in VisitArrayGet()
5903 Register out = out_loc.AsRegister<Register>(); in VisitArrayGet()
5909 Register out = out_loc.AsRegister<Register>(); in VisitArrayGet()
5933 Register out = out_loc.AsRegister<Register>(); in VisitArrayGet()
5939 Register out = out_loc.AsRegister<Register>(); in VisitArrayGet()
5956 Register out = out_loc.AsRegister<Register>(); in VisitArrayGet()
5975 DCHECK_NE(obj, out_loc.AsRegisterPairLow<Register>()); in VisitArrayGet()
5976 __ movl(out_loc.AsRegisterPairLow<Register>(), in VisitArrayGet()
5979 __ movl(out_loc.AsRegisterPairHigh<Register>(), in VisitArrayGet()
6047 Register array = array_loc.AsRegister<Register>(); in VisitArraySet()
6075 __ movw(address, value.AsRegister<Register>()); in VisitArraySet()
6099 Register register_value = value.AsRegister<Register>(); in VisitArraySet()
6101 Register temp = temp_loc.AsRegister<Register>(); in VisitArraySet()
6157 Register card = locations->GetTemp(1).AsRegister<Register>(); in VisitArraySet()
6159 temp, card, array, value.AsRegister<Register>(), /* value_can_be_null= */ false); in VisitArraySet()
6166 Register source = register_value; in VisitArraySet()
6190 __ movl(address, value.AsRegister<Register>()); in VisitArraySet()
6204 value.AsRegisterPairLow<Register>()); in VisitArraySet()
6207 value.AsRegisterPairHigh<Register>()); in VisitArraySet()
6274 Register obj = locations->InAt(0).AsRegister<Register>(); in VisitArrayLength()
6275 Register out = locations->Out().AsRegister<Register>(); in VisitArrayLength()
6326 Register index_reg = index_loc.AsRegister<Register>(); in VisitBoundsCheck()
6337 Address array_len(array_loc.AsRegister<Register>(), len_offset); in VisitBoundsCheck()
6341 Register length_reg = locations->GetTemp(0).AsRegister<Register>(); in VisitBoundsCheck()
6353 __ cmpl(array_len, index_loc.AsRegister<Register>()); in VisitBoundsCheck()
6438 Register temp_reg = static_cast<Register>(ensure_scratch.GetRegister()); in MoveMemoryToMemory()
6456 __ movl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in EmitMove()
6458 __ movd(destination.AsFpuRegister<XmmRegister>(), source.AsRegister<Register>()); in EmitMove()
6461 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegister<Register>()); in EmitMove()
6465 __ movl(destination.AsRegisterPairLow<Register>(), source.AsRegisterPairLow<Register>()); in EmitMove()
6466 DCHECK_NE(destination.AsRegisterPairLow<Register>(), source.AsRegisterPairHigh<Register>()); in EmitMove()
6467 __ movl(destination.AsRegisterPairHigh<Register>(), source.AsRegisterPairHigh<Register>()); in EmitMove()
6471 __ pushl(source.AsRegisterPairHigh<Register>()); in EmitMove()
6473 __ pushl(source.AsRegisterPairLow<Register>()); in EmitMove()
6481 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegisterPairLow<Register>()); in EmitMove()
6483 source.AsRegisterPairHigh<Register>()); in EmitMove()
6487 __ movd(destination.AsRegister<Register>(), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6497 __ popl(destination.AsRegisterPairLow<Register>()); in EmitMove()
6499 __ popl(destination.AsRegisterPairHigh<Register>()); in EmitMove()
6511 __ movl(destination.AsRegister<Register>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6520 __ movl(destination.AsRegisterPairLow<Register>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6521 __ movl(destination.AsRegisterPairHigh<Register>(), in EmitMove()
6542 __ xorl(destination.AsRegister<Register>(), destination.AsRegister<Register>()); in EmitMove()
6544 __ movl(destination.AsRegister<Register>(), Immediate(value)); in EmitMove()
6562 Register temp = static_cast<Register>(ensure_scratch.GetRegister()); in EmitMove()
6580 __ movl(destination.AsRegisterPairLow<Register>(), low); in EmitMove()
6581 __ movl(destination.AsRegisterPairHigh<Register>(), high); in EmitMove()
6615 void ParallelMoveResolverX86::Exchange(Register reg, int mem) { in Exchange()
6616 Register suggested_scratch = reg == EAX ? EBX : EAX; in Exchange()
6621 __ movl(static_cast<Register>(ensure_scratch.GetRegister()), Address(ESP, mem + stack_offset)); in Exchange()
6623 __ movl(reg, static_cast<Register>(ensure_scratch.GetRegister())); in Exchange()
6630 Register temp_reg = static_cast<Register>(ensure_scratch.GetRegister()); in Exchange32()
6650 Register suggested_scratch = ensure_scratch1.GetRegister() == EAX ? EBX : EAX; in ExchangeMemory()
6659 … __ movl(static_cast<Register>(ensure_scratch1.GetRegister()), Address(ESP, mem1 + stack_offset)); in ExchangeMemory()
6660 … __ movl(static_cast<Register>(ensure_scratch2.GetRegister()), Address(ESP, mem2 + stack_offset)); in ExchangeMemory()
6661 … __ movl(Address(ESP, mem2 + stack_offset), static_cast<Register>(ensure_scratch1.GetRegister())); in ExchangeMemory()
6662 … __ movl(Address(ESP, mem1 + stack_offset), static_cast<Register>(ensure_scratch2.GetRegister())); in ExchangeMemory()
6674 DCHECK_NE(destination.AsRegister<Register>(), source.AsRegister<Register>()); in EmitSwap()
6675 __ xorl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in EmitSwap()
6676 __ xorl(source.AsRegister<Register>(), destination.AsRegister<Register>()); in EmitSwap()
6677 __ xorl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in EmitSwap()
6679 Exchange(source.AsRegister<Register>(), destination.GetStackIndex()); in EmitSwap()
6681 Exchange(destination.AsRegister<Register>(), source.GetStackIndex()); in EmitSwap()
6732 __ pushl(static_cast<Register>(reg)); in SpillScratch()
6736 __ popl(static_cast<Register>(reg)); in RestoreScratch()
6823 Register out = out_loc.AsRegister<Register>(); in VisitLoadClass()
6834 Register current_method = locations->InAt(0).AsRegister<Register>(); in VisitLoadClass()
6847 Register method_address = locations->InAt(0).AsRegister<Register>(); in VisitLoadClass()
6854 Register method_address = locations->InAt(0).AsRegister<Register>(); in VisitLoadClass()
6861 Register method_address = locations->InAt(0).AsRegister<Register>(); in VisitLoadClass()
6945 check->GetLocations()->InAt(0).AsRegister<Register>()); in VisitClinitCheck()
6949 SlowPathCode* slow_path, Register class_reg) { in GenerateClassInitializationCheck()
6962 Register temp) { in GenerateBitstringTypeCheckCompare()
7038 Register out = out_loc.AsRegister<Register>(); in VisitLoadString()
7044 Register method_address = locations->InAt(0).AsRegister<Register>(); in VisitLoadString()
7051 Register method_address = locations->InAt(0).AsRegister<Register>(); in VisitLoadString()
7058 Register method_address = locations->InAt(0).AsRegister<Register>(); in VisitLoadString()
7108 __ fs()->movl(load->GetLocations()->Out().AsRegister<Register>(), GetExceptionTlsAddress()); in VisitLoadException()
7199 Register obj = obj_loc.AsRegister<Register>(); in VisitInstanceOf()
7202 Register out = out_loc.AsRegister<Register>(); in VisitInstanceOf()
7231 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7267 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7293 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7329 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7362 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7465 Register obj = obj_loc.AsRegister<Register>(); in VisitCheckCast()
7468 Register temp = temp_loc.AsRegister<Register>(); in VisitCheckCast()
7506 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7543 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7564 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7597 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7651 __ movl(maybe_temp2_loc.AsRegister<Register>(), Address(temp, array_length_offset)); in VisitCheckCast()
7653 __ MaybePoisonHeapReference(cls.AsRegister<Register>()); in VisitCheckCast()
7658 __ subl(maybe_temp2_loc.AsRegister<Register>(), Immediate(2)); in VisitCheckCast()
7661 __ cmpl(cls.AsRegister<Register>(), in VisitCheckCast()
7668 __ MaybeUnpoisonHeapReference(cls.AsRegister<Register>()); in VisitCheckCast()
7724 __ andn(dest.AsRegister<Register>(), in VisitX86AndNot()
7725 first.AsRegister<Register>(), in VisitX86AndNot()
7726 second.AsRegister<Register>()); in VisitX86AndNot()
7729 __ andn(dest.AsRegisterPairLow<Register>(), in VisitX86AndNot()
7730 first.AsRegisterPairLow<Register>(), in VisitX86AndNot()
7731 second.AsRegisterPairLow<Register>()); in VisitX86AndNot()
7732 __ andn(dest.AsRegisterPairHigh<Register>(), in VisitX86AndNot()
7733 first.AsRegisterPairHigh<Register>(), in VisitX86AndNot()
7734 second.AsRegisterPairHigh<Register>()); in VisitX86AndNot()
7754 __ blsr(dest.AsRegister<Register>(), src.AsRegister<Register>()); in VisitX86MaskOrResetLeastSetBit()
7757 __ blsmsk(dest.AsRegister<Register>(), src.AsRegister<Register>()); in VisitX86MaskOrResetLeastSetBit()
7799 __ andl(first.AsRegister<Register>(), second.AsRegister<Register>()); in HandleBitwiseOperation()
7801 __ orl(first.AsRegister<Register>(), second.AsRegister<Register>()); in HandleBitwiseOperation()
7804 __ xorl(first.AsRegister<Register>(), second.AsRegister<Register>()); in HandleBitwiseOperation()
7808 __ andl(first.AsRegister<Register>(), in HandleBitwiseOperation()
7811 __ orl(first.AsRegister<Register>(), in HandleBitwiseOperation()
7815 __ xorl(first.AsRegister<Register>(), in HandleBitwiseOperation()
7820 __ andl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
7822 __ orl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
7825 __ xorl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
7832 __ andl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in HandleBitwiseOperation()
7833 __ andl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in HandleBitwiseOperation()
7835 __ orl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in HandleBitwiseOperation()
7836 __ orl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in HandleBitwiseOperation()
7839 __ xorl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in HandleBitwiseOperation()
7840 __ xorl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in HandleBitwiseOperation()
7844 __ andl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
7845 __ andl(first.AsRegisterPairHigh<Register>(), in HandleBitwiseOperation()
7848 __ orl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
7849 __ orl(first.AsRegisterPairHigh<Register>(), in HandleBitwiseOperation()
7853 __ xorl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
7854 __ xorl(first.AsRegisterPairHigh<Register>(), in HandleBitwiseOperation()
7864 Register first_low = first.AsRegisterPairLow<Register>(); in HandleBitwiseOperation()
7865 Register first_high = first.AsRegisterPairHigh<Register>(); in HandleBitwiseOperation()
7903 Register out_reg = out.AsRegister<Register>(); in GenerateReferenceLoadOneRegister()
7917 __ movl(maybe_temp.AsRegister<Register>(), out_reg); in GenerateReferenceLoadOneRegister()
7936 Register out_reg = out.AsRegister<Register>(); in GenerateReferenceLoadTwoRegisters()
7937 Register obj_reg = obj.AsRegister<Register>(); in GenerateReferenceLoadTwoRegisters()
7965 Register root_reg = root.AsRegister<Register>(); in GenerateGcRootFieldLoad()
8028 Register obj, in GenerateFieldLoadWithBakerReadBarrier()
8041 Register obj, in GenerateArrayLoadWithBakerReadBarrier()
8059 Register obj, in GenerateReferenceLoadWithBakerReadBarrier()
8063 Register* temp) { in GenerateReferenceLoadWithBakerReadBarrier()
8091 Register ref_reg = ref.AsRegister<Register>(); in GenerateReferenceLoadWithBakerReadBarrier()
8180 __ UnpoisonHeapReference(out.AsRegister<Register>()); in MaybeGenerateReadBarrierSlow()
8218 void InstructionCodeGeneratorX86::GenPackedSwitchWithCompares(Register value_reg, in GenPackedSwitchWithCompares()
8270 Register value_reg = locations->InAt(0).AsRegister<Register>(); in VisitPackedSwitch()
8295 Register value_reg = locations->InAt(0).AsRegister<Register>(); in VisitX86PackedSwitch()
8308 Register temp_reg = locations->GetTemp(0).AsRegister<Register>(); in VisitX86PackedSwitch()
8309 Register constant_area = locations->InAt(1).AsRegister<Register>(); in VisitX86PackedSwitch()
8343 Register reg = locations->Out().AsRegister<Register>(); in VisitX86ComputeBaseMethodAddress()
8392 Register const_area = locations->InAt(0).AsRegister<Register>(); in VisitX86LoadFromConstantTable()
8409 __ movl(out.AsRegister<Register>(), in VisitX86LoadFromConstantTable()
8519 Register reg) { in LiteralDoubleAddress()
8527 Register reg) { in LiteralFloatAddress()
8535 Register reg) { in LiteralInt32Address()
8543 Register reg) { in LiteralInt64Address()
8549 void CodeGeneratorX86::Load32BitValue(Register dest, int32_t value) { in Load32BitValue()
8557 void CodeGeneratorX86::Compare32BitValue(Register dest, int32_t value) { in Compare32BitValue()
8566 Register lhs_reg = lhs.AsRegister<Register>(); in GenerateIntCompare()
8570 void CodeGeneratorX86::GenerateIntCompare(Register lhs, Location rhs) { in GenerateIntCompare()
8577 __ cmpl(lhs, rhs.AsRegister<Register>()); in GenerateIntCompare()
8581 Address CodeGeneratorX86::ArrayAddress(Register obj, in ArrayAddress()
8587 Address(obj, index.AsRegister<Register>(), scale, data_offset); in ArrayAddress()
8591 Register reg, in LiteralCaseTable()
8592 Register value) { in LiteralCaseTable()