Lines Matching refs:__

71 #define __ down_cast<X86Assembler*>(codegen->GetAssembler())->  // NOLINT  macro
80 __ Bind(GetEntryLabel()); in EmitNativeCode()
106 __ Bind(GetEntryLabel()); in EmitNativeCode()
125 __ Bind(GetEntryLabel()); in EmitNativeCode()
127 __ negl(reg_); in EmitNativeCode()
129 __ movl(reg_, Immediate(0)); in EmitNativeCode()
131 __ jmp(GetExitLabel()); in EmitNativeCode()
149 __ Bind(GetEntryLabel()); in EmitNativeCode()
173 __ movl(length_loc.AsRegister<Register>(), array_len); in EmitNativeCode()
175 __ shrl(length_loc.AsRegister<Register>(), Immediate(1)); in EmitNativeCode()
209 __ Bind(GetEntryLabel()); in EmitNativeCode()
215 __ jmp(GetReturnLabel()); in EmitNativeCode()
217 __ jmp(x86_codegen->GetLabelOf(successor_)); in EmitNativeCode()
248 __ Bind(GetEntryLabel()); in EmitNativeCode()
253 __ movl(calling_convention.GetRegisterAt(0), Immediate(string_index.index_)); in EmitNativeCode()
259 __ jmp(GetExitLabel()); in EmitNativeCode()
284 __ Bind(GetEntryLabel()); in EmitNativeCode()
291 __ movl(calling_convention.GetRegisterAt(0), Immediate(type_index.index_)); in EmitNativeCode()
311 __ jmp(GetExitLabel()); in EmitNativeCode()
334 __ Bind(GetEntryLabel()); in EmitNativeCode()
340 __ UnpoisonHeapReference(locations->InAt(1).AsRegister<Register>()); in EmitNativeCode()
377 __ jmp(GetExitLabel()); in EmitNativeCode()
397 __ Bind(GetEntryLabel()); in EmitNativeCode()
420 __ Bind(GetEntryLabel()); in EmitNativeCode()
446 __ jmp(GetExitLabel()); in EmitNativeCode()
497 __ Bind(GetEntryLabel()); in EmitNativeCode()
500 __ MaybeUnpoisonHeapReference(ref_reg); in EmitNativeCode()
525 __ jmp(GetExitLabel()); in EmitNativeCode()
578 __ Bind(GetEntryLabel()); in EmitNativeCode()
581 __ MaybeUnpoisonHeapReference(ref_reg); in EmitNativeCode()
585 __ movl(temp_, ref_reg); in EmitNativeCode()
619 __ cmpl(temp_, ref_reg); in EmitNativeCode()
620 __ j(kEqual, &done); in EmitNativeCode()
631 __ pushl(EAX); in EmitNativeCode()
632 __ movl(EAX, temp_); in EmitNativeCode()
646 __ movl(value, base); in EmitNativeCode()
660 __ PoisonHeapReference(expected); in EmitNativeCode()
661 __ PoisonHeapReference(value); in EmitNativeCode()
664 __ LockCmpxchgl(field_addr_, value); in EmitNativeCode()
673 __ UnpoisonHeapReference(value); in EmitNativeCode()
679 __ popl(EAX); in EmitNativeCode()
681 __ Bind(&done); in EmitNativeCode()
682 __ jmp(GetExitLabel()); in EmitNativeCode()
745 __ Bind(GetEntryLabel()); in EmitNativeCode()
782 __ movl(free_reg, index_reg); in EmitNativeCode()
795 __ shll(index_reg, Immediate(TIMES_4)); in EmitNativeCode()
799 __ AddImmediate(index_reg, Immediate(offset_)); in EmitNativeCode()
838 __ movl(calling_convention.GetRegisterAt(2), Immediate(offset_)); in EmitNativeCode()
846 __ jmp(GetExitLabel()); in EmitNativeCode()
898 __ Bind(GetEntryLabel()); in EmitNativeCode()
912 __ jmp(GetExitLabel()); in EmitNativeCode()
924 #undef __
926 #define __ down_cast<X86Assembler*>(GetAssembler())-> // NOLINT macro
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()
989 __ movups(Address(ESP, stack_index), XmmRegister(reg_id)); in SaveFloatingPointRegister()
991 __ movsd(Address(ESP, stack_index), XmmRegister(reg_id)); in SaveFloatingPointRegister()
998 __ movups(XmmRegister(reg_id), Address(ESP, stack_index)); in RestoreFloatingPointRegister()
1000 __ movsd(XmmRegister(reg_id), Address(ESP, stack_index)); in RestoreFloatingPointRegister()
1024 __ fs()->call(Address::Absolute(entry_point_offset)); in GenerateInvokeRuntime()
1082 __ pushl(EAX); in MaybeIncrementHotness()
1083 __ cfi().AdjustCFAOffset(4); in MaybeIncrementHotness()
1084 __ movl(EAX, Address(ESP, kX86WordSize)); in MaybeIncrementHotness()
1087 __ cmpw(Address(reg, ArtMethod::HotnessCountOffset().Int32Value()), in MaybeIncrementHotness()
1089 __ j(kEqual, &overflow); in MaybeIncrementHotness()
1090 __ addw(Address(reg, ArtMethod::HotnessCountOffset().Int32Value()), in MaybeIncrementHotness()
1092 __ Bind(&overflow); in MaybeIncrementHotness()
1094 __ popl(EAX); in MaybeIncrementHotness()
1095 __ cfi().AdjustCFAOffset(-4); in MaybeIncrementHotness()
1110 __ pushl(EAX); in MaybeIncrementHotness()
1111 __ cfi().AdjustCFAOffset(4); in MaybeIncrementHotness()
1112 __ movl(EAX, Immediate(address)); in MaybeIncrementHotness()
1113 __ addw(Address(EAX, ProfilingInfo::BaselineHotnessCountOffset().Int32Value()), in MaybeIncrementHotness()
1115 __ j(kCarryClear, &done); in MaybeIncrementHotness()
1118 __ Bind(&done); in MaybeIncrementHotness()
1121 __ popl(EAX); in MaybeIncrementHotness()
1122 __ cfi().AdjustCFAOffset(-4); in MaybeIncrementHotness()
1127 __ movl(Address(ESP, kCurrentMethodStackOffset), kMethodRegisterArgument); in MaybeIncrementHotness()
1130 __ pushl(EAX); in MaybeIncrementHotness()
1131 __ cfi().AdjustCFAOffset(4); in MaybeIncrementHotness()
1132 __ movl(EAX, Immediate(address)); in MaybeIncrementHotness()
1133 __ addw(Address(EAX, ProfilingInfo::BaselineHotnessCountOffset().Int32Value()), in MaybeIncrementHotness()
1135 __ popl(EAX); // Put stack as expected before exiting or calling stub. in MaybeIncrementHotness()
1136 __ cfi().AdjustCFAOffset(-4); in MaybeIncrementHotness()
1137 __ j(kCarryClear, &done); in MaybeIncrementHotness()
1140 __ Bind(&done); in MaybeIncrementHotness()
1147 __ cfi().SetCurrentCFAOffset(kX86WordSize); // return address in GenerateFrameEntry()
1148 __ Bind(&frame_entry_label_); in GenerateFrameEntry()
1155 __ testl(EAX, Address(ESP, -static_cast<int32_t>(reserved_bytes))); in GenerateFrameEntry()
1163 __ pushl(reg); in GenerateFrameEntry()
1164 __ cfi().AdjustCFAOffset(kX86WordSize); in GenerateFrameEntry()
1165 __ cfi().RelOffset(DWARFReg(reg), 0); in GenerateFrameEntry()
1175 __ movl(Address(ESP, kCurrentMethodStackOffset), kMethodRegisterArgument); in GenerateFrameEntry()
1180 __ movl(Address(ESP, GetStackOffsetOfShouldDeoptimizeFlag()), Immediate(0)); in GenerateFrameEntry()
1188 __ cfi().RememberState(); in GenerateFrameExit()
1196 __ popl(reg); in GenerateFrameExit()
1197 __ cfi().AdjustCFAOffset(-static_cast<int>(kX86WordSize)); in GenerateFrameExit()
1198 __ cfi().Restore(DWARFReg(reg)); in GenerateFrameExit()
1202 __ ret(); in GenerateFrameExit()
1203 __ cfi().RestoreState(); in GenerateFrameExit()
1204 __ cfi().DefCFAOffset(GetFrameSize()); in GenerateFrameExit()
1208 __ Bind(GetLabelOf(block)); in Bind()
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()
1347 __ movaps(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in Move32()
1350 __ movss(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in Move32()
1355 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegister<Register>()); in Move32()
1357 __ movss(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in Move32()
1361 __ movl(Address(ESP, destination.GetStackIndex()), Immediate(value)); in Move32()
1364 __ pushl(Address(ESP, source.GetStackIndex())); in Move32()
1365 __ popl(Address(ESP, destination.GetStackIndex())); in Move32()
1385 __ movd(destination.AsRegisterPairLow<Register>(), src_reg); in Move64()
1386 __ psrlq(src_reg, Immediate(32)); 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()
1397 __ movaps(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in Move64()
1399 __ movsd(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in Move64()
1403 __ pushl(source.AsRegisterPairHigh<Register>()); in Move64()
1404 __ cfi().AdjustCFAOffset(elem_size); in Move64()
1405 __ pushl(source.AsRegisterPairLow<Register>()); in Move64()
1406 __ cfi().AdjustCFAOffset(elem_size); in Move64()
1407 __ movsd(destination.AsFpuRegister<XmmRegister>(), Address(ESP, 0)); in Move64()
1417 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegisterPairLow<Register>()); in Move64()
1418 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), in Move64()
1421 __ movsd(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in Move64()
1426 __ movl(Address(ESP, destination.GetStackIndex()), Immediate(Low32Bits(value))); in Move64()
1427 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), in Move64()
1444 __ movl(location.AsRegister<Register>(), Immediate(value)); in MoveConstant()
1489 __ jmp(codegen_->GetLabelOf(successor)); in HandleGoto()
1524 __ j(kUnordered, true_label); in GenerateFPJumps()
1526 __ j(kUnordered, false_label); in GenerateFPJumps()
1528 __ j(X86UnsignedOrFPCondition(cond->GetCondition()), true_label); in GenerateFPJumps()
1586 __ j(X86Condition(true_high_cond), true_label); in GenerateLongComparesAndJumps()
1588 __ j(X86Condition(false_high_cond), false_label); in GenerateLongComparesAndJumps()
1590 __ j(X86Condition(true_high_cond), true_label); in GenerateLongComparesAndJumps()
1591 __ j(X86Condition(false_high_cond), false_label); in GenerateLongComparesAndJumps()
1599 __ cmpl(left_high, right_high); in GenerateLongComparesAndJumps()
1601 __ j(X86Condition(true_high_cond), true_label); in GenerateLongComparesAndJumps()
1603 __ j(X86Condition(false_high_cond), false_label); in GenerateLongComparesAndJumps()
1605 __ j(X86Condition(true_high_cond), true_label); in GenerateLongComparesAndJumps()
1606 __ j(X86Condition(false_high_cond), false_label); in GenerateLongComparesAndJumps()
1609 __ cmpl(left_low, right_low); in GenerateLongComparesAndJumps()
1612 __ cmpl(left_high, Address(ESP, right.GetHighStackIndex(kX86WordSize))); in GenerateLongComparesAndJumps()
1614 __ j(X86Condition(true_high_cond), true_label); in GenerateLongComparesAndJumps()
1616 __ j(X86Condition(false_high_cond), false_label); in GenerateLongComparesAndJumps()
1618 __ j(X86Condition(true_high_cond), true_label); in GenerateLongComparesAndJumps()
1619 __ j(X86Condition(false_high_cond), false_label); in GenerateLongComparesAndJumps()
1622 __ cmpl(left_low, Address(ESP, right.GetStackIndex())); in GenerateLongComparesAndJumps()
1625 __ j(final_condition, true_label); in GenerateLongComparesAndJumps()
1635 __ ucomisd(lhs.AsFpuRegister<XmmRegister>(), rhs.AsFpuRegister<XmmRegister>()); in GenerateFPCompare()
1638 __ ucomisd(lhs.AsFpuRegister<XmmRegister>(), in GenerateFPCompare()
1645 __ ucomisd(lhs.AsFpuRegister<XmmRegister>(), Address(ESP, rhs.GetStackIndex())); in GenerateFPCompare()
1649 __ ucomiss(lhs.AsFpuRegister<XmmRegister>(), rhs.AsFpuRegister<XmmRegister>()); in GenerateFPCompare()
1652 __ ucomiss(lhs.AsFpuRegister<XmmRegister>(), in GenerateFPCompare()
1659 __ ucomiss(lhs.AsFpuRegister<XmmRegister>(), Address(ESP, rhs.GetStackIndex())); in GenerateFPCompare()
1696 __ jmp(false_target); in GenerateCompareTestAndBranch()
1700 __ Bind(&fallthrough_target); in GenerateCompareTestAndBranch()
1728 __ jmp(true_target); in GenerateTestAndBranch()
1733 __ jmp(false_target); in GenerateTestAndBranch()
1750 __ j(X86Condition(cond->AsCondition()->GetOppositeCondition()), false_target); in GenerateTestAndBranch()
1752 __ j(X86Condition(cond->AsCondition()->GetCondition()), true_target); in GenerateTestAndBranch()
1758 __ testl(lhs.AsRegister<Register>(), lhs.AsRegister<Register>()); in GenerateTestAndBranch()
1760 __ cmpl(Address(ESP, lhs.GetStackIndex()), Immediate(0)); in GenerateTestAndBranch()
1763 __ j(kEqual, false_target); in GenerateTestAndBranch()
1765 __ j(kNotEqual, true_target); in GenerateTestAndBranch()
1786 __ j(X86Condition(condition->GetOppositeCondition()), false_target); in GenerateTestAndBranch()
1788 __ j(X86Condition(condition->GetCondition()), true_target); in GenerateTestAndBranch()
1795 __ jmp(false_target); in GenerateTestAndBranch()
1843 __ movl(flag->GetLocations()->Out().AsRegister<Register>(), in VisitShouldDeoptimizeFlag()
1914 __ testl(cond_reg, cond_reg); in VisitSelect()
1927 __ testl(cond_reg, cond_reg); in VisitSelect()
1938 __ cmovl(cond, false_high, true_loc.AsRegisterPairHigh<Register>()); in VisitSelect()
1939 __ cmovl(cond, false_low, true_loc.AsRegisterPairLow<Register>()); in VisitSelect()
1941 __ cmovl(cond, false_high, Address(ESP, true_loc.GetHighStackIndex(kX86WordSize))); in VisitSelect()
1942 __ cmovl(cond, false_low, Address(ESP, true_loc.GetStackIndex())); in VisitSelect()
1948 __ cmovl(cond, false_reg, true_loc.AsRegister<Register>()); in VisitSelect()
1950 __ cmovl(cond, false_reg, Address(ESP, true_loc.GetStackIndex())); in VisitSelect()
1958 __ Bind(&false_target); in VisitSelect()
1971 __ subl(ESP, Immediate(adjustment)); in IncreaseFrame()
1972 __ cfi().AdjustCFAOffset(adjustment); in IncreaseFrame()
1976 __ addl(ESP, Immediate(adjustment)); in DecreaseFrame()
1977 __ cfi().AdjustCFAOffset(-adjustment); in DecreaseFrame()
1981 __ nop(); in GenerateNop()
2039 __ xorl(reg, reg); in HandleCondition()
2041 __ setb(X86Condition(cond->GetCondition()), reg); in HandleCondition()
2061 __ Bind(&false_label); in HandleCondition()
2062 __ xorl(reg, reg); in HandleCondition()
2063 __ jmp(&done_label); in HandleCondition()
2066 __ Bind(&true_label); in HandleCondition()
2067 __ movl(reg, Immediate(1)); in HandleCondition()
2068 __ Bind(&done_label); in HandleCondition()
2278 __ movd(EAX, XMM0); in VisitReturn()
2287 __ movd(EAX, XMM0); in VisitReturn()
2289 __ movaps(XMM1, XMM0); in VisitReturn()
2290 __ psrlq(XMM1, Immediate(32)); in VisitReturn()
2291 __ movd(EDX, XMM1); in VisitReturn()
2426 __ movl(temp, Immediate(address)); in MaybeGenerateInlineCacheCheck()
2428 __ cmpl(klass, Address(temp, InlineCache::ClassesOffset().Int32Value())); in MaybeGenerateInlineCacheCheck()
2429 __ j(kEqual, &done); in MaybeGenerateInlineCacheCheck()
2431 __ Bind(&done); in MaybeGenerateInlineCacheCheck()
2447 __ movl(temp, Immediate(invoke->GetDexMethodIndex())); in VisitInvokeInterface()
2448 __ movd(hidden_reg, temp); in VisitInvokeInterface()
2451 __ movl(temp, Address(ESP, receiver.GetStackIndex())); in VisitInvokeInterface()
2453 __ movl(temp, Address(temp, class_offset)); in VisitInvokeInterface()
2456 __ movl(temp, Address(receiver.AsRegister<Register>(), class_offset)); in VisitInvokeInterface()
2466 __ MaybeUnpoisonHeapReference(temp); in VisitInvokeInterface()
2471 __ movl(temp, in VisitInvokeInterface()
2476 __ movl(temp, Address(temp, method_offset)); in VisitInvokeInterface()
2478 __ call(Address(temp, 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()
2567 __ movl(constant, Immediate(INT32_C(0x80000000))); in VisitNeg()
2568 __ movd(mask, constant); in VisitNeg()
2569 __ xorps(out.AsFpuRegister<XmmRegister>(), mask); in VisitNeg()
2579 __ LoadLongConstant(mask, INT64_C(0x8000000000000000)); in VisitNeg()
2580 __ xorpd(out.AsFpuRegister<XmmRegister>(), mask); in VisitNeg()
2607 __ movss(mask, codegen_->LiteralInt32Address(INT32_C(0x80000000), in VisitX86FPNeg()
2610 __ xorps(out.AsFpuRegister<XmmRegister>(), mask); in VisitX86FPNeg()
2612 __ movsd(mask, codegen_->LiteralInt64Address(INT64_C(0x8000000000000000), in VisitX86FPNeg()
2615 __ xorpd(out.AsFpuRegister<XmmRegister>(), mask); 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()
2945 __ movl(output, Immediate(kPrimIntMax)); in VisitTypeConversion()
2947 __ cvtsi2ss(temp, output); in VisitTypeConversion()
2949 __ comiss(input, temp); in VisitTypeConversion()
2950 __ j(kAboveEqual, &done); in VisitTypeConversion()
2952 __ j(kUnordered, &nan); in VisitTypeConversion()
2954 __ cvttss2si(output, input); in VisitTypeConversion()
2955 __ jmp(&done); in VisitTypeConversion()
2956 __ Bind(&nan); in VisitTypeConversion()
2958 __ xorl(output, output); in VisitTypeConversion()
2959 __ Bind(&done); in VisitTypeConversion()
2969 __ movl(output, Immediate(kPrimIntMax)); in VisitTypeConversion()
2971 __ cvtsi2sd(temp, output); in VisitTypeConversion()
2973 __ comisd(input, temp); in VisitTypeConversion()
2974 __ j(kAboveEqual, &done); in VisitTypeConversion()
2976 __ j(kUnordered, &nan); in VisitTypeConversion()
2978 __ cvttsd2si(output, input); in VisitTypeConversion()
2979 __ jmp(&done); in VisitTypeConversion()
2980 __ Bind(&nan); in VisitTypeConversion()
2982 __ xorl(output, output); in VisitTypeConversion()
2983 __ Bind(&done); in VisitTypeConversion()
3004 __ cdq(); in VisitTypeConversion()
3031 __ cvtsi2ss(out.AsFpuRegister<XmmRegister>(), in.AsRegister<Register>()); in VisitTypeConversion()
3049 __ fstps(Address(ESP, out.GetStackIndex() + adjustment)); in VisitTypeConversion()
3051 __ fstps(Address(ESP, 0)); in VisitTypeConversion()
3064 __ cvtsd2ss(out.AsFpuRegister<XmmRegister>(), in.AsFpuRegister<XmmRegister>()); in VisitTypeConversion()
3081 __ cvtsi2sd(out.AsFpuRegister<XmmRegister>(), in.AsRegister<Register>()); in VisitTypeConversion()
3099 __ fstpl(Address(ESP, out.GetStackIndex() + adjustment)); in VisitTypeConversion()
3101 __ fstpl(Address(ESP, 0)); in VisitTypeConversion()
3114 __ cvtss2sd(out.AsFpuRegister<XmmRegister>(), in.AsFpuRegister<XmmRegister>()); in VisitTypeConversion()
3177 __ addl(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()
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()
3217 __ addss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitAdd()
3221 __ addss(first.AsFpuRegister<XmmRegister>(), in VisitAdd()
3228 __ addss(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); in VisitAdd()
3235 __ addsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitAdd()
3239 __ addsd(first.AsFpuRegister<XmmRegister>(), in VisitAdd()
3246 __ addsd(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); 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()
3323 __ subss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitSub()
3327 __ subss(first.AsFpuRegister<XmmRegister>(), in VisitSub()
3334 __ subss(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); in VisitSub()
3341 __ subsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitSub()
3345 __ subsd(first.AsFpuRegister<XmmRegister>(), in VisitSub()
3352 __ subsd(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); 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()
3450 __ movl(eax, high); in VisitMul()
3452 __ imull(eax, in1_lo); in VisitMul()
3454 __ imull(in1_hi, low); in VisitMul()
3456 __ addl(in1_hi, eax); in VisitMul()
3458 __ movl(eax, low); in VisitMul()
3460 __ mull(in1_lo); in VisitMul()
3462 __ addl(in1_hi, edx); in VisitMul()
3464 __ movl(in1_lo, eax); in VisitMul()
3469 __ movl(eax, in2_hi); in VisitMul()
3471 __ imull(eax, in1_lo); in VisitMul()
3473 __ imull(in1_hi, in2_lo); in VisitMul()
3475 __ addl(in1_hi, eax); in VisitMul()
3477 __ movl(eax, in1_lo); in VisitMul()
3479 __ mull(in2_lo); in VisitMul()
3481 __ addl(in1_hi, edx); in VisitMul()
3483 __ movl(in1_lo, eax); in VisitMul()
3489 __ movl(eax, in2_hi); in VisitMul()
3491 __ imull(eax, in1_lo); in VisitMul()
3493 __ imull(in1_hi, in2_lo); in VisitMul()
3495 __ addl(in1_hi, eax); in VisitMul()
3497 __ movl(eax, in1_lo); in VisitMul()
3499 __ mull(in2_lo); in VisitMul()
3501 __ addl(in1_hi, edx); in VisitMul()
3503 __ movl(in1_lo, eax); in VisitMul()
3512 __ mulss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitMul()
3516 __ mulss(first.AsFpuRegister<XmmRegister>(), in VisitMul()
3523 __ mulss(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); in VisitMul()
3531 __ mulsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitMul()
3535 __ mulsd(first.AsFpuRegister<XmmRegister>(), in VisitMul()
3542 __ mulsd(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); in VisitMul()
3560 __ flds(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
3562 __ filds(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
3567 __ fldl(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
3569 __ fildl(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
3577 __ flds(Address(ESP, temp_offset)); in PushOntoFPStack()
3579 __ filds(Address(ESP, temp_offset)); in PushOntoFPStack()
3585 __ fldl(Address(ESP, temp_offset)); in PushOntoFPStack()
3587 __ fildl(Address(ESP, temp_offset)); in PushOntoFPStack()
3613 __ Bind(&retry); in GenerateRemFP()
3614 __ fprem(); in GenerateRemFP()
3617 __ fstsw(); in GenerateRemFP()
3621 __ andl(EAX, Immediate(kC2ConditionMask)); in GenerateRemFP()
3622 __ j(kNotEqual, &retry); in GenerateRemFP()
3627 __ fsts(Address(ESP, 0)); in GenerateRemFP()
3629 __ fstl(Address(ESP, 0)); in GenerateRemFP()
3633 __ fucompp(); in GenerateRemFP()
3638 __ movss(out.AsFpuRegister<XmmRegister>(), Address(ESP, 0)); in GenerateRemFP()
3640 __ movsd(out.AsFpuRegister<XmmRegister>(), Address(ESP, 0)); in GenerateRemFP()
3662 __ xorl(out_register, out_register); in DivRemOneOrMinusOne()
3664 __ movl(out_register, input_register); in DivRemOneOrMinusOne()
3666 __ negl(out_register); in DivRemOneOrMinusOne()
3684 __ movl(out, numerator); in RemByPowerOfTwo()
3685 __ andl(out, Immediate(abs_imm-1)); in RemByPowerOfTwo()
3686 __ j(Condition::kZero, &done); in RemByPowerOfTwo()
3687 __ leal(tmp, Address(out, static_cast<int32_t>(~(abs_imm-1)))); in RemByPowerOfTwo()
3688 __ testl(numerator, numerator); in RemByPowerOfTwo()
3689 __ cmovl(Condition::kLess, out, tmp); in RemByPowerOfTwo()
3690 __ Bind(&done); in RemByPowerOfTwo()
3704 __ leal(num, Address(input_register, abs_imm - 1)); in DivByPowerOfTwo()
3705 __ testl(input_register, input_register); in DivByPowerOfTwo()
3706 __ cmovl(kGreaterEqual, num, input_register); in DivByPowerOfTwo()
3708 __ sarl(num, Immediate(shift)); in DivByPowerOfTwo()
3711 __ negl(num); in DivByPowerOfTwo()
3714 __ movl(out_register, num); in DivByPowerOfTwo()
3749 __ movl(num, eax); in GenerateDivRemWithAnyConstant()
3752 __ movl(eax, Immediate(magic)); in GenerateDivRemWithAnyConstant()
3755 __ imull(num); in GenerateDivRemWithAnyConstant()
3759 __ addl(edx, num); in GenerateDivRemWithAnyConstant()
3761 __ subl(edx, num); in GenerateDivRemWithAnyConstant()
3766 __ sarl(edx, Immediate(shift)); in GenerateDivRemWithAnyConstant()
3770 __ movl(eax, edx); in GenerateDivRemWithAnyConstant()
3771 __ shrl(edx, Immediate(31)); in GenerateDivRemWithAnyConstant()
3772 __ addl(edx, eax); in GenerateDivRemWithAnyConstant()
3775 __ movl(eax, num); in GenerateDivRemWithAnyConstant()
3776 __ imull(edx, Immediate(imm)); in GenerateDivRemWithAnyConstant()
3777 __ subl(eax, edx); in GenerateDivRemWithAnyConstant()
3778 __ movl(edx, eax); in GenerateDivRemWithAnyConstant()
3780 __ movl(eax, edx); in GenerateDivRemWithAnyConstant()
3825 __ cmpl(second_reg, Immediate(-1)); in GenerateDivRemIntegral()
3826 __ j(kEqual, slow_path->GetEntryLabel()); in GenerateDivRemIntegral()
3829 __ cdq(); in GenerateDivRemIntegral()
3831 __ idivl(second_reg); in GenerateDivRemIntegral()
3832 __ Bind(slow_path->GetExitLabel()); in GenerateDivRemIntegral()
3925 __ divss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitDiv()
3929 __ divss(first.AsFpuRegister<XmmRegister>(), in VisitDiv()
3936 __ divss(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); in VisitDiv()
3943 __ divsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitDiv()
3947 __ divsd(first.AsFpuRegister<XmmRegister>(), in VisitDiv()
3954 __ divsd(first.AsFpuRegister<XmmRegister>(), Address(ESP, second.GetStackIndex())); in VisitDiv()
4086 __ cmpl(output_lo, op2_lo); in GenerateMinMaxInt()
4090 __ movl(temp, output_hi); in GenerateMinMaxInt()
4091 __ sbbl(temp, op2_hi); in GenerateMinMaxInt()
4095 __ cmovl(cond, output_lo, op2_lo); in GenerateMinMaxInt()
4096 __ cmovl(cond, output_hi, op2_hi); in GenerateMinMaxInt()
4108 __ cmpl(out, op2); in GenerateMinMaxInt()
4110 __ cmovl(cond, out, op2); in GenerateMinMaxInt()
4149 __ ucomisd(out, op2); in GenerateMinMaxFP()
4152 __ ucomiss(out, op2); in GenerateMinMaxFP()
4155 __ j(Condition::kParityEven, &nan); in GenerateMinMaxFP()
4157 __ j(is_min ? Condition::kAbove : Condition::kBelow, &op2_label); in GenerateMinMaxFP()
4158 __ j(is_min ? Condition::kBelow : Condition::kAbove, &done); in GenerateMinMaxFP()
4163 __ orpd(out, op2); in GenerateMinMaxFP()
4165 __ orps(out, op2); in GenerateMinMaxFP()
4169 __ andpd(out, op2); in GenerateMinMaxFP()
4171 __ andps(out, op2); in GenerateMinMaxFP()
4174 __ jmp(&done); in GenerateMinMaxFP()
4177 __ Bind(&nan); in GenerateMinMaxFP()
4180 __ LoadLongConstant(out, kDoubleNaN); in GenerateMinMaxFP()
4183 __ movl(constant, Immediate(kFloatNaN)); in GenerateMinMaxFP()
4184 __ movd(out, constant); in GenerateMinMaxFP()
4186 __ jmp(&done); in GenerateMinMaxFP()
4189 __ Bind(&op2_label); in GenerateMinMaxFP()
4191 __ movsd(out, op2); in GenerateMinMaxFP()
4193 __ movss(out, op2); in GenerateMinMaxFP()
4197 __ Bind(&done); in GenerateMinMaxFP()
4270 __ cdq(); in VisitAbs()
4272 __ xorl(EAX, EDX); in VisitAbs()
4274 __ subl(EAX, EDX); in VisitAbs()
4287 __ movl(temp, input_hi); in VisitAbs()
4288 __ sarl(temp, Immediate(31)); in VisitAbs()
4290 __ movl(output_lo, temp); in VisitAbs()
4291 __ movl(output_hi, temp); in VisitAbs()
4293 __ xorl(output_lo, input_lo); in VisitAbs()
4294 __ xorl(output_hi, input_hi); in VisitAbs()
4296 __ subl(output_lo, temp); in VisitAbs()
4297 __ sbbl(output_hi, temp); in VisitAbs()
4304 __ movl(constant, Immediate(INT32_C(0x7FFFFFFF))); in VisitAbs()
4305 __ movd(temp, constant); in VisitAbs()
4306 __ andps(out, temp); in VisitAbs()
4313 __ LoadLongConstant(temp, INT64_C(0x7FFFFFFFFFFFFFFF)); in VisitAbs()
4314 __ andpd(out, temp); in VisitAbs()
4362 __ testl(value.AsRegister<Register>(), value.AsRegister<Register>()); in VisitDivZeroCheck()
4363 __ j(kEqual, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
4365 __ cmpl(Address(ESP, value.GetStackIndex()), Immediate(0)); in VisitDivZeroCheck()
4366 __ j(kEqual, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
4370 __ jmp(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
4378 __ movl(temp, value.AsRegisterPairLow<Register>()); in VisitDivZeroCheck()
4379 __ orl(temp, value.AsRegisterPairHigh<Register>()); in VisitDivZeroCheck()
4380 __ j(kEqual, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
4384 __ jmp(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
4431 __ shll(first_reg, second_reg); in HandleShift()
4433 __ sarl(first_reg, second_reg); in HandleShift()
4435 __ shrl(first_reg, second_reg); in HandleShift()
4444 __ shll(first_reg, imm); in HandleShift()
4446 __ sarl(first_reg, imm); in HandleShift()
4448 __ shrl(first_reg, imm); in HandleShift()
4490 __ addl(low, low); in GenerateShlLong()
4491 __ adcl(high, high); in GenerateShlLong()
4503 __ movl(high, low); in GenerateShlLong()
4504 __ shll(high, Immediate(shift - 32)); in GenerateShlLong()
4505 __ xorl(low, low); in GenerateShlLong()
4508 __ shld(high, low, Immediate(shift)); in GenerateShlLong()
4509 __ shll(low, Immediate(shift)); in GenerateShlLong()
4515 __ shld(loc.AsRegisterPairHigh<Register>(), loc.AsRegisterPairLow<Register>(), shifter); in GenerateShlLong()
4516 __ shll(loc.AsRegisterPairLow<Register>(), shifter); in GenerateShlLong()
4517 __ testl(shifter, Immediate(32)); in GenerateShlLong()
4518 __ j(kEqual, &done); in GenerateShlLong()
4519 __ movl(loc.AsRegisterPairHigh<Register>(), loc.AsRegisterPairLow<Register>()); in GenerateShlLong()
4520 __ movl(loc.AsRegisterPairLow<Register>(), Immediate(0)); in GenerateShlLong()
4521 __ Bind(&done); in GenerateShlLong()
4530 __ movl(low, high); in GenerateShrLong()
4531 __ sarl(high, Immediate(31)); in GenerateShrLong()
4535 __ movl(low, high); in GenerateShrLong()
4536 __ sarl(high, Immediate(31)); in GenerateShrLong()
4537 __ sarl(low, Immediate(shift - 32)); in GenerateShrLong()
4540 __ shrd(low, high, Immediate(shift)); in GenerateShrLong()
4541 __ sarl(high, Immediate(shift)); in GenerateShrLong()
4547 __ shrd(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>(), shifter); in GenerateShrLong()
4548 __ sarl(loc.AsRegisterPairHigh<Register>(), shifter); in GenerateShrLong()
4549 __ testl(shifter, Immediate(32)); in GenerateShrLong()
4550 __ j(kEqual, &done); in GenerateShrLong()
4551 __ movl(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>()); in GenerateShrLong()
4552 __ sarl(loc.AsRegisterPairHigh<Register>(), Immediate(31)); in GenerateShrLong()
4553 __ Bind(&done); in GenerateShrLong()
4570 __ movl(low, high); in GenerateUShrLong()
4571 __ shrl(low, Immediate(shift - 32)); in GenerateUShrLong()
4572 __ xorl(high, high); in GenerateUShrLong()
4575 __ shrd(low, high, Immediate(shift)); in GenerateUShrLong()
4576 __ shrl(high, Immediate(shift)); in GenerateUShrLong()
4582 __ shrd(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>(), shifter); in GenerateUShrLong()
4583 __ shrl(loc.AsRegisterPairHigh<Register>(), shifter); in GenerateUShrLong()
4584 __ testl(shifter, Immediate(32)); in GenerateUShrLong()
4585 __ j(kEqual, &done); in GenerateUShrLong()
4586 __ movl(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>()); in GenerateUShrLong()
4587 __ movl(loc.AsRegisterPairHigh<Register>(), Immediate(0)); in GenerateUShrLong()
4588 __ Bind(&done); in GenerateUShrLong()
4621 __ rorl(first_reg, second_reg); in VisitRor()
4624 __ rorl(first_reg, imm); in VisitRor()
4636 __ movl(temp_reg, first_reg_hi); in VisitRor()
4637 __ shrd(first_reg_hi, first_reg_lo, second_reg); in VisitRor()
4638 __ shrd(first_reg_lo, temp_reg, second_reg); in VisitRor()
4639 __ movl(temp_reg, first_reg_hi); in VisitRor()
4640 __ testl(second_reg, Immediate(32)); in VisitRor()
4641 __ cmovl(kNotEqual, first_reg_hi, first_reg_lo); in VisitRor()
4642 __ cmovl(kNotEqual, first_reg_lo, temp_reg); in VisitRor()
4651 __ movl(temp_reg, first_reg_lo); in VisitRor()
4652 __ movl(first_reg_lo, first_reg_hi); in VisitRor()
4653 __ movl(first_reg_hi, temp_reg); in VisitRor()
4659 __ movl(temp_reg, first_reg_lo); in VisitRor()
4662 __ shrd(first_reg_lo, first_reg_hi, imm); in VisitRor()
4665 __ shrd(first_reg_hi, temp_reg, imm); in VisitRor()
4669 __ movl(temp_reg, first_reg_lo); in VisitRor()
4670 __ movl(first_reg_lo, first_reg_hi); in VisitRor()
4671 __ movl(first_reg_hi, temp_reg); in VisitRor()
4768 __ movl(locations->Out().AsRegister<Register>(), in VisitClassTableGet()
4773 __ movl(locations->Out().AsRegister<Register>(), in VisitClassTableGet()
4777 __ movl(locations->Out().AsRegister<Register>(), 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()
4893 __ cmpl(left_high, right.AsRegisterPairHigh<Register>()); in VisitCompare()
4895 __ cmpl(left_high, Address(ESP, right.GetHighStackIndex(kX86WordSize))); in VisitCompare()
4900 __ j(kLess, &less); // Signed compare. in VisitCompare()
4901 __ j(kGreater, &greater); // Signed compare. in VisitCompare()
4903 __ cmpl(left_low, right.AsRegisterPairLow<Register>()); in VisitCompare()
4905 __ cmpl(left_low, Address(ESP, right.GetStackIndex())); in VisitCompare()
4915 __ j(kUnordered, compare->IsGtBias() ? &greater : &less); in VisitCompare()
4921 __ j(kUnordered, compare->IsGtBias() ? &greater : &less); in VisitCompare()
4929 __ movl(out, Immediate(0)); in VisitCompare()
4930 __ j(kEqual, &done); in VisitCompare()
4931 __ j(less_cond, &less); in VisitCompare()
4933 __ Bind(&greater); in VisitCompare()
4934 __ movl(out, Immediate(1)); in VisitCompare()
4935 __ jmp(&done); in VisitCompare()
4937 __ Bind(&less); in VisitCompare()
4938 __ movl(out, Immediate(-1)); in VisitCompare()
4940 __ Bind(&done); in VisitCompare()
4994 __ movl(temp, Address(ESP, location.GetStackIndex())); in GetInvokeStaticOrDirectExtraParameter()
5005 __ movl(temp, Address(ESP, stack_offset)); in GetInvokeStaticOrDirectExtraParameter()
5019 __ fs()->movl(temp.AsRegister<Register>(), Address::Absolute(offset)); in GenerateStaticOrDirectCall()
5029 __ leal(temp.AsRegister<Register>(), in GenerateStaticOrDirectCall()
5037 __ movl(temp.AsRegister<Register>(), Address(base_reg, kPlaceholder32BitOffset)); in GenerateStaticOrDirectCall()
5046 __ movl(temp.AsRegister<Register>(), Address(base_reg, kPlaceholder32BitOffset)); in GenerateStaticOrDirectCall()
5052 __ movl(temp.AsRegister<Register>(), Immediate(invoke->GetMethodAddress())); in GenerateStaticOrDirectCall()
5062 __ call(GetFrameEntryLabel()); in GenerateStaticOrDirectCall()
5071 __ call(Address(callee_method.AsRegister<Register>(), in GenerateStaticOrDirectCall()
5082 __ movzxb(EAX, AL); in GenerateStaticOrDirectCall()
5085 __ movsxb(EAX, AL); in GenerateStaticOrDirectCall()
5088 __ movzxw(EAX, EAX); in GenerateStaticOrDirectCall()
5091 __ movsxw(EAX, EAX); in GenerateStaticOrDirectCall()
5094 __ fstps(Address(ESP, 0)); in GenerateStaticOrDirectCall()
5095 __ movss(XMM0, Address(ESP, 0)); in GenerateStaticOrDirectCall()
5098 __ fstpl(Address(ESP, 0)); in GenerateStaticOrDirectCall()
5099 __ movsd(XMM0, Address(ESP, 0)); in GenerateStaticOrDirectCall()
5116 __ call(Address(callee_method.AsRegister<Register>(), in GenerateStaticOrDirectCall()
5140 __ movl(temp, Address(receiver, class_offset)); in GenerateVirtualCall()
5149 __ MaybeUnpoisonHeapReference(temp); in GenerateVirtualCall()
5154 __ movl(temp, Address(temp, method_offset)); in GenerateVirtualCall()
5156 __ call(Address( in GenerateVirtualCall()
5165 __ Bind(&boot_image_other_patches_.back().label); in RecordBootImageIntrinsicPatch()
5172 __ Bind(&boot_image_other_patches_.back().label); in RecordBootImageRelRoPatch()
5180 __ Bind(&boot_image_method_patches_.back().label); in RecordBootImageMethodPatch()
5189 __ Bind(&method_bss_entry_patches_.back().label); in RecordMethodBssEntryPatch()
5197 __ Bind(&boot_image_type_patches_.back().label); in RecordBootImageTypePatch()
5213 __ Bind(&boot_image_string_patches_.back().label); in RecordBootImageStringPatch()
5233 __ leal(reg, Address(method_address_reg, CodeGeneratorX86::kPlaceholder32BitOffset)); in LoadBootImageAddress()
5241 __ movl(reg, Address(method_address_reg, CodeGeneratorX86::kPlaceholder32BitOffset)); in LoadBootImageAddress()
5248 __ movl(reg, Immediate(dchecked_integral_cast<uint32_t>(reinterpret_cast<uintptr_t>(address)))); in LoadBootImageAddress()
5265 __ leal(argument, Address(method_address_reg, CodeGeneratorX86::kPlaceholder32BitOffset)); in AllocateInstanceForIntrinsic()
5269 __ Bind(&boot_image_type_patches_.back().label); in AllocateInstanceForIntrinsic()
5349 __ testl(value, value); in MarkGCCard()
5350 __ j(kEqual, &is_null); in MarkGCCard()
5353 __ fs()->movl(card, Address::Absolute(Thread::CardTableOffset<kX86PointerSize>().Int32Value())); in MarkGCCard()
5356 __ movl(temp, object); in MarkGCCard()
5357 __ shrl(temp, Immediate(gc::accounting::CardTable::kCardShift)); in MarkGCCard()
5371 __ movb(Address(temp, card, TIMES_1, 0), in MarkGCCard()
5374 __ Bind(&is_null); in MarkGCCard()
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()
5483 __ movsd(temp, Address(base, offset)); in HandleFieldGet()
5485 __ movd(out.AsRegisterPairLow<Register>(), temp); in HandleFieldGet()
5486 __ psrlq(temp, Immediate(32)); in HandleFieldGet()
5487 __ movd(out.AsRegisterPairHigh<Register>(), temp); in HandleFieldGet()
5490 __ movl(out.AsRegisterPairLow<Register>(), Address(base, offset)); in HandleFieldGet()
5492 __ movl(out.AsRegisterPairHigh<Register>(), Address(base, kX86WordSize + offset)); in HandleFieldGet()
5498 __ movss(out.AsFpuRegister<XmmRegister>(), Address(base, offset)); in HandleFieldGet()
5503 __ movsd(out.AsFpuRegister<XmmRegister>(), Address(base, offset)); in HandleFieldGet()
5600 __ movb(Address(base, offset), value.AsRegister<ByteRegister>()); in HandleFieldSet()
5607 __ movw(Address(base, offset), in HandleFieldSet()
5610 __ movw(Address(base, offset), value.AsRegister<Register>()); in HandleFieldSet()
5623 __ movl(temp, value.AsRegister<Register>()); in HandleFieldSet()
5624 __ PoisonHeapReference(temp); in HandleFieldSet()
5625 __ movl(Address(base, offset), temp); in HandleFieldSet()
5628 __ movl(Address(base, offset), Immediate(v)); 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()
5642 __ punpckldq(temp1, temp2); in HandleFieldSet()
5643 __ movsd(Address(base, offset), temp1); in HandleFieldSet()
5647 __ movl(Address(base, offset), Immediate(Low32Bits(v))); in HandleFieldSet()
5649 __ movl(Address(base, kX86WordSize + offset), Immediate(High32Bits(v))); in HandleFieldSet()
5651 __ movl(Address(base, offset), value.AsRegisterPairLow<Register>()); in HandleFieldSet()
5653 __ movl(Address(base, kX86WordSize + offset), value.AsRegisterPairHigh<Register>()); in HandleFieldSet()
5662 __ movl(Address(base, offset), Immediate(v)); in HandleFieldSet()
5664 __ movss(Address(base, offset), value.AsFpuRegister<XmmRegister>()); in HandleFieldSet()
5672 __ movl(Address(base, offset), Immediate(Low32Bits(v))); in HandleFieldSet()
5674 __ movl(Address(base, kX86WordSize + offset), Immediate(High32Bits(v))); in HandleFieldSet()
5677 __ movsd(Address(base, offset), value.AsFpuRegister<XmmRegister>()); in HandleFieldSet()
5741 __ movl(EAX, Immediate(instruction->GetFormat()->GetValue())); in VisitStringBuilderAppend()
5828 __ testl(EAX, Address(obj.AsRegister<Register>(), 0)); in GenerateImplicitNullCheck()
5840 __ testl(obj.AsRegister<Register>(), obj.AsRegister<Register>()); in GenerateExplicitNullCheck()
5842 __ cmpl(Address(ESP, obj.GetStackIndex()), Immediate(0)); in GenerateExplicitNullCheck()
5846 __ jmp(slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
5849 __ j(kEqual, slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
5898 __ movzxb(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_1, data_offset)); in VisitArrayGet()
5904 __ movsxb(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_1, data_offset)); in VisitArrayGet()
5914 __ testb(Address(obj, count_offset), Immediate(1)); in VisitArrayGet()
5918 __ j(kNotZero, &not_compressed); in VisitArrayGet()
5919 __ movzxb(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_1, data_offset)); in VisitArrayGet()
5920 __ jmp(&done); in VisitArrayGet()
5921 __ Bind(&not_compressed); in VisitArrayGet()
5922 __ movzxw(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_2, data_offset)); in VisitArrayGet()
5923 __ Bind(&done); in VisitArrayGet()
5927 __ movzxw(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_2, data_offset)); in VisitArrayGet()
5934 __ movsxw(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_2, data_offset)); in VisitArrayGet()
5940 __ movl(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_4, data_offset)); in VisitArrayGet()
5957 __ movl(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_4, data_offset)); in VisitArrayGet()
5976 __ movl(out_loc.AsRegisterPairLow<Register>(), in VisitArrayGet()
5979 __ movl(out_loc.AsRegisterPairHigh<Register>(), in VisitArrayGet()
5986 __ movss(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_4, data_offset)); in VisitArrayGet()
5992 __ movsd(out, CodeGeneratorX86::ArrayAddress(obj, index, TIMES_8, data_offset)); in VisitArrayGet()
6062 __ movb(address, value.AsRegister<ByteRegister>()); in VisitArraySet()
6064 __ movb(address, Immediate(CodeGenerator::GetInt8ValueOf(value.GetConstant()))); in VisitArraySet()
6075 __ movw(address, value.AsRegister<Register>()); in VisitArraySet()
6077 __ movw(address, Immediate(CodeGenerator::GetInt16ValueOf(value.GetConstant()))); in VisitArraySet()
6091 __ movl(address, Immediate(0)); in VisitArraySet()
6106 __ testl(register_value, register_value); in VisitArraySet()
6107 __ j(kEqual, &do_store); in VisitArraySet()
6128 __ movl(temp, Address(array, class_offset)); in VisitArraySet()
6130 __ MaybeUnpoisonHeapReference(temp); in VisitArraySet()
6133 __ movl(temp, Address(temp, component_offset)); in VisitArraySet()
6137 __ cmpl(temp, Address(register_value, class_offset)); in VisitArraySet()
6141 __ j(kEqual, &do_put); in VisitArraySet()
6144 __ MaybeUnpoisonHeapReference(temp); in VisitArraySet()
6149 __ cmpl(Address(temp, super_offset), Immediate(0)); in VisitArraySet()
6150 __ j(kNotEqual, slow_path->GetEntryLabel()); in VisitArraySet()
6151 __ Bind(&do_put); in VisitArraySet()
6153 __ j(kNotEqual, slow_path->GetEntryLabel()); in VisitArraySet()
6163 __ Bind(&do_store); in VisitArraySet()
6168 __ movl(temp, register_value); in VisitArraySet()
6169 __ PoisonHeapReference(temp); in VisitArraySet()
6173 __ movl(address, source); in VisitArraySet()
6180 __ Bind(slow_path->GetExitLabel()); in VisitArraySet()
6190 __ movl(address, value.AsRegister<Register>()); in VisitArraySet()
6194 __ movl(address, Immediate(v)); in VisitArraySet()
6203 __ movl(CodeGeneratorX86::ArrayAddress(array, index, TIMES_8, data_offset), in VisitArraySet()
6206 __ movl(CodeGeneratorX86::ArrayAddress(array, index, TIMES_8, data_offset + kX86WordSize), in VisitArraySet()
6211 __ movl(CodeGeneratorX86::ArrayAddress(array, index, TIMES_8, data_offset), in VisitArraySet()
6214 __ movl(CodeGeneratorX86::ArrayAddress(array, index, TIMES_8, data_offset + kX86WordSize), in VisitArraySet()
6224 __ movss(address, value.AsFpuRegister<XmmRegister>()); in VisitArraySet()
6228 __ movl(address, Immediate(v)); in VisitArraySet()
6238 __ movsd(address, value.AsFpuRegister<XmmRegister>()); in VisitArraySet()
6244 __ movl(address, Immediate(Low32Bits(v))); in VisitArraySet()
6246 __ movl(address_hi, Immediate(High32Bits(v))); in VisitArraySet()
6276 __ movl(out, Address(obj, offset)); in VisitArrayLength()
6280 __ shrl(out, Immediate(1)); in VisitArrayLength()
6317 __ jmp(slow_path->GetEntryLabel()); in VisitBoundsCheck()
6327 __ cmpl(index_reg, Immediate(length)); in VisitBoundsCheck()
6329 __ j(kAboveEqual, slow_path->GetEntryLabel()); in VisitBoundsCheck()
6342 __ movl(length_reg, array_len); in VisitBoundsCheck()
6344 __ shrl(length_reg, Immediate(1)); in VisitBoundsCheck()
6351 __ cmpl(array_len, Immediate(value)); in VisitBoundsCheck()
6353 __ cmpl(array_len, index_loc.AsRegister<Register>()); in VisitBoundsCheck()
6361 __ j(kBelowEqual, slow_path->GetEntryLabel()); in VisitBoundsCheck()
6420 __ fs()->cmpw(Address::Absolute(Thread::ThreadFlagsOffset<kX86PointerSize>().Int32Value()), in GenerateSuspendCheck()
6423 __ j(kNotEqual, slow_path->GetEntryLabel()); in GenerateSuspendCheck()
6424 __ Bind(slow_path->GetReturnLabel()); in GenerateSuspendCheck()
6426 __ j(kEqual, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
6427 __ jmp(slow_path->GetEntryLabel()); in GenerateSuspendCheck()
6443 __ movl(temp_reg, Address(ESP, src + stack_offset)); in MoveMemoryToMemory()
6444 __ movl(Address(ESP, dst + stack_offset), temp_reg); 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()
6467 __ movl(destination.AsRegisterPairHigh<Register>(), source.AsRegisterPairHigh<Register>()); in EmitMove()
6471 __ pushl(source.AsRegisterPairHigh<Register>()); in EmitMove()
6472 __ cfi().AdjustCFAOffset(elem_size); in EmitMove()
6473 __ pushl(source.AsRegisterPairLow<Register>()); in EmitMove()
6474 __ cfi().AdjustCFAOffset(elem_size); in EmitMove()
6476 __ movsd(destination.AsFpuRegister<XmmRegister>(), Address(ESP, 0)); in EmitMove()
6481 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegisterPairLow<Register>()); in EmitMove()
6482 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), in EmitMove()
6487 __ movd(destination.AsRegister<Register>(), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6489 __ movaps(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6495 __ movsd(Address(ESP, 0), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6497 __ popl(destination.AsRegisterPairLow<Register>()); in EmitMove()
6498 __ cfi().AdjustCFAOffset(-elem_size); in EmitMove()
6499 __ popl(destination.AsRegisterPairHigh<Register>()); in EmitMove()
6500 __ cfi().AdjustCFAOffset(-elem_size); in EmitMove()
6502 __ movss(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6504 __ movsd(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6507 __ movups(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in EmitMove()
6511 __ movl(destination.AsRegister<Register>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6513 __ movss(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6520 __ movl(destination.AsRegisterPairLow<Register>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6521 __ movl(destination.AsRegisterPairHigh<Register>(), in EmitMove()
6524 __ movsd(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6531 __ movups(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in EmitMove()
6542 __ xorl(destination.AsRegister<Register>(), destination.AsRegister<Register>()); in EmitMove()
6544 __ movl(destination.AsRegister<Register>(), Immediate(value)); in EmitMove()
6548 __ movl(Address(ESP, destination.GetStackIndex()), Immediate(value)); in EmitMove()
6558 __ xorps(dest, dest); in EmitMove()
6563 __ movl(temp, Immediate(value)); in EmitMove()
6564 __ movd(dest, temp); in EmitMove()
6568 __ movl(Address(ESP, destination.GetStackIndex()), imm); in EmitMove()
6577 __ movl(Address(ESP, destination.GetStackIndex()), low); in EmitMove()
6578 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), high); in EmitMove()
6580 __ movl(destination.AsRegisterPairLow<Register>(), low); in EmitMove()
6581 __ movl(destination.AsRegisterPairHigh<Register>(), high); in EmitMove()
6595 __ xorpd(dest, dest); in EmitMove()
6597 __ pushl(high); in EmitMove()
6598 __ cfi().AdjustCFAOffset(4); in EmitMove()
6599 __ pushl(low); in EmitMove()
6600 __ cfi().AdjustCFAOffset(4); in EmitMove()
6601 __ movsd(dest, Address(ESP, 0)); in EmitMove()
6606 __ movl(Address(ESP, destination.GetStackIndex()), low); in EmitMove()
6607 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), high); in EmitMove()
6621 __ movl(static_cast<Register>(ensure_scratch.GetRegister()), Address(ESP, mem + stack_offset)); in Exchange()
6622 __ movl(Address(ESP, mem + stack_offset), reg); in Exchange()
6623 __ movl(reg, static_cast<Register>(ensure_scratch.GetRegister())); in Exchange()
6632 __ movl(temp_reg, Address(ESP, mem + stack_offset)); in Exchange32()
6633 __ movss(Address(ESP, mem + stack_offset), reg); in Exchange32()
6634 __ movd(reg, temp_reg); in Exchange32()
6640 __ movups(Address(ESP, 0), XmmRegister(reg)); in Exchange128()
6642 __ movups(XmmRegister(reg), Address(ESP, 0)); in Exchange128()
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()
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()
6687 __ xorpd(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in EmitSwap()
6688 __ xorpd(source.AsFpuRegister<XmmRegister>(), destination.AsFpuRegister<XmmRegister>()); in EmitSwap()
6689 __ xorpd(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in EmitSwap()
6699 __ movhpd(reg, stack); in EmitSwap()
6702 __ movsd(stack, reg); in EmitSwap()
6705 __ psrldq(reg, Immediate(8)); in EmitSwap()
6711 __ movhpd(reg, stack); in EmitSwap()
6714 __ movsd(stack, reg); in EmitSwap()
6717 __ psrldq(reg, Immediate(8)); in EmitSwap()
6732 __ pushl(static_cast<Register>(reg)); in SpillScratch()
6736 __ popl(static_cast<Register>(reg)); in RestoreScratch()
6848 __ leal(out, Address(method_address, CodeGeneratorX86::kPlaceholder32BitOffset)); in VisitLoadClass()
6855 __ movl(out, Address(method_address, CodeGeneratorX86::kPlaceholder32BitOffset)); in VisitLoadClass()
6873 __ movl(out, Immediate(address)); in VisitLoadClass()
6896 __ testl(out, out); in VisitLoadClass()
6897 __ j(kEqual, slow_path->GetEntryLabel()); in VisitLoadClass()
6903 __ Bind(slow_path->GetExitLabel()); in VisitLoadClass()
6956 __ cmpb(Address(class_reg, status_byte_offset), Immediate(shifted_visibly_initialized_value)); in GenerateClassInitializationCheck()
6957 __ j(kBelow, slow_path->GetEntryLabel()); in GenerateClassInitializationCheck()
6958 __ Bind(slow_path->GetExitLabel()); in GenerateClassInitializationCheck()
6970 __ cmpw(Address(temp, mirror::Class::StatusOffset()), Immediate(path_to_root)); in GenerateBitstringTypeCheckCompare()
6973 __ movl(temp, Address(temp, mirror::Class::StatusOffset())); in GenerateBitstringTypeCheckCompare()
6975 __ subl(temp, Immediate(path_to_root)); in GenerateBitstringTypeCheckCompare()
6977 __ shll(temp, Immediate(32u - mask_bits)); in GenerateBitstringTypeCheckCompare()
7045 __ leal(out, Address(method_address, CodeGeneratorX86::kPlaceholder32BitOffset)); in VisitLoadString()
7052 __ movl(out, Address(method_address, CodeGeneratorX86::kPlaceholder32BitOffset)); in VisitLoadString()
7066 __ testl(out, out); in VisitLoadString()
7067 __ j(kEqual, slow_path->GetEntryLabel()); in VisitLoadString()
7068 __ Bind(slow_path->GetExitLabel()); in VisitLoadString()
7074 __ movl(out, Immediate(address)); in VisitLoadString()
7092 __ movl(calling_convention.GetRegisterAt(0), Immediate(load->GetStringIndex().index_)); in VisitLoadString()
7108 __ fs()->movl(load->GetLocations()->Out().AsRegister<Register>(), GetExceptionTlsAddress()); in VisitLoadException()
7116 __ fs()->movl(GetExceptionTlsAddress(), Immediate(0)); in VisitClearException()
7216 __ testl(obj, obj); in VisitInstanceOf()
7217 __ j(kEqual, &zero); in VisitInstanceOf()
7231 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7234 __ cmpl(out, Address(ESP, cls.GetStackIndex())); in VisitInstanceOf()
7238 __ j(kNotEqual, &zero); in VisitInstanceOf()
7239 __ movl(out, Immediate(1)); in VisitInstanceOf()
7240 __ jmp(&done); in VisitInstanceOf()
7256 __ Bind(&loop); in VisitInstanceOf()
7263 __ testl(out, out); in VisitInstanceOf()
7265 __ j(kEqual, &done); in VisitInstanceOf()
7267 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7270 __ cmpl(out, Address(ESP, cls.GetStackIndex())); in VisitInstanceOf()
7272 __ j(kNotEqual, &loop); in VisitInstanceOf()
7273 __ movl(out, Immediate(1)); in VisitInstanceOf()
7275 __ jmp(&done); in VisitInstanceOf()
7291 __ Bind(&loop); in VisitInstanceOf()
7293 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7296 __ cmpl(out, Address(ESP, cls.GetStackIndex())); in VisitInstanceOf()
7298 __ j(kEqual, &success); in VisitInstanceOf()
7305 __ testl(out, out); in VisitInstanceOf()
7306 __ j(kNotEqual, &loop); in VisitInstanceOf()
7308 __ jmp(&done); in VisitInstanceOf()
7309 __ Bind(&success); in VisitInstanceOf()
7310 __ movl(out, Immediate(1)); in VisitInstanceOf()
7312 __ jmp(&done); in VisitInstanceOf()
7329 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7332 __ cmpl(out, Address(ESP, cls.GetStackIndex())); in VisitInstanceOf()
7334 __ j(kEqual, &exact_check); in VisitInstanceOf()
7342 __ testl(out, out); in VisitInstanceOf()
7344 __ j(kEqual, &done); in VisitInstanceOf()
7345 __ cmpw(Address(out, primitive_offset), Immediate(Primitive::kPrimNot)); in VisitInstanceOf()
7346 __ j(kNotEqual, &zero); in VisitInstanceOf()
7347 __ Bind(&exact_check); in VisitInstanceOf()
7348 __ movl(out, Immediate(1)); in VisitInstanceOf()
7349 __ jmp(&done); in VisitInstanceOf()
7362 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
7365 __ cmpl(out, Address(ESP, cls.GetStackIndex())); in VisitInstanceOf()
7371 __ j(kNotEqual, slow_path->GetEntryLabel()); in VisitInstanceOf()
7372 __ movl(out, Immediate(1)); in VisitInstanceOf()
7374 __ jmp(&done); in VisitInstanceOf()
7403 __ jmp(slow_path->GetEntryLabel()); in VisitInstanceOf()
7405 __ jmp(&done); in VisitInstanceOf()
7419 __ j(kNotEqual, &zero); in VisitInstanceOf()
7420 __ movl(out, Immediate(1)); in VisitInstanceOf()
7421 __ jmp(&done); in VisitInstanceOf()
7427 __ Bind(&zero); in VisitInstanceOf()
7428 __ xorl(out, out); in VisitInstanceOf()
7432 __ Bind(&done); in VisitInstanceOf()
7436 __ Bind(slow_path->GetExitLabel()); in VisitInstanceOf()
7491 __ testl(obj, obj); in VisitCheckCast()
7492 __ j(kEqual, &done); in VisitCheckCast()
7506 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7509 __ cmpl(temp, Address(ESP, cls.GetStackIndex())); in VisitCheckCast()
7513 __ j(kNotEqual, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7528 __ Bind(&loop); in VisitCheckCast()
7538 __ testl(temp, temp); in VisitCheckCast()
7539 __ j(kZero, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7543 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7546 __ cmpl(temp, Address(ESP, cls.GetStackIndex())); in VisitCheckCast()
7548 __ j(kNotEqual, &loop); in VisitCheckCast()
7562 __ Bind(&loop); in VisitCheckCast()
7564 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7567 __ cmpl(temp, Address(ESP, cls.GetStackIndex())); in VisitCheckCast()
7569 __ j(kEqual, &done); in VisitCheckCast()
7580 __ testl(temp, temp); in VisitCheckCast()
7581 __ j(kNotZero, &loop); in VisitCheckCast()
7583 __ jmp(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7597 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
7600 __ cmpl(temp, Address(ESP, cls.GetStackIndex())); in VisitCheckCast()
7602 __ j(kEqual, &done); in VisitCheckCast()
7614 __ testl(temp, temp); in VisitCheckCast()
7615 __ j(kZero, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7617 __ cmpw(Address(temp, primitive_offset), Immediate(Primitive::kPrimNot)); in VisitCheckCast()
7618 __ j(kNotEqual, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7631 __ jmp(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7651 __ movl(maybe_temp2_loc.AsRegister<Register>(), Address(temp, array_length_offset)); in VisitCheckCast()
7653 __ MaybePoisonHeapReference(cls.AsRegister<Register>()); in VisitCheckCast()
7656 __ Bind(&start_loop); in VisitCheckCast()
7658 __ subl(maybe_temp2_loc.AsRegister<Register>(), Immediate(2)); in VisitCheckCast()
7659 __ j(kNegative, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7661 __ cmpl(cls.AsRegister<Register>(), in VisitCheckCast()
7666 __ j(kNotEqual, &start_loop); in VisitCheckCast()
7668 __ MaybeUnpoisonHeapReference(cls.AsRegister<Register>()); in VisitCheckCast()
7681 __ j(kNotEqual, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
7685 __ Bind(&done); in VisitCheckCast()
7687 __ Bind(type_check_slow_path->GetExitLabel()); in VisitCheckCast()
7724 __ andn(dest.AsRegister<Register>(), in VisitX86AndNot()
7729 __ andn(dest.AsRegisterPairLow<Register>(), in VisitX86AndNot()
7732 __ andn(dest.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()
7868 __ xorl(first_low, first_low); in HandleBitwiseOperation()
7870 __ andl(first_low, low); in HandleBitwiseOperation()
7873 __ xorl(first_high, first_high); in HandleBitwiseOperation()
7875 __ andl(first_high, high); in HandleBitwiseOperation()
7879 __ orl(first_low, low); in HandleBitwiseOperation()
7882 __ orl(first_high, high); in HandleBitwiseOperation()
7887 __ xorl(first_low, low); in HandleBitwiseOperation()
7890 __ xorl(first_high, high); in HandleBitwiseOperation()
7917 __ movl(maybe_temp.AsRegister<Register>(), out_reg); in GenerateReferenceLoadOneRegister()
7919 __ movl(out_reg, Address(out_reg, offset)); in GenerateReferenceLoadOneRegister()
7925 __ movl(out_reg, Address(out_reg, offset)); in GenerateReferenceLoadOneRegister()
7926 __ MaybeUnpoisonHeapReference(out_reg); in GenerateReferenceLoadOneRegister()
7948 __ movl(out_reg, Address(obj_reg, offset)); in GenerateReferenceLoadTwoRegisters()
7954 __ movl(out_reg, Address(obj_reg, offset)); in GenerateReferenceLoadTwoRegisters()
7955 __ MaybeUnpoisonHeapReference(out_reg); in GenerateReferenceLoadTwoRegisters()
7979 __ movl(root_reg, address); in GenerateGcRootFieldLoad()
7981 __ Bind(fixup_label); in GenerateGcRootFieldLoad()
7999 __ fs()->cmpl(Address::Absolute(entry_point_offset), Immediate(0)); in GenerateGcRootFieldLoad()
8001 __ j(kNotEqual, slow_path->GetEntryLabel()); in GenerateGcRootFieldLoad()
8002 __ Bind(slow_path->GetExitLabel()); in GenerateGcRootFieldLoad()
8007 __ leal(root_reg, address); in GenerateGcRootFieldLoad()
8009 __ Bind(fixup_label); in GenerateGcRootFieldLoad()
8017 __ movl(root_reg, address); in GenerateGcRootFieldLoad()
8019 __ Bind(fixup_label); in GenerateGcRootFieldLoad()
8104 __ testb(Address(obj, monitor_offset + gray_byte_position), Immediate(test_value)); in GenerateReferenceLoadWithBakerReadBarrier()
8115 __ movl(ref_reg, src); // Flags are unaffected. in GenerateReferenceLoadWithBakerReadBarrier()
8131 __ j(kNotZero, slow_path->GetEntryLabel()); in GenerateReferenceLoadWithBakerReadBarrier()
8134 __ MaybeUnpoisonHeapReference(ref_reg); in GenerateReferenceLoadWithBakerReadBarrier()
8136 __ Bind(slow_path->GetExitLabel()); in GenerateReferenceLoadWithBakerReadBarrier()
8162 __ jmp(slow_path->GetEntryLabel()); in GenerateReadBarrierSlow()
8163 __ Bind(slow_path->GetExitLabel()); in GenerateReadBarrierSlow()
8180 __ UnpoisonHeapReference(out.AsRegister<Register>()); in MaybeGenerateReadBarrierSlow()
8197 __ jmp(slow_path->GetEntryLabel()); in GenerateReadBarrierForRootSlow()
8198 __ Bind(slow_path->GetExitLabel()); in GenerateReadBarrierForRootSlow()
8232 __ cmpl(value_reg, Immediate(lower_bound)); in GenPackedSwitchWithCompares()
8233 __ j(first_condition, codegen_->GetLabelOf(default_block)); in GenPackedSwitchWithCompares()
8234 __ j(kEqual, codegen_->GetLabelOf(successors[0])); in GenPackedSwitchWithCompares()
8246 __ cmpl(value_reg, Immediate(compare_to_value)); in GenPackedSwitchWithCompares()
8248 __ j(first_condition, codegen_->GetLabelOf(successors[index])); in GenPackedSwitchWithCompares()
8250 __ j(kEqual, codegen_->GetLabelOf(successors[index + 1])); in GenPackedSwitchWithCompares()
8256 __ cmpl(value_reg, Immediate(lower_bound + index)); in GenPackedSwitchWithCompares()
8257 __ j(kEqual, codegen_->GetLabelOf(successors[index])); in GenPackedSwitchWithCompares()
8262 __ jmp(codegen_->GetLabelOf(default_block)); in GenPackedSwitchWithCompares()
8313 __ leal(temp_reg, Address(value_reg, -lower_bound)); in VisitX86PackedSwitch()
8319 __ cmpl(value_reg, Immediate(num_entries - 1)); in VisitX86PackedSwitch()
8320 __ j(kAbove, codegen_->GetLabelOf(default_block)); in VisitX86PackedSwitch()
8324 __ movl(temp_reg, codegen_->LiteralCaseTable(switch_instr, constant_area, value_reg)); in VisitX86PackedSwitch()
8327 __ addl(temp_reg, constant_area); in VisitX86PackedSwitch()
8330 __ jmp(temp_reg); in VisitX86PackedSwitch()
8347 __ call(&next_instruction); in VisitX86ComputeBaseMethodAddress()
8348 __ Bind(&next_instruction); in VisitX86ComputeBaseMethodAddress()
8354 __ popl(reg); in VisitX86ComputeBaseMethodAddress()
8397 __ movss(out.AsFpuRegister<XmmRegister>(), in VisitX86LoadFromConstantTable()
8403 __ movsd(out.AsFpuRegister<XmmRegister>(), in VisitX86LoadFromConstantTable()
8409 __ movl(out.AsRegister<Register>(), in VisitX86LoadFromConstantTable()
8521 new (GetGraph()->GetAllocator()) RIPFixup(*this, method_base, __ AddDouble(v)); in LiteralDoubleAddress()
8529 new (GetGraph()->GetAllocator()) RIPFixup(*this, method_base, __ AddFloat(v)); in LiteralFloatAddress()
8537 new (GetGraph()->GetAllocator()) RIPFixup(*this, method_base, __ AddInt32(v)); in LiteralInt32Address()
8545 new (GetGraph()->GetAllocator()) RIPFixup(*this, method_base, __ AddInt64(v)); in LiteralInt64Address()
8551 __ xorl(dest, dest); in Load32BitValue()
8553 __ movl(dest, Immediate(value)); in Load32BitValue()
8559 __ testl(dest, dest); in Compare32BitValue()
8561 __ cmpl(dest, Immediate(value)); in Compare32BitValue()
8575 __ cmpl(lhs, Address(ESP, rhs.GetStackIndex())); in GenerateIntCompare()
8577 __ cmpl(lhs, rhs.AsRegister<Register>()); in GenerateIntCompare()
8682 #undef __