Lines Matching refs:__

46 #define __ reinterpret_cast<X86Assembler*>(codegen->GetAssembler())->  macro
53 __ Bind(GetEntryLabel()); in EmitNativeCode()
54 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pThrowNullPointer))); in EmitNativeCode()
68 __ Bind(GetEntryLabel()); in EmitNativeCode()
69 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pThrowDivZero))); in EmitNativeCode()
83 __ Bind(GetEntryLabel()); in EmitNativeCode()
85 __ negl(reg_); in EmitNativeCode()
87 __ movl(reg_, Immediate(0)); in EmitNativeCode()
89 __ jmp(GetExitLabel()); in EmitNativeCode()
109 __ Bind(GetEntryLabel()); in EmitNativeCode()
120 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pThrowArrayBounds))); in EmitNativeCode()
139 __ Bind(GetEntryLabel()); in EmitNativeCode()
141 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pTestSuspend))); in EmitNativeCode()
145 __ jmp(GetReturnLabel()); in EmitNativeCode()
147 __ jmp(x86_codegen->GetLabelOf(successor_)); in EmitNativeCode()
177 __ Bind(GetEntryLabel()); in EmitNativeCode()
181 __ movl(calling_convention.GetRegisterAt(0), Immediate(instruction_->GetStringIndex())); in EmitNativeCode()
182 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pResolveString))); in EmitNativeCode()
187 __ jmp(GetExitLabel()); in EmitNativeCode()
209 __ Bind(GetEntryLabel()); in EmitNativeCode()
213 __ movl(calling_convention.GetRegisterAt(0), Immediate(cls_->GetTypeIndex())); in EmitNativeCode()
214 __ fs()->call(Address::Absolute(do_clinit_ in EmitNativeCode()
227 __ jmp(GetExitLabel()); in EmitNativeCode()
264 __ Bind(GetEntryLabel()); in EmitNativeCode()
279 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, in EmitNativeCode()
283 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pCheckCast))); in EmitNativeCode()
292 __ jmp(GetExitLabel()); in EmitNativeCode()
310 __ Bind(GetEntryLabel()); in EmitNativeCode()
312 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pDeoptimize))); in EmitNativeCode()
325 #undef __
326 #define __ reinterpret_cast<X86Assembler*>(GetAssembler())-> macro
351 __ movl(Address(ESP, stack_index), static_cast<Register>(reg_id)); in SaveCoreRegister()
356 __ movl(static_cast<Register>(reg_id), Address(ESP, stack_index)); in RestoreCoreRegister()
361 __ movsd(Address(ESP, stack_index), XmmRegister(reg_id)); in SaveFloatingPointRegister()
366 __ movsd(XmmRegister(reg_id), Address(ESP, stack_index)); in RestoreFloatingPointRegister()
474 __ cfi().SetCurrentCFAOffset(kX86WordSize); // return address in GenerateFrameEntry()
475 __ Bind(&frame_entry_label_); in GenerateFrameEntry()
481 __ testl(EAX, Address(ESP, -static_cast<int32_t>(GetStackOverflowReservedBytes(kX86)))); in GenerateFrameEntry()
492 __ pushl(reg); in GenerateFrameEntry()
493 __ cfi().AdjustCFAOffset(kX86WordSize); in GenerateFrameEntry()
494 __ cfi().RelOffset(DWARFReg(reg), 0); in GenerateFrameEntry()
499 __ subl(ESP, Immediate(adjust)); in GenerateFrameEntry()
500 __ cfi().AdjustCFAOffset(adjust); in GenerateFrameEntry()
501 __ movl(Address(ESP, kCurrentMethodStackOffset), EAX); in GenerateFrameEntry()
505 __ cfi().RememberState(); in GenerateFrameExit()
508 __ addl(ESP, Immediate(adjust)); in GenerateFrameExit()
509 __ cfi().AdjustCFAOffset(-adjust); in GenerateFrameExit()
514 __ popl(reg); in GenerateFrameExit()
515 __ cfi().AdjustCFAOffset(-static_cast<int>(kX86WordSize)); in GenerateFrameExit()
516 __ cfi().Restore(DWARFReg(reg)); in GenerateFrameExit()
520 __ ret(); in GenerateFrameExit()
521 __ cfi().RestoreState(); in GenerateFrameExit()
522 __ cfi().DefCFAOffset(GetFrameSize()); in GenerateFrameExit()
526 __ Bind(GetLabelOf(block)); in Bind()
531 __ movl(reg, Address(ESP, kCurrentMethodStackOffset)); in LoadCurrentMethod()
621 __ movl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in Move32()
623 __ movd(destination.AsRegister<Register>(), source.AsFpuRegister<XmmRegister>()); in Move32()
626 __ movl(destination.AsRegister<Register>(), Address(ESP, source.GetStackIndex())); in Move32()
630 __ movd(destination.AsFpuRegister<XmmRegister>(), source.AsRegister<Register>()); in Move32()
632 __ movaps(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in Move32()
635 __ movss(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in Move32()
640 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegister<Register>()); in Move32()
642 __ movss(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in Move32()
646 __ movl(Address(ESP, destination.GetStackIndex()), Immediate(value)); in Move32()
649 __ pushl(Address(ESP, source.GetStackIndex())); in Move32()
650 __ popl(Address(ESP, destination.GetStackIndex())); in Move32()
673 __ movl(destination.AsRegisterPairLow<Register>(), Address(ESP, source.GetStackIndex())); in Move64()
674 __ movl(destination.AsRegisterPairHigh<Register>(), in Move64()
679 __ movaps(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in Move64()
681 __ movsd(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in Move64()
689 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegisterPairLow<Register>()); in Move64()
690 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), in Move64()
693 __ movsd(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in Move64()
703 __ movl(Address(ESP, destination.GetStackIndex()), Immediate(Low32Bits(value))); in Move64()
704__ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), Immediate(High32Bits(value))); in Move64()
729 __ movl(location.AsRegister<Register>(), imm); in Move()
731 __ movl(Address(ESP, location.GetStackIndex()), imm); in Move()
739 __ movl(location.AsRegisterPairLow<Register>(), Immediate(Low32Bits(value))); in Move()
740 __ movl(location.AsRegisterPairHigh<Register>(), Immediate(High32Bits(value))); in Move()
742 __ movl(Address(ESP, location.GetStackIndex()), Immediate(Low32Bits(value))); in Move()
743 __ movl(Address(ESP, location.GetHighStackIndex(kX86WordSize)), in Move()
824 __ jmp(codegen_->GetLabelOf(successor)); in VisitGoto()
846 __ jmp(always_true_target); in GenerateTestAndBranch()
865 __ testl(lhs.AsRegister<Register>(), lhs.AsRegister<Register>()); in GenerateTestAndBranch()
867 __ cmpl(Address(ESP, lhs.GetStackIndex()), Immediate(0)); in GenerateTestAndBranch()
869 __ j(kNotEqual, true_target); in GenerateTestAndBranch()
871 __ j(X86Condition(cond->AsCondition()->GetCondition()), true_target); in GenerateTestAndBranch()
879 __ cmpl(lhs.AsRegister<Register>(), rhs.AsRegister<Register>()); in GenerateTestAndBranch()
883 __ testl(lhs.AsRegister<Register>(), lhs.AsRegister<Register>()); in GenerateTestAndBranch()
885 __ cmpl(lhs.AsRegister<Register>(), Immediate(constant)); in GenerateTestAndBranch()
888 __ cmpl(lhs.AsRegister<Register>(), Address(ESP, rhs.GetStackIndex())); in GenerateTestAndBranch()
890 __ j(X86Condition(cond->AsCondition()->GetCondition()), true_target); in GenerateTestAndBranch()
894 __ jmp(false_target); in GenerateTestAndBranch()
1002 __ xorl(reg, reg); in VisitCondition()
1006 __ cmpl(lhs.AsRegister<Register>(), rhs.AsRegister<Register>()); in VisitCondition()
1010 __ testl(lhs.AsRegister<Register>(), lhs.AsRegister<Register>()); in VisitCondition()
1012 __ cmpl(lhs.AsRegister<Register>(), Immediate(constant)); in VisitCondition()
1015 __ cmpl(lhs.AsRegister<Register>(), Address(ESP, rhs.GetStackIndex())); in VisitCondition()
1017 __ setb(X86Condition(comp->GetCondition()), reg); in VisitCondition()
1285 __ movl(temp, Address(ESP, receiver.GetStackIndex())); in VisitInvokeVirtual()
1286 __ movl(temp, Address(temp, class_offset)); in VisitInvokeVirtual()
1288 __ movl(temp, Address(receiver.AsRegister<Register>(), class_offset)); in VisitInvokeVirtual()
1292 __ movl(temp, Address(temp, method_offset)); in VisitInvokeVirtual()
1294 __ call(Address( in VisitInvokeVirtual()
1317 __ movl(temp, Immediate(invoke->GetDexMethodIndex())); in VisitInvokeInterface()
1318 __ movd(invoke->GetLocations()->GetTemp(1).AsFpuRegister<XmmRegister>(), temp); in VisitInvokeInterface()
1322 __ movl(temp, Address(ESP, receiver.GetStackIndex())); in VisitInvokeInterface()
1323 __ movl(temp, Address(temp, class_offset)); in VisitInvokeInterface()
1325 __ movl(temp, Address(receiver.AsRegister<Register>(), class_offset)); in VisitInvokeInterface()
1329 __ movl(temp, Address(temp, method_offset)); in VisitInvokeInterface()
1331 __ call(Address(temp, ArtMethod::EntryPointFromQuickCompiledCodeOffset( in VisitInvokeInterface()
1374 __ negl(out.AsRegister<Register>()); in VisitNeg()
1380 __ negl(out.AsRegisterPairLow<Register>()); in VisitNeg()
1386 __ adcl(out.AsRegisterPairHigh<Register>(), Immediate(0)); in VisitNeg()
1387 __ negl(out.AsRegisterPairHigh<Register>()); in VisitNeg()
1397 __ movl(constant, Immediate(INT32_C(0x80000000))); in VisitNeg()
1398 __ movd(mask, constant); in VisitNeg()
1399 __ xorps(out.AsFpuRegister<XmmRegister>(), mask); in VisitNeg()
1409 __ LoadLongConstant(mask, INT64_C(0x8000000000000000)); in VisitNeg()
1410 __ xorpd(out.AsFpuRegister<XmmRegister>(), mask); in VisitNeg()
1638 __ movsxb(out.AsRegister<Register>(), in.AsRegister<ByteRegister>()); in VisitTypeConversion()
1642 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int8_t>(value))); in VisitTypeConversion()
1661 __ movsxw(out.AsRegister<Register>(), in.AsRegister<Register>()); in VisitTypeConversion()
1663 __ movsxw(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
1667 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int16_t>(value))); in VisitTypeConversion()
1682 __ movl(out.AsRegister<Register>(), in.AsRegisterPairLow<Register>()); in VisitTypeConversion()
1684 __ movl(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
1689 __ movl(out.AsRegister<Register>(), Immediate(static_cast<int32_t>(value))); in VisitTypeConversion()
1700 __ movl(output, Immediate(kPrimIntMax)); in VisitTypeConversion()
1702 __ cvtsi2ss(temp, output); in VisitTypeConversion()
1704 __ comiss(input, temp); in VisitTypeConversion()
1705 __ j(kAboveEqual, &done); in VisitTypeConversion()
1707 __ j(kUnordered, &nan); in VisitTypeConversion()
1709 __ cvttss2si(output, input); in VisitTypeConversion()
1710 __ jmp(&done); in VisitTypeConversion()
1711 __ Bind(&nan); in VisitTypeConversion()
1713 __ xorl(output, output); in VisitTypeConversion()
1714 __ Bind(&done); in VisitTypeConversion()
1725 __ movl(output, Immediate(kPrimIntMax)); in VisitTypeConversion()
1727 __ cvtsi2sd(temp, output); in VisitTypeConversion()
1729 __ comisd(input, temp); in VisitTypeConversion()
1730 __ j(kAboveEqual, &done); in VisitTypeConversion()
1732 __ j(kUnordered, &nan); in VisitTypeConversion()
1734 __ cvttsd2si(output, input); in VisitTypeConversion()
1735 __ jmp(&done); in VisitTypeConversion()
1736 __ Bind(&nan); in VisitTypeConversion()
1738 __ xorl(output, output); in VisitTypeConversion()
1739 __ Bind(&done); in VisitTypeConversion()
1761 __ cdq(); in VisitTypeConversion()
1766 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pF2l))); in VisitTypeConversion()
1772 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pD2l))); in VisitTypeConversion()
1791 __ movzxw(out.AsRegister<Register>(), in.AsRegister<Register>()); in VisitTypeConversion()
1793 __ movzxw(out.AsRegister<Register>(), Address(ESP, in.GetStackIndex())); in VisitTypeConversion()
1797 __ movl(out.AsRegister<Register>(), Immediate(static_cast<uint16_t>(value))); in VisitTypeConversion()
1816 __ cvtsi2ss(out.AsFpuRegister<XmmRegister>(), in.AsRegister<Register>()); in VisitTypeConversion()
1828 __ subl(ESP, Immediate(adjustment)); in VisitTypeConversion()
1835 __ fstps(Address(ESP, out.GetStackIndex() + adjustment)); in VisitTypeConversion()
1837 __ fstps(Address(ESP, 0)); in VisitTypeConversion()
1844 __ addl(ESP, Immediate(adjustment)); in VisitTypeConversion()
1851 __ cvtsd2ss(out.AsFpuRegister<XmmRegister>(), in.AsFpuRegister<XmmRegister>()); in VisitTypeConversion()
1869 __ cvtsi2sd(out.AsFpuRegister<XmmRegister>(), in.AsRegister<Register>()); in VisitTypeConversion()
1881 __ subl(ESP, Immediate(adjustment)); in VisitTypeConversion()
1888 __ fstpl(Address(ESP, out.GetStackIndex() + adjustment)); in VisitTypeConversion()
1890 __ fstpl(Address(ESP, 0)); in VisitTypeConversion()
1897 __ addl(ESP, Immediate(adjustment)); in VisitTypeConversion()
1904 __ cvtss2sd(out.AsFpuRegister<XmmRegister>(), in.AsFpuRegister<XmmRegister>()); in VisitTypeConversion()
1961 __ addl(out.AsRegister<Register>(), second.AsRegister<Register>()); in VisitAdd()
1963 __ leal(out.AsRegister<Register>(), Address( in VisitAdd()
1969 __ addl(out.AsRegister<Register>(), Immediate(value)); in VisitAdd()
1971 __ leal(out.AsRegister<Register>(), Address(first.AsRegister<Register>(), value)); in VisitAdd()
1975 __ addl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in VisitAdd()
1982 __ addl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in VisitAdd()
1983 __ adcl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in VisitAdd()
1985 __ addl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in VisitAdd()
1986 __ adcl(first.AsRegisterPairHigh<Register>(), in VisitAdd()
1991 __ addl(first.AsRegisterPairLow<Register>(), Immediate(Low32Bits(value))); in VisitAdd()
1992 __ adcl(first.AsRegisterPairHigh<Register>(), Immediate(High32Bits(value))); in VisitAdd()
1999 __ addss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitAdd()
2006 __ addsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitAdd()
2048 __ subl(first.AsRegister<Register>(), second.AsRegister<Register>()); in VisitSub()
2050 __ subl(first.AsRegister<Register>(), in VisitSub()
2053 __ subl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in VisitSub()
2060 __ subl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in VisitSub()
2061 __ sbbl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in VisitSub()
2063 __ subl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in VisitSub()
2064 __ sbbl(first.AsRegisterPairHigh<Register>(), in VisitSub()
2069 __ subl(first.AsRegisterPairLow<Register>(), Immediate(Low32Bits(value))); in VisitSub()
2070 __ sbbl(first.AsRegisterPairHigh<Register>(), Immediate(High32Bits(value))); in VisitSub()
2076 __ subss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitSub()
2081 __ subsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitSub()
2130 __ imull(first.AsRegister<Register>(), second.AsRegister<Register>()); in VisitMul()
2133 __ imull(first.AsRegister<Register>(), imm); in VisitMul()
2136 __ imull(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in VisitMul()
2164 __ movl(eax, high); in VisitMul()
2166 __ imull(eax, in1_lo); in VisitMul()
2168 __ imull(in1_hi, low); in VisitMul()
2170 __ addl(in1_hi, eax); in VisitMul()
2172 __ movl(eax, low); in VisitMul()
2174 __ mull(in1_lo); in VisitMul()
2176 __ addl(in1_hi, edx); in VisitMul()
2178 __ movl(in1_lo, eax); in VisitMul()
2183 __ movl(eax, in2_hi); in VisitMul()
2185 __ imull(eax, in1_lo); in VisitMul()
2187 __ imull(in1_hi, in2_lo); in VisitMul()
2189 __ addl(in1_hi, eax); in VisitMul()
2191 __ movl(eax, in1_lo); in VisitMul()
2193 __ mull(in2_lo); in VisitMul()
2195 __ addl(in1_hi, edx); in VisitMul()
2197 __ movl(in1_lo, eax); in VisitMul()
2203 __ movl(eax, in2_hi); in VisitMul()
2205 __ imull(eax, in1_lo); in VisitMul()
2207 __ imull(in1_hi, in2_lo); in VisitMul()
2209 __ addl(in1_hi, eax); in VisitMul()
2211 __ movl(eax, in1_lo); in VisitMul()
2213 __ mull(in2_lo); in VisitMul()
2215 __ addl(in1_hi, edx); in VisitMul()
2217 __ movl(in1_lo, eax); in VisitMul()
2224 __ mulss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitMul()
2229 __ mulsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitMul()
2246 __ flds(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
2248 __ filds(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
2253 __ fldl(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
2255 __ fildl(Address(ESP, source.GetStackIndex() + stack_adjustment)); in PushOntoFPStack()
2263 __ flds(Address(ESP, temp_offset)); in PushOntoFPStack()
2265 __ filds(Address(ESP, temp_offset)); in PushOntoFPStack()
2271 __ fldl(Address(ESP, temp_offset)); in PushOntoFPStack()
2273 __ fildl(Address(ESP, temp_offset)); in PushOntoFPStack()
2290 __ subl(ESP, Immediate(2 * elem_size)); in GenerateRemFP()
2299 __ Bind(&retry); in GenerateRemFP()
2300 __ fprem(); in GenerateRemFP()
2303 __ fstsw(); in GenerateRemFP()
2307 __ andl(EAX, Immediate(kC2ConditionMask)); in GenerateRemFP()
2308 __ j(kNotEqual, &retry); in GenerateRemFP()
2313 __ fsts(Address(ESP, 0)); in GenerateRemFP()
2315 __ fstl(Address(ESP, 0)); in GenerateRemFP()
2319 __ fucompp(); in GenerateRemFP()
2324 __ movss(out.AsFpuRegister<XmmRegister>(), Address(ESP, 0)); in GenerateRemFP()
2326 __ movsd(out.AsFpuRegister<XmmRegister>(), Address(ESP, 0)); in GenerateRemFP()
2330 __ addl(ESP, Immediate(2 * elem_size)); in GenerateRemFP()
2348 __ xorl(out_register, out_register); in DivRemOneOrMinusOne()
2350 __ movl(out_register, input_register); in DivRemOneOrMinusOne()
2352 __ negl(out_register); in DivRemOneOrMinusOne()
2368 __ leal(num, Address(input_register, std::abs(imm) - 1)); in DivByPowerOfTwo()
2369 __ testl(input_register, input_register); in DivByPowerOfTwo()
2370 __ cmovl(kGreaterEqual, num, input_register); in DivByPowerOfTwo()
2372 __ sarl(num, Immediate(shift)); in DivByPowerOfTwo()
2375 __ negl(num); in DivByPowerOfTwo()
2378 __ movl(out_register, num); in DivByPowerOfTwo()
2415 __ testl(eax, eax); in GenerateDivRemWithAnyConstant()
2416 __ j(kNotEqual, &ndiv); in GenerateDivRemWithAnyConstant()
2418 __ xorl(out, out); in GenerateDivRemWithAnyConstant()
2419 __ jmp(&end); in GenerateDivRemWithAnyConstant()
2421 __ Bind(&ndiv); in GenerateDivRemWithAnyConstant()
2424 __ movl(num, eax); in GenerateDivRemWithAnyConstant()
2427 __ movl(eax, Immediate(magic)); in GenerateDivRemWithAnyConstant()
2430 __ imull(num); in GenerateDivRemWithAnyConstant()
2434 __ addl(edx, num); in GenerateDivRemWithAnyConstant()
2436 __ subl(edx, num); in GenerateDivRemWithAnyConstant()
2441 __ sarl(edx, Immediate(shift)); in GenerateDivRemWithAnyConstant()
2445 __ movl(eax, edx); in GenerateDivRemWithAnyConstant()
2446 __ shrl(edx, Immediate(31)); in GenerateDivRemWithAnyConstant()
2447 __ addl(edx, eax); in GenerateDivRemWithAnyConstant()
2450 __ movl(eax, num); in GenerateDivRemWithAnyConstant()
2451 __ imull(edx, Immediate(imm)); in GenerateDivRemWithAnyConstant()
2452 __ subl(eax, edx); in GenerateDivRemWithAnyConstant()
2453 __ movl(edx, eax); in GenerateDivRemWithAnyConstant()
2455 __ movl(eax, edx); in GenerateDivRemWithAnyConstant()
2457 __ Bind(&end); in GenerateDivRemWithAnyConstant()
2498 __ cmpl(second_reg, Immediate(-1)); in GenerateDivRemIntegral()
2499 __ j(kEqual, slow_path->GetEntryLabel()); in GenerateDivRemIntegral()
2502 __ cdq(); in GenerateDivRemIntegral()
2504 __ idivl(second_reg); in GenerateDivRemIntegral()
2505 __ Bind(slow_path->GetExitLabel()); in GenerateDivRemIntegral()
2520 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pLdiv))); in GenerateDivRemIntegral()
2522 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pLmod))); in GenerateDivRemIntegral()
2596 __ divss(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitDiv()
2602 __ divsd(first.AsFpuRegister<XmmRegister>(), second.AsFpuRegister<XmmRegister>()); in VisitDiv()
2707 __ testl(value.AsRegister<Register>(), value.AsRegister<Register>()); in VisitDivZeroCheck()
2708 __ j(kEqual, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2710 __ cmpl(Address(ESP, value.GetStackIndex()), Immediate(0)); in VisitDivZeroCheck()
2711 __ j(kEqual, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2715 __ jmp(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2723 __ movl(temp, value.AsRegisterPairLow<Register>()); in VisitDivZeroCheck()
2724 __ orl(temp, value.AsRegisterPairHigh<Register>()); in VisitDivZeroCheck()
2725 __ j(kEqual, slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2729 __ jmp(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2776 __ shll(first_reg, second_reg); in HandleShift()
2778 __ sarl(first_reg, second_reg); in HandleShift()
2780 __ shrl(first_reg, second_reg); in HandleShift()
2789 __ shll(first_reg, imm); in HandleShift()
2791 __ sarl(first_reg, imm); in HandleShift()
2793 __ shrl(first_reg, imm); in HandleShift()
2835 __ addl(low, low); in GenerateShlLong()
2836 __ adcl(high, high); in GenerateShlLong()
2848 __ movl(high, low); in GenerateShlLong()
2849 __ shll(high, Immediate(shift - 32)); in GenerateShlLong()
2850 __ xorl(low, low); in GenerateShlLong()
2853 __ shld(high, low, Immediate(shift)); in GenerateShlLong()
2854 __ shll(low, Immediate(shift)); in GenerateShlLong()
2860 __ shld(loc.AsRegisterPairHigh<Register>(), loc.AsRegisterPairLow<Register>(), shifter); in GenerateShlLong()
2861 __ shll(loc.AsRegisterPairLow<Register>(), shifter); in GenerateShlLong()
2862 __ testl(shifter, Immediate(32)); in GenerateShlLong()
2863 __ j(kEqual, &done); in GenerateShlLong()
2864 __ movl(loc.AsRegisterPairHigh<Register>(), loc.AsRegisterPairLow<Register>()); in GenerateShlLong()
2865 __ movl(loc.AsRegisterPairLow<Register>(), Immediate(0)); in GenerateShlLong()
2866 __ Bind(&done); in GenerateShlLong()
2875 __ movl(low, high); in GenerateShrLong()
2876 __ sarl(high, Immediate(31)); in GenerateShrLong()
2880 __ movl(low, high); in GenerateShrLong()
2881 __ sarl(high, Immediate(31)); in GenerateShrLong()
2882 __ sarl(low, Immediate(shift - 32)); in GenerateShrLong()
2885 __ shrd(low, high, Immediate(shift)); in GenerateShrLong()
2886 __ sarl(high, Immediate(shift)); in GenerateShrLong()
2892 __ shrd(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>(), shifter); in GenerateShrLong()
2893 __ sarl(loc.AsRegisterPairHigh<Register>(), shifter); in GenerateShrLong()
2894 __ testl(shifter, Immediate(32)); in GenerateShrLong()
2895 __ j(kEqual, &done); in GenerateShrLong()
2896 __ movl(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>()); in GenerateShrLong()
2897 __ sarl(loc.AsRegisterPairHigh<Register>(), Immediate(31)); in GenerateShrLong()
2898 __ Bind(&done); in GenerateShrLong()
2915 __ movl(low, high); in GenerateUShrLong()
2916 __ shrl(low, Immediate(shift - 32)); in GenerateUShrLong()
2917 __ xorl(high, high); in GenerateUShrLong()
2920 __ shrd(low, high, Immediate(shift)); in GenerateUShrLong()
2921 __ shrl(high, Immediate(shift)); in GenerateUShrLong()
2927 __ shrd(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>(), shifter); in GenerateUShrLong()
2928 __ shrl(loc.AsRegisterPairHigh<Register>(), shifter); in GenerateUShrLong()
2929 __ testl(shifter, Immediate(32)); in GenerateUShrLong()
2930 __ j(kEqual, &done); in GenerateUShrLong()
2931 __ movl(loc.AsRegisterPairLow<Register>(), loc.AsRegisterPairHigh<Register>()); in GenerateUShrLong()
2932 __ movl(loc.AsRegisterPairHigh<Register>(), Immediate(0)); in GenerateUShrLong()
2933 __ Bind(&done); in GenerateUShrLong()
2972 __ movl(calling_convention.GetRegisterAt(0), Immediate(instruction->GetTypeIndex())); in VisitNewInstance()
2974 __ fs()->call(Address::Absolute(GetThreadOffset<kX86WordSize>(instruction->GetEntrypoint()))); in VisitNewInstance()
2993 __ movl(calling_convention.GetRegisterAt(0), Immediate(instruction->GetTypeIndex())); in VisitNewArray()
2995 __ fs()->call(Address::Absolute(GetThreadOffset<kX86WordSize>(instruction->GetEntrypoint()))); in VisitNewArray()
3031 __ notl(out.AsRegister<Register>()); in VisitNot()
3035 __ notl(out.AsRegisterPairLow<Register>()); in VisitNot()
3036 __ notl(out.AsRegisterPairHigh<Register>()); in VisitNot()
3056 __ xorl(out.AsRegister<Register>(), Immediate(1)); in VisitBooleanNot()
3105 __ cmpl(left_high, right.AsRegisterPairHigh<Register>()); in VisitCompare()
3107 __ cmpl(left_high, Address(ESP, right.GetHighStackIndex(kX86WordSize))); in VisitCompare()
3111 __ testl(left_high, left_high); in VisitCompare()
3113 __ cmpl(left_high, Immediate(val_high)); in VisitCompare()
3116 __ j(kLess, &less); // Signed compare. in VisitCompare()
3117 __ j(kGreater, &greater); // Signed compare. in VisitCompare()
3119 __ cmpl(left_low, right.AsRegisterPairLow<Register>()); in VisitCompare()
3121 __ cmpl(left_low, Address(ESP, right.GetStackIndex())); in VisitCompare()
3125 __ testl(left_low, left_low); in VisitCompare()
3127 __ cmpl(left_low, Immediate(val_low)); in VisitCompare()
3133 __ ucomiss(left.AsFpuRegister<XmmRegister>(), right.AsFpuRegister<XmmRegister>()); in VisitCompare()
3134 __ j(kUnordered, compare->IsGtBias() ? &greater : &less); in VisitCompare()
3138 __ ucomisd(left.AsFpuRegister<XmmRegister>(), right.AsFpuRegister<XmmRegister>()); in VisitCompare()
3139 __ j(kUnordered, compare->IsGtBias() ? &greater : &less); in VisitCompare()
3145 __ movl(out, Immediate(0)); in VisitCompare()
3146 __ j(kEqual, &done); in VisitCompare()
3147 __ j(kBelow, &less); // kBelow is for CF (unsigned & floats). in VisitCompare()
3149 __ Bind(&greater); in VisitCompare()
3150 __ movl(out, Immediate(1)); in VisitCompare()
3151 __ jmp(&done); in VisitCompare()
3153 __ Bind(&less); in VisitCompare()
3154 __ movl(out, Immediate(-1)); in VisitCompare()
3156 __ Bind(&done); in VisitCompare()
3181 __ mfence(); in GenerateMemoryBarrier()
3207 __ fs()->movl(temp, Address::Absolute(invoke->GetStringInitOffset())); in GenerateStaticOrDirectCall()
3209 __ call(Address( in GenerateStaticOrDirectCall()
3216 __ movl(temp, Address(temp, ArtMethod::DexCacheResolvedMethodsOffset().Int32Value())); in GenerateStaticOrDirectCall()
3218 __ movl(temp, Address(temp, in GenerateStaticOrDirectCall()
3221 __ call(Address(temp, in GenerateStaticOrDirectCall()
3224 __ call(GetFrameEntryLabel()); in GenerateStaticOrDirectCall()
3233 __ testl(value, value); in MarkGCCard()
3234 __ j(kEqual, &is_null); in MarkGCCard()
3235 __ fs()->movl(card, Address::Absolute(Thread::CardTableOffset<kX86WordSize>().Int32Value())); in MarkGCCard()
3236 __ movl(temp, object); in MarkGCCard()
3237 __ shrl(temp, Immediate(gc::accounting::CardTable::kCardShift)); in MarkGCCard()
3238 __ movb(Address(temp, card, TIMES_1, 0), in MarkGCCard()
3240 __ Bind(&is_null); in MarkGCCard()
3280 __ movzxb(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
3285 __ movsxb(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
3290 __ movsxw(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
3295 __ movzxw(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
3301 __ movl(out.AsRegister<Register>(), Address(base, offset)); in HandleFieldGet()
3308 __ movsd(temp, Address(base, offset)); in HandleFieldGet()
3310 __ movd(out.AsRegisterPairLow<Register>(), temp); in HandleFieldGet()
3311 __ psrlq(temp, Immediate(32)); in HandleFieldGet()
3312 __ movd(out.AsRegisterPairHigh<Register>(), temp); in HandleFieldGet()
3315 __ movl(out.AsRegisterPairLow<Register>(), Address(base, offset)); in HandleFieldGet()
3317 __ movl(out.AsRegisterPairHigh<Register>(), Address(base, kX86WordSize + offset)); in HandleFieldGet()
3323 __ movss(out.AsFpuRegister<XmmRegister>(), Address(base, offset)); in HandleFieldGet()
3328 __ movsd(out.AsFpuRegister<XmmRegister>(), Address(base, offset)); in HandleFieldGet()
3402 __ movb(Address(base, offset), value.AsRegister<ByteRegister>()); in HandleFieldSet()
3408 __ movw(Address(base, offset), value.AsRegister<Register>()); in HandleFieldSet()
3414 __ movl(Address(base, offset), value.AsRegister<Register>()); in HandleFieldSet()
3422 __ movd(temp1, value.AsRegisterPairLow<Register>()); in HandleFieldSet()
3423 __ movd(temp2, value.AsRegisterPairHigh<Register>()); in HandleFieldSet()
3424 __ punpckldq(temp1, temp2); in HandleFieldSet()
3425 __ movsd(Address(base, offset), temp1); in HandleFieldSet()
3428 __ movl(Address(base, offset), value.AsRegisterPairLow<Register>()); in HandleFieldSet()
3430 __ movl(Address(base, kX86WordSize + offset), value.AsRegisterPairHigh<Register>()); in HandleFieldSet()
3436 __ movss(Address(base, offset), value.AsFpuRegister<XmmRegister>()); in HandleFieldSet()
3441 __ movsd(Address(base, offset), value.AsFpuRegister<XmmRegister>()); in HandleFieldSet()
3517 __ testl(EAX, Address(obj.AsRegister<Register>(), 0)); in GenerateImplicitNullCheck()
3529 __ testl(obj.AsRegister<Register>(), obj.AsRegister<Register>()); in GenerateExplicitNullCheck()
3531 __ cmpl(Address(ESP, obj.GetStackIndex()), Immediate(0)); in GenerateExplicitNullCheck()
3535 __ jmp(slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
3538 __ j(kEqual, slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
3576 __ movzxb(out, Address(obj, in VisitArrayGet()
3579 __ movzxb(out, Address(obj, index.AsRegister<Register>(), TIMES_1, data_offset)); in VisitArrayGet()
3588 __ movsxb(out, Address(obj, in VisitArrayGet()
3591 __ movsxb(out, Address(obj, index.AsRegister<Register>(), TIMES_1, data_offset)); in VisitArrayGet()
3600 __ movsxw(out, Address(obj, in VisitArrayGet()
3603 __ movsxw(out, Address(obj, index.AsRegister<Register>(), TIMES_2, data_offset)); in VisitArrayGet()
3612 __ movzxw(out, Address(obj, in VisitArrayGet()
3615 __ movzxw(out, Address(obj, index.AsRegister<Register>(), TIMES_2, data_offset)); in VisitArrayGet()
3625 __ movl(out, Address(obj, in VisitArrayGet()
3628 __ movl(out, Address(obj, index.AsRegister<Register>(), TIMES_4, data_offset)); in VisitArrayGet()
3639 __ movl(out.AsRegisterPairLow<Register>(), Address(obj, offset)); in VisitArrayGet()
3641 __ movl(out.AsRegisterPairHigh<Register>(), Address(obj, offset + kX86WordSize)); in VisitArrayGet()
3643 __ movl(out.AsRegisterPairLow<Register>(), in VisitArrayGet()
3646 __ movl(out.AsRegisterPairHigh<Register>(), in VisitArrayGet()
3656 __ movss(out, Address(obj, in VisitArrayGet()
3659 __ movss(out, Address(obj, index.AsRegister<Register>(), TIMES_4, data_offset)); in VisitArrayGet()
3668 __ movsd(out, Address(obj, in VisitArrayGet()
3671 __ movsd(out, Address(obj, index.AsRegister<Register>(), TIMES_8, data_offset)); in VisitArrayGet()
3749 __ movb(Address(obj, offset), value.AsRegister<ByteRegister>()); in VisitArraySet()
3751 __ movb(Address(obj, offset), in VisitArraySet()
3756 __ movb(Address(obj, index.AsRegister<Register>(), TIMES_1, data_offset), in VisitArraySet()
3759 __ movb(Address(obj, index.AsRegister<Register>(), TIMES_1, data_offset), in VisitArraySet()
3773 __ movw(Address(obj, offset), value.AsRegister<Register>()); in VisitArraySet()
3775 __ movw(Address(obj, offset), in VisitArraySet()
3780 __ movw(Address(obj, index.AsRegister<Register>(), TIMES_2, data_offset), in VisitArraySet()
3783 __ movw(Address(obj, index.AsRegister<Register>(), TIMES_2, data_offset), in VisitArraySet()
3799 __ movl(Address(obj, offset), value.AsRegister<Register>()); in VisitArraySet()
3802 __ movl(Address(obj, offset), in VisitArraySet()
3808 __ movl(Address(obj, index.AsRegister<Register>(), TIMES_4, data_offset), in VisitArraySet()
3812 __ movl(Address(obj, index.AsRegister<Register>(), TIMES_4, data_offset), in VisitArraySet()
3826 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pAputObject))); in VisitArraySet()
3837 __ movl(Address(obj, offset), value.AsRegisterPairLow<Register>()); in VisitArraySet()
3839 __ movl(Address(obj, offset + kX86WordSize), value.AsRegisterPairHigh<Register>()); in VisitArraySet()
3843 __ movl(Address(obj, offset), Immediate(Low32Bits(val))); in VisitArraySet()
3845 __ movl(Address(obj, offset + kX86WordSize), Immediate(High32Bits(val))); in VisitArraySet()
3849 __ movl(Address(obj, index.AsRegister<Register>(), TIMES_8, data_offset), in VisitArraySet()
3852 __ movl(Address(obj, index.AsRegister<Register>(), TIMES_8, data_offset + kX86WordSize), in VisitArraySet()
3857 __ movl(Address(obj, index.AsRegister<Register>(), TIMES_8, data_offset), in VisitArraySet()
3860 __ movl(Address(obj, index.AsRegister<Register>(), TIMES_8, data_offset + kX86WordSize), in VisitArraySet()
3872 __ movss(Address(obj, offset), value.AsFpuRegister<XmmRegister>()); in VisitArraySet()
3874 __ movss(Address(obj, index.AsRegister<Register>(), TIMES_4, data_offset), in VisitArraySet()
3885 __ movsd(Address(obj, offset), value.AsFpuRegister<XmmRegister>()); in VisitArraySet()
3887 __ movsd(Address(obj, index.AsRegister<Register>(), TIMES_8, data_offset), in VisitArraySet()
3911 __ movl(out, Address(obj, offset)); in VisitArrayLength()
3939 __ jmp(slow_path->GetEntryLabel()); in VisitBoundsCheck()
3949 __ cmpl(index_reg, Immediate(length)); in VisitBoundsCheck()
3951 __ j(kAboveEqual, slow_path->GetEntryLabel()); in VisitBoundsCheck()
3956 __ cmpl(length, Immediate(value)); in VisitBoundsCheck()
3958 __ cmpl(length, index_loc.AsRegister<Register>()); in VisitBoundsCheck()
3961 __ j(kBelowEqual, slow_path->GetEntryLabel()); in VisitBoundsCheck()
4017 __ fs()->cmpw(Address::Absolute( in GenerateSuspendCheck()
4020 __ j(kNotEqual, slow_path->GetEntryLabel()); in GenerateSuspendCheck()
4021 __ Bind(slow_path->GetReturnLabel()); in GenerateSuspendCheck()
4023 __ j(kEqual, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
4024 __ jmp(slow_path->GetEntryLabel()); in GenerateSuspendCheck()
4037 __ movl(temp_reg, Address(ESP, src + stack_offset)); in MoveMemoryToMemory32()
4038 __ movl(Address(ESP, dst + stack_offset), temp_reg); in MoveMemoryToMemory32()
4046 __ movl(temp_reg, Address(ESP, src + stack_offset)); in MoveMemoryToMemory64()
4047 __ movl(Address(ESP, dst + stack_offset), temp_reg); in MoveMemoryToMemory64()
4048 __ movl(temp_reg, Address(ESP, src + stack_offset + kX86WordSize)); in MoveMemoryToMemory64()
4049 __ movl(Address(ESP, dst + stack_offset + kX86WordSize), temp_reg); in MoveMemoryToMemory64()
4059 __ movl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in EmitMove()
4062 __ movl(Address(ESP, destination.GetStackIndex()), source.AsRegister<Register>()); in EmitMove()
4066 __ movaps(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in EmitMove()
4068 __ movss(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in EmitMove()
4071 __ movsd(Address(ESP, destination.GetStackIndex()), source.AsFpuRegister<XmmRegister>()); in EmitMove()
4075 __ movl(destination.AsRegister<Register>(), Address(ESP, source.GetStackIndex())); in EmitMove()
4077 __ movss(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in EmitMove()
4084 __ movsd(destination.AsFpuRegister<XmmRegister>(), Address(ESP, source.GetStackIndex())); in EmitMove()
4095 __ xorl(destination.AsRegister<Register>(), destination.AsRegister<Register>()); in EmitMove()
4097 __ movl(destination.AsRegister<Register>(), Immediate(value)); in EmitMove()
4101 __ movl(Address(ESP, destination.GetStackIndex()), Immediate(value)); in EmitMove()
4111 __ xorps(dest, dest); in EmitMove()
4116 __ movl(temp, Immediate(value)); in EmitMove()
4117 __ movd(dest, temp); in EmitMove()
4121 __ movl(Address(ESP, destination.GetStackIndex()), imm); in EmitMove()
4130 __ movl(Address(ESP, destination.GetStackIndex()), low); in EmitMove()
4131 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), high); in EmitMove()
4133 __ movl(destination.AsRegisterPairLow<Register>(), low); in EmitMove()
4134 __ movl(destination.AsRegisterPairHigh<Register>(), high); in EmitMove()
4148 __ xorpd(dest, dest); in EmitMove()
4150 __ pushl(high); in EmitMove()
4151 __ pushl(low); in EmitMove()
4152 __ movsd(dest, Address(ESP, 0)); in EmitMove()
4153 __ addl(ESP, Immediate(8)); in EmitMove()
4157 __ movl(Address(ESP, destination.GetStackIndex()), low); in EmitMove()
4158 __ movl(Address(ESP, destination.GetHighStackIndex(kX86WordSize)), high); in EmitMove()
4172 __ movl(static_cast<Register>(ensure_scratch.GetRegister()), Address(ESP, mem + stack_offset)); in Exchange()
4173 __ movl(Address(ESP, mem + stack_offset), reg); in Exchange()
4174 __ movl(reg, static_cast<Register>(ensure_scratch.GetRegister())); in Exchange()
4183 __ movl(temp_reg, Address(ESP, mem + stack_offset)); in Exchange32()
4184 __ movss(Address(ESP, mem + stack_offset), reg); in Exchange32()
4185 __ movd(reg, temp_reg); in Exchange32()
4198 __ movl(static_cast<Register>(ensure_scratch1.GetRegister()), Address(ESP, mem1 + stack_offset)); in Exchange()
4199 __ movl(static_cast<Register>(ensure_scratch2.GetRegister()), Address(ESP, mem2 + stack_offset)); in Exchange()
4200 __ movl(Address(ESP, mem2 + stack_offset), static_cast<Register>(ensure_scratch1.GetRegister())); in Exchange()
4201 __ movl(Address(ESP, mem1 + stack_offset), static_cast<Register>(ensure_scratch2.GetRegister())); in Exchange()
4210 __ xchgl(destination.AsRegister<Register>(), source.AsRegister<Register>()); in EmitSwap()
4220 __ xorpd(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in EmitSwap()
4221 __ xorpd(source.AsFpuRegister<XmmRegister>(), destination.AsFpuRegister<XmmRegister>()); in EmitSwap()
4222 __ xorpd(destination.AsFpuRegister<XmmRegister>(), source.AsFpuRegister<XmmRegister>()); in EmitSwap()
4232 __ movhpd(reg, stack); in EmitSwap()
4235 __ movsd(stack, reg); in EmitSwap()
4238 __ psrldq(reg, Immediate(8)); in EmitSwap()
4244 __ movhpd(reg, stack); in EmitSwap()
4247 __ movsd(stack, reg); in EmitSwap()
4250 __ psrldq(reg, Immediate(8)); in EmitSwap()
4260 __ pushl(static_cast<Register>(reg)); in SpillScratch()
4264 __ popl(static_cast<Register>(reg)); in RestoreScratch()
4282 __ movl(out, Address(out, ArtMethod::DeclaringClassOffset().Int32Value())); in VisitLoadClass()
4286 __ movl(out, Address(out, ArtMethod::DexCacheResolvedTypesOffset().Int32Value())); in VisitLoadClass()
4287 __ movl(out, Address(out, CodeGenerator::GetCacheOffset(cls->GetTypeIndex()))); in VisitLoadClass()
4292 __ testl(out, out); in VisitLoadClass()
4293 __ j(kEqual, slow_path->GetEntryLabel()); in VisitLoadClass()
4297 __ Bind(slow_path->GetExitLabel()); in VisitLoadClass()
4322 __ cmpl(Address(class_reg, mirror::Class::StatusOffset().Int32Value()), in GenerateClassInitializationCheck()
4324 __ j(kLess, slow_path->GetEntryLabel()); in GenerateClassInitializationCheck()
4325 __ Bind(slow_path->GetExitLabel()); in GenerateClassInitializationCheck()
4341 __ movl(out, Address(out, ArtMethod::DeclaringClassOffset().Int32Value())); in VisitLoadString()
4342 __ movl(out, Address(out, mirror::Class::DexCacheStringsOffset().Int32Value())); in VisitLoadString()
4343 __ movl(out, Address(out, CodeGenerator::GetCacheOffset(load->GetStringIndex()))); in VisitLoadString()
4344 __ testl(out, out); in VisitLoadString()
4345 __ j(kEqual, slow_path->GetEntryLabel()); in VisitLoadString()
4346 __ Bind(slow_path->GetExitLabel()); in VisitLoadString()
4357 __ fs()->movl(load->GetLocations()->Out().AsRegister<Register>(), address); in VisitLoadException()
4358 __ fs()->movl(address, Immediate(0)); in VisitLoadException()
4369 __ fs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86WordSize, pDeliverException))); in VisitThrow()
4395 __ testl(obj, obj); in VisitInstanceOf()
4396 __ j(kEqual, &zero); in VisitInstanceOf()
4398 __ movl(out, Address(obj, class_offset)); in VisitInstanceOf()
4401 __ cmpl(out, cls.AsRegister<Register>()); in VisitInstanceOf()
4404 __ cmpl(out, Address(ESP, cls.GetStackIndex())); in VisitInstanceOf()
4409 __ j(kNotEqual, &zero); in VisitInstanceOf()
4410 __ movl(out, Immediate(1)); in VisitInstanceOf()
4411 __ jmp(&done); in VisitInstanceOf()
4418 __ j(kNotEqual, slow_path->GetEntryLabel()); in VisitInstanceOf()
4419 __ movl(out, Immediate(1)); in VisitInstanceOf()
4420 __ jmp(&done); in VisitInstanceOf()
4424 __ Bind(&zero); in VisitInstanceOf()
4425 __ movl(out, Immediate(0)); in VisitInstanceOf()
4429 __ Bind(slow_path->GetExitLabel()); in VisitInstanceOf()
4431 __ Bind(&done); in VisitInstanceOf()
4454 __ testl(obj, obj); in VisitCheckCast()
4455 __ j(kEqual, slow_path->GetExitLabel()); in VisitCheckCast()
4458 __ movl(temp, Address(obj, class_offset)); in VisitCheckCast()
4461 __ cmpl(temp, cls.AsRegister<Register>()); in VisitCheckCast()
4464 __ cmpl(temp, Address(ESP, cls.GetStackIndex())); in VisitCheckCast()
4467 __ j(kNotEqual, slow_path->GetEntryLabel()); in VisitCheckCast()
4468 __ Bind(slow_path->GetExitLabel()); in VisitCheckCast()
4479 __ fs()->call(Address::Absolute(instruction->IsEnter() in VisitMonitorOperation()
4520 __ andl(first.AsRegister<Register>(), second.AsRegister<Register>()); in HandleBitwiseOperation()
4522 __ orl(first.AsRegister<Register>(), second.AsRegister<Register>()); in HandleBitwiseOperation()
4525 __ xorl(first.AsRegister<Register>(), second.AsRegister<Register>()); in HandleBitwiseOperation()
4529 __ andl(first.AsRegister<Register>(), in HandleBitwiseOperation()
4532 __ orl(first.AsRegister<Register>(), in HandleBitwiseOperation()
4536 __ xorl(first.AsRegister<Register>(), in HandleBitwiseOperation()
4541 __ andl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
4543 __ orl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
4546 __ xorl(first.AsRegister<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
4553 __ andl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in HandleBitwiseOperation()
4554 __ andl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in HandleBitwiseOperation()
4556 __ orl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in HandleBitwiseOperation()
4557 __ orl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in HandleBitwiseOperation()
4560 __ xorl(first.AsRegisterPairLow<Register>(), second.AsRegisterPairLow<Register>()); in HandleBitwiseOperation()
4561 __ xorl(first.AsRegisterPairHigh<Register>(), second.AsRegisterPairHigh<Register>()); in HandleBitwiseOperation()
4565 __ andl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
4566 __ andl(first.AsRegisterPairHigh<Register>(), in HandleBitwiseOperation()
4569 __ orl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
4570 __ orl(first.AsRegisterPairHigh<Register>(), in HandleBitwiseOperation()
4574 __ xorl(first.AsRegisterPairLow<Register>(), Address(ESP, second.GetStackIndex())); in HandleBitwiseOperation()
4575 __ xorl(first.AsRegisterPairHigh<Register>(), in HandleBitwiseOperation()
4589 __ xorl(first_low, first_low); in HandleBitwiseOperation()
4591 __ andl(first_low, low); in HandleBitwiseOperation()
4594 __ xorl(first_high, first_high); in HandleBitwiseOperation()
4596 __ andl(first_high, high); in HandleBitwiseOperation()
4600 __ orl(first_low, low); in HandleBitwiseOperation()
4603 __ orl(first_high, high); in HandleBitwiseOperation()
4608 __ xorl(first_low, low); in HandleBitwiseOperation()
4611 __ xorl(first_high, high); in HandleBitwiseOperation()