Lines Matching refs:__

58 #define __ codegen->GetAssembler()->  macro
73 __ Move(V0, trg_reg); in MoveFromReturnRegister()
79 __ MovS(F0, trg_reg); in MoveFromReturnRegister()
81 __ MovD(F0, trg_reg); in MoveFromReturnRegister()
107 __ Bind(GetEntryLabel()); in EmitNativeCode()
130 __ B(GetExitLabel()); in EmitNativeCode()
142 #undef __
150 #define __ assembler-> macro
167 __ Mfc1(out_lo, in); in MoveFPToInt()
168 __ MoveFromFpuHigh(out_hi, in); in MoveFPToInt()
172 __ Mfc1(out, in); in MoveFPToInt()
209 __ Mtc1(in_lo, out); in MoveIntToFP()
210 __ MoveToFpuHigh(in_hi, out); in MoveIntToFP()
214 __ Mtc1(in, out); in MoveIntToFP()
262 __ Wsbh(out, in); in GenReverse()
263 __ Seh(out, out); in GenReverse()
265 __ Sll(TMP, in, 24); in GenReverse()
266 __ Sra(TMP, TMP, 16); in GenReverse()
267 __ Sll(out, in, 16); in GenReverse()
268 __ Srl(out, out, 24); in GenReverse()
269 __ Or(out, out, TMP); in GenReverse()
276 __ Rotr(out, in, 16); in GenReverse()
277 __ Wsbh(out, out); in GenReverse()
281 __ Sll(TMP, in, 16); in GenReverse()
282 __ Srl(out, in, 16); in GenReverse()
283 __ Or(out, out, TMP); in GenReverse()
285 __ LoadConst32(AT, 0x00FF00FF); in GenReverse()
286 __ And(TMP, out, AT); in GenReverse()
287 __ Sll(TMP, TMP, 8); in GenReverse()
288 __ Srl(out, out, 8); in GenReverse()
289 __ And(out, out, AT); in GenReverse()
290 __ Or(out, out, TMP); in GenReverse()
294 __ Bitswap(out, out); in GenReverse()
296 __ LoadConst32(AT, 0x0F0F0F0F); in GenReverse()
297 __ And(TMP, out, AT); in GenReverse()
298 __ Sll(TMP, TMP, 4); in GenReverse()
299 __ Srl(out, out, 4); in GenReverse()
300 __ And(out, out, AT); in GenReverse()
301 __ Or(out, TMP, out); in GenReverse()
302 __ LoadConst32(AT, 0x33333333); in GenReverse()
303 __ And(TMP, out, AT); in GenReverse()
304 __ Sll(TMP, TMP, 2); in GenReverse()
305 __ Srl(out, out, 2); in GenReverse()
306 __ And(out, out, AT); in GenReverse()
307 __ Or(out, TMP, out); in GenReverse()
308 __ LoadConst32(AT, 0x55555555); in GenReverse()
309 __ And(TMP, out, AT); in GenReverse()
310 __ Sll(TMP, TMP, 1); in GenReverse()
311 __ Srl(out, out, 1); in GenReverse()
312 __ And(out, out, AT); in GenReverse()
313 __ Or(out, TMP, out); in GenReverse()
323 __ Rotr(AT, in_hi, 16); in GenReverse()
324 __ Rotr(TMP, in_lo, 16); in GenReverse()
325 __ Wsbh(out_lo, AT); in GenReverse()
326 __ Wsbh(out_hi, TMP); in GenReverse()
333 __ Sll(TMP, in_lo, 16); in GenReverse()
334 __ Srl(AT, in_lo, 16); in GenReverse()
335 __ Or(TMP, TMP, AT); // Hold in TMP until it's safe in GenReverse()
338 __ Sll(AT, in_hi, 16); in GenReverse()
339 __ Srl(out_lo, in_hi, 16); // Here we are finally done reading in GenReverse()
342 __ Or(out_lo, out_lo, AT); in GenReverse()
344 __ LoadConst32(AT, 0x00FF00FF); in GenReverse()
345 __ And(out_hi, TMP, AT); in GenReverse()
346 __ Sll(out_hi, out_hi, 8); in GenReverse()
347 __ Srl(TMP, TMP, 8); in GenReverse()
348 __ And(TMP, TMP, AT); in GenReverse()
349 __ Or(out_hi, out_hi, TMP); in GenReverse()
351 __ And(TMP, out_lo, AT); // AT already holds the correct mask value in GenReverse()
352 __ Sll(TMP, TMP, 8); in GenReverse()
353 __ Srl(out_lo, out_lo, 8); in GenReverse()
354 __ And(out_lo, out_lo, AT); in GenReverse()
355 __ Or(out_lo, out_lo, TMP); in GenReverse()
359 __ Bitswap(out_hi, out_hi); in GenReverse()
360 __ Bitswap(out_lo, out_lo); in GenReverse()
362 __ LoadConst32(AT, 0x0F0F0F0F); in GenReverse()
363 __ And(TMP, out_hi, AT); in GenReverse()
364 __ Sll(TMP, TMP, 4); in GenReverse()
365 __ Srl(out_hi, out_hi, 4); in GenReverse()
366 __ And(out_hi, out_hi, AT); in GenReverse()
367 __ Or(out_hi, TMP, out_hi); in GenReverse()
368 __ And(TMP, out_lo, AT); in GenReverse()
369 __ Sll(TMP, TMP, 4); in GenReverse()
370 __ Srl(out_lo, out_lo, 4); in GenReverse()
371 __ And(out_lo, out_lo, AT); in GenReverse()
372 __ Or(out_lo, TMP, out_lo); in GenReverse()
373 __ LoadConst32(AT, 0x33333333); in GenReverse()
374 __ And(TMP, out_hi, AT); in GenReverse()
375 __ Sll(TMP, TMP, 2); in GenReverse()
376 __ Srl(out_hi, out_hi, 2); in GenReverse()
377 __ And(out_hi, out_hi, AT); in GenReverse()
378 __ Or(out_hi, TMP, out_hi); in GenReverse()
379 __ And(TMP, out_lo, AT); in GenReverse()
380 __ Sll(TMP, TMP, 2); in GenReverse()
381 __ Srl(out_lo, out_lo, 2); in GenReverse()
382 __ And(out_lo, out_lo, AT); in GenReverse()
383 __ Or(out_lo, TMP, out_lo); in GenReverse()
384 __ LoadConst32(AT, 0x55555555); in GenReverse()
385 __ And(TMP, out_hi, AT); in GenReverse()
386 __ Sll(TMP, TMP, 1); in GenReverse()
387 __ Srl(out_hi, out_hi, 1); in GenReverse()
388 __ And(out_hi, out_hi, AT); in GenReverse()
389 __ Or(out_hi, TMP, out_hi); in GenReverse()
390 __ And(TMP, out_lo, AT); in GenReverse()
391 __ Sll(TMP, TMP, 1); in GenReverse()
392 __ Srl(out_lo, out_lo, 1); in GenReverse()
393 __ And(out_lo, out_lo, AT); in GenReverse()
394 __ Or(out_lo, TMP, out_lo); in GenReverse()
452 __ ClzR6(AT, in_hi); in GenNumberOfLeadingZeroes()
453 __ ClzR6(TMP, in_lo); in GenNumberOfLeadingZeroes()
454 __ Seleqz(TMP, TMP, in_hi); in GenNumberOfLeadingZeroes()
456 __ ClzR2(AT, in_hi); in GenNumberOfLeadingZeroes()
457 __ ClzR2(TMP, in_lo); in GenNumberOfLeadingZeroes()
458 __ Movn(TMP, ZERO, in_hi); in GenNumberOfLeadingZeroes()
460 __ Addu(out, AT, TMP); in GenNumberOfLeadingZeroes()
465 __ ClzR6(out, in); in GenNumberOfLeadingZeroes()
467 __ ClzR2(out, in); in GenNumberOfLeadingZeroes()
507 __ Seleqz(out, in_hi, in_lo); in GenNumberOfTrailingZeroes()
508 __ Selnez(TMP, in_lo, in_lo); in GenNumberOfTrailingZeroes()
509 __ Or(out, out, TMP); in GenNumberOfTrailingZeroes()
511 __ Movz(out, in_hi, in_lo); in GenNumberOfTrailingZeroes()
512 __ Movn(out, in_lo, in_lo); in GenNumberOfTrailingZeroes()
528 __ Rotr(out, in, 16); in GenNumberOfTrailingZeroes()
529 __ Wsbh(out, out); in GenNumberOfTrailingZeroes()
530 __ Bitswap(out, out); in GenNumberOfTrailingZeroes()
531 __ ClzR6(out, out); in GenNumberOfTrailingZeroes()
535 __ Addiu(TMP, in, -1); in GenNumberOfTrailingZeroes()
536 __ Xor(out, TMP, in); in GenNumberOfTrailingZeroes()
537 __ And(out, out, TMP); in GenNumberOfTrailingZeroes()
539 __ ClzR2(out, out); in GenNumberOfTrailingZeroes()
542 __ LoadConst32(TMP, 32); in GenNumberOfTrailingZeroes()
543 __ Subu(out, TMP, out); in GenNumberOfTrailingZeroes()
549 __ LoadConst32(TMP, 32); in GenNumberOfTrailingZeroes()
551 __ Seleqz(TMP, TMP, in_lo); in GenNumberOfTrailingZeroes()
553 __ Movn(TMP, ZERO, in_lo); in GenNumberOfTrailingZeroes()
555 __ Addu(out, out, TMP); in GenNumberOfTrailingZeroes()
644 __ Srl(TMP, in, 1); in GenBitCount()
645 __ LoadConst32(AT, 0x55555555); in GenBitCount()
646 __ And(TMP, TMP, AT); in GenBitCount()
647 __ Subu(TMP, in, TMP); in GenBitCount()
648 __ LoadConst32(AT, 0x33333333); in GenBitCount()
649 __ And(out, TMP, AT); in GenBitCount()
650 __ Srl(TMP, TMP, 2); in GenBitCount()
651 __ And(TMP, TMP, AT); in GenBitCount()
652 __ Addu(TMP, out, TMP); in GenBitCount()
653 __ Srl(out, TMP, 4); in GenBitCount()
654 __ Addu(out, out, TMP); in GenBitCount()
655 __ LoadConst32(AT, 0x0F0F0F0F); in GenBitCount()
656 __ And(out, out, AT); in GenBitCount()
657 __ LoadConst32(TMP, 0x01010101); in GenBitCount()
659 __ MulR6(out, out, TMP); in GenBitCount()
661 __ MulR2(out, out, TMP); in GenBitCount()
663 __ Srl(out, out, 24); in GenBitCount()
673 __ Srl(tmp_lo, in_lo, 1); in GenBitCount()
674 __ Srl(tmp_hi, in_hi, 1); in GenBitCount()
676 __ LoadConst32(AT, 0x55555555); in GenBitCount()
678 __ And(tmp_lo, tmp_lo, AT); in GenBitCount()
679 __ Subu(tmp_lo, in_lo, tmp_lo); in GenBitCount()
681 __ And(tmp_hi, tmp_hi, AT); in GenBitCount()
682 __ Subu(tmp_hi, in_hi, tmp_hi); in GenBitCount()
684 __ LoadConst32(AT, 0x33333333); in GenBitCount()
686 __ And(out_lo, tmp_lo, AT); in GenBitCount()
687 __ Srl(tmp_lo, tmp_lo, 2); in GenBitCount()
688 __ And(tmp_lo, tmp_lo, AT); in GenBitCount()
689 __ Addu(tmp_lo, out_lo, tmp_lo); in GenBitCount()
690 __ Srl(out_lo, tmp_lo, 4); in GenBitCount()
691 __ Addu(out_lo, out_lo, tmp_lo); in GenBitCount()
693 __ And(out_hi, tmp_hi, AT); in GenBitCount()
694 __ Srl(tmp_hi, tmp_hi, 2); in GenBitCount()
695 __ And(tmp_hi, tmp_hi, AT); in GenBitCount()
696 __ Addu(tmp_hi, out_hi, tmp_hi); in GenBitCount()
697 __ Srl(out_hi, tmp_hi, 4); in GenBitCount()
698 __ Addu(out_hi, out_hi, tmp_hi); in GenBitCount()
700 __ LoadConst32(AT, 0x0F0F0F0F); in GenBitCount()
702 __ And(out_lo, out_lo, AT); in GenBitCount()
703 __ And(out_hi, out_hi, AT); in GenBitCount()
705 __ LoadConst32(AT, 0x01010101); in GenBitCount()
708 __ MulR6(out_lo, out_lo, AT); in GenBitCount()
710 __ MulR6(out_hi, out_hi, AT); in GenBitCount()
712 __ MulR2(out_lo, out_lo, AT); in GenBitCount()
714 __ MulR2(out_hi, out_hi, AT); in GenBitCount()
717 __ Srl(out_lo, out_lo, 24); in GenBitCount()
718 __ Srl(out_hi, out_hi, 24); in GenBitCount()
720 __ Addu(out, out_hi, out_lo); in GenBitCount()
753 __ AbsD(out, in); in MathAbsFP()
755 __ AbsS(out, in); in MathAbsFP()
787 __ Sra(AT, in_hi, 31); in GenAbsInteger()
789 __ Xor(TMP, in_lo, AT); in GenAbsInteger()
790 __ Xor(out_hi, in_hi, AT); in GenAbsInteger()
792 __ Subu(out_lo, TMP, AT); in GenAbsInteger()
793 __ Sltu(TMP, out_lo, TMP); in GenAbsInteger()
794 __ Addu(out_hi, out_hi, TMP); in GenAbsInteger()
799 __ Sra(AT, in, 31); in GenAbsInteger()
800 __ Xor(out, in, AT); in GenAbsInteger()
801 __ Subu(out, out, AT); in GenAbsInteger()
845 __ CmpUnD(FTMP, a, b); in GenMinMaxFP()
846 __ Bc1eqz(FTMP, &noNaNs); in GenMinMaxFP()
849 __ CmpEqD(ftmp, a, a); in GenMinMaxFP()
851 __ SelD(ftmp, a, b); in GenMinMaxFP()
854 __ MovD(out, ftmp); in GenMinMaxFP()
857 __ B(&done); in GenMinMaxFP()
859 __ Bind(&noNaNs); in GenMinMaxFP()
862 __ MinD(out, a, b); in GenMinMaxFP()
864 __ MaxD(out, a, b); in GenMinMaxFP()
868 __ CmpUnS(FTMP, a, b); in GenMinMaxFP()
869 __ Bc1eqz(FTMP, &noNaNs); in GenMinMaxFP()
872 __ CmpEqS(ftmp, a, a); in GenMinMaxFP()
874 __ SelS(ftmp, a, b); in GenMinMaxFP()
877 __ MovS(out, ftmp); in GenMinMaxFP()
880 __ B(&done); in GenMinMaxFP()
882 __ Bind(&noNaNs); in GenMinMaxFP()
885 __ MinS(out, a, b); in GenMinMaxFP()
887 __ MaxS(out, a, b); in GenMinMaxFP()
891 __ Bind(&done); in GenMinMaxFP()
899 __ CunD(a, b); in GenMinMaxFP()
902 __ CunS(a, b); in GenMinMaxFP()
904 __ Bc1f(&ordered); in GenMinMaxFP()
908 __ CeqD(b, b); in GenMinMaxFP()
910 __ CeqS(b, b); in GenMinMaxFP()
912 __ B(&select); in GenMinMaxFP()
914 __ Bind(&ordered); in GenMinMaxFP()
920 __ CeqD(a, b); in GenMinMaxFP()
922 __ CeqS(a, b); in GenMinMaxFP()
924 __ Bc1f(&compare); in GenMinMaxFP()
928 __ MoveFromFpuHigh(TMP, a); in GenMinMaxFP()
929 __ MoveFromFpuHigh(AT, b); in GenMinMaxFP()
931 __ Mfc1(TMP, a); in GenMinMaxFP()
932 __ Mfc1(AT, b); in GenMinMaxFP()
937 __ Or(TMP, TMP, AT); in GenMinMaxFP()
940 __ And(TMP, TMP, AT); in GenMinMaxFP()
944 __ Mfc1(AT, a); in GenMinMaxFP()
945 __ Mtc1(AT, out); in GenMinMaxFP()
946 __ MoveToFpuHigh(TMP, out); in GenMinMaxFP()
948 __ Mtc1(TMP, out); in GenMinMaxFP()
950 __ B(&done); in GenMinMaxFP()
952 __ Bind(&compare); in GenMinMaxFP()
957 __ ColeD(a, b); in GenMinMaxFP()
960 __ ColeD(b, a); // b <= a in GenMinMaxFP()
965 __ ColeS(a, b); in GenMinMaxFP()
968 __ ColeS(b, a); // b <= a in GenMinMaxFP()
972 __ Bind(&select); in GenMinMaxFP()
975 __ MovtD(out, a); in GenMinMaxFP()
976 __ MovfD(out, b); in GenMinMaxFP()
978 __ MovtS(out, a); in GenMinMaxFP()
979 __ MovfS(out, b); in GenMinMaxFP()
982 __ Bind(&done); in GenMinMaxFP()
1097 __ Move(out_lo, a_lo); in GenMinMax()
1098 __ Move(out_hi, a_hi); in GenMinMax()
1101 __ Slt(TMP, b_hi, a_hi); in GenMinMax()
1102 __ Bne(b_hi, a_hi, &compare_done); in GenMinMax()
1104 __ Sltu(TMP, b_lo, a_lo); in GenMinMax()
1106 __ Bind(&compare_done); in GenMinMax()
1109 __ Seleqz(AT, a_lo, TMP); in GenMinMax()
1110 __ Selnez(out_lo, b_lo, TMP); // Safe even if out_lo == a_lo/b_lo in GenMinMax()
1114 __ Selnez(AT, a_lo, TMP); in GenMinMax()
1115 __ Seleqz(out_lo, b_lo, TMP); // ditto in GenMinMax()
1117 __ Or(out_lo, out_lo, AT); in GenMinMax()
1119 __ Seleqz(AT, a_hi, TMP); in GenMinMax()
1120 __ Selnez(out_hi, b_hi, TMP); // ditto but for out_hi & a_hi/b_hi in GenMinMax()
1122 __ Selnez(AT, a_hi, TMP); in GenMinMax()
1123 __ Seleqz(out_hi, b_hi, TMP); // ditto but for out_hi & a_hi/b_hi in GenMinMax()
1125 __ Or(out_hi, out_hi, AT); in GenMinMax()
1135 __ Move(out, a); in GenMinMax()
1138 __ Slt(AT, b, a); in GenMinMax()
1140 __ Seleqz(TMP, a, AT); in GenMinMax()
1141 __ Selnez(AT, b, AT); in GenMinMax()
1143 __ Selnez(TMP, a, AT); in GenMinMax()
1144 __ Seleqz(AT, b, AT); in GenMinMax()
1146 __ Or(out, TMP, AT); in GenMinMax()
1162 __ Move(out_lo, a_lo); in GenMinMax()
1163 __ Move(out_hi, a_hi); in GenMinMax()
1166 __ Slt(TMP, a_hi, b_hi); in GenMinMax()
1167 __ Bne(a_hi, b_hi, &compare_done); in GenMinMax()
1169 __ Sltu(TMP, a_lo, b_lo); in GenMinMax()
1171 __ Bind(&compare_done); in GenMinMax()
1175 __ Movn(out_hi, a_hi, TMP); in GenMinMax()
1176 __ Movn(out_lo, a_lo, TMP); in GenMinMax()
1179 __ Movz(out_hi, b_hi, TMP); in GenMinMax()
1180 __ Movz(out_lo, b_lo, TMP); in GenMinMax()
1184 __ Movz(out_hi, a_hi, TMP); in GenMinMax()
1185 __ Movz(out_lo, a_lo, TMP); in GenMinMax()
1188 __ Movn(out_hi, b_hi, TMP); in GenMinMax()
1189 __ Movn(out_lo, b_lo, TMP); in GenMinMax()
1201 __ Move(out, a); in GenMinMax()
1204 __ Slt(AT, a, b); in GenMinMax()
1207 __ Movn(out, a, AT); in GenMinMax()
1210 __ Movz(out, b, AT); in GenMinMax()
1214 __ Movz(out, a, AT); in GenMinMax()
1217 __ Movn(out, b, AT); in GenMinMax()
1288 __ SqrtD(out, in); in VisitMathSqrt()
1301 __ Lb(out, adr, 0); in VisitMemoryPeekByte()
1315 __ Lh(out, adr, 0); in VisitMemoryPeekShortNative()
1321 __ Lb(AT, adr, 1); // This byte must be sign-extended. in VisitMemoryPeekShortNative()
1322 __ Lb(out, adr, 0); // This byte can be either sign-extended, or in VisitMemoryPeekShortNative()
1325 __ Ins(out, AT, 8, 24); in VisitMemoryPeekShortNative()
1327 __ Lbu(AT, adr, 0); // This byte must be zero-extended. If it's not in VisitMemoryPeekShortNative()
1330 __ Lb(out, adr, 1); // This byte must be sign-extended. in VisitMemoryPeekShortNative()
1331 __ Sll(out, out, 8); in VisitMemoryPeekShortNative()
1332 __ Or(out, out, AT); in VisitMemoryPeekShortNative()
1347 __ Lw(out, adr, 0); in VisitMemoryPeekIntNative()
1349 __ Lwr(out, adr, 0); in VisitMemoryPeekIntNative()
1350 __ Lwl(out, adr, 3); in VisitMemoryPeekIntNative()
1366 __ Lw(out_lo, adr, 0); in VisitMemoryPeekLongNative()
1367 __ Lw(out_hi, adr, 4); in VisitMemoryPeekLongNative()
1369 __ Lwr(out_lo, adr, 0); in VisitMemoryPeekLongNative()
1370 __ Lwl(out_lo, adr, 3); in VisitMemoryPeekLongNative()
1371 __ Lwr(out_hi, adr, 4); in VisitMemoryPeekLongNative()
1372 __ Lwl(out_hi, adr, 7); in VisitMemoryPeekLongNative()
1394 __ Sb(val, adr, 0); in VisitMemoryPokeByte()
1408 __ Sh(val, adr, 0); in VisitMemoryPokeShortNative()
1413 __ Sb(val, adr, 0); in VisitMemoryPokeShortNative()
1414 __ Srl(AT, val, 8); in VisitMemoryPokeShortNative()
1415 __ Sb(AT, adr, 1); in VisitMemoryPokeShortNative()
1430 __ Sw(val, adr, 0); in VisitMemoryPokeIntNative()
1432 __ Swr(val, adr, 0); in VisitMemoryPokeIntNative()
1433 __ Swl(val, adr, 3); in VisitMemoryPokeIntNative()
1449 __ Sw(val_lo, adr, 0); in VisitMemoryPokeLongNative()
1450 __ Sw(val_hi, adr, 4); in VisitMemoryPokeLongNative()
1452 __ Swr(val_lo, adr, 0); in VisitMemoryPokeLongNative()
1453 __ Swl(val_lo, adr, 3); in VisitMemoryPokeLongNative()
1454 __ Swr(val_hi, adr, 4); in VisitMemoryPokeLongNative()
1455 __ Swl(val_hi, adr, 7); in VisitMemoryPokeLongNative()
1471 __ LoadFromOffset(kLoadWord, in VisitThreadCurrentThread()
1509 __ Addu(TMP, base, offset_lo); in GenUnsafeGet()
1511 __ Sync(0); in GenUnsafeGet()
1518 __ Lw(trg_lo, TMP, 0); in GenUnsafeGet()
1519 __ Lw(trg_hi, TMP, 4); in GenUnsafeGet()
1521 __ Lwr(trg_lo, TMP, 0); in GenUnsafeGet()
1522 __ Lwl(trg_lo, TMP, 3); in GenUnsafeGet()
1523 __ Lwr(trg_hi, TMP, 4); in GenUnsafeGet()
1524 __ Lwl(trg_hi, TMP, 7); in GenUnsafeGet()
1530 __ Lw(trg, TMP, 0); in GenUnsafeGet()
1532 __ Lwr(trg, TMP, 0); in GenUnsafeGet()
1533 __ Lwl(trg, TMP, 3); in GenUnsafeGet()
1619 __ Addu(TMP, base, offset_lo); in GenUnsafePut()
1621 __ Sync(0); in GenUnsafePut()
1627 __ Sw(value, TMP, 0); in GenUnsafePut()
1629 __ Swr(value, TMP, 0); in GenUnsafePut()
1630 __ Swl(value, TMP, 3); in GenUnsafePut()
1637 __ Sw(value_lo, TMP, 0); in GenUnsafePut()
1638 __ Sw(value_hi, TMP, 4); in GenUnsafePut()
1640 __ Swr(value_lo, TMP, 0); in GenUnsafePut()
1641 __ Swl(value_lo, TMP, 3); in GenUnsafePut()
1642 __ Swr(value_hi, TMP, 4); in GenUnsafePut()
1643 __ Swl(value_hi, TMP, 7); in GenUnsafePut()
1648 __ Sync(0); in GenUnsafePut()
1819 __ Addu(TMP, base, offset_lo); in GenCas()
1820 __ Sync(0); in GenCas()
1821 __ Bind(&loop_head); in GenCas()
1824 __ LlR6(out, TMP); in GenCas()
1826 __ LlR2(out, TMP); in GenCas()
1832 __ Subu(out, out, expected); // If we didn't get the 'expected' in GenCas()
1833 __ Sltiu(out, out, 1); // value, set 'out' to false, and in GenCas()
1834 __ Beqz(out, &exit_loop); // return. in GenCas()
1835 __ Move(out, value); // Use 'out' for the 'store conditional' instruction. in GenCas()
1846 __ ScR6(out, TMP); in GenCas()
1848 __ ScR2(out, TMP); in GenCas()
1851 __ Beqz(out, &loop_head); // If we couldn't do the read-modify-write in GenCas()
1853 __ Bind(&exit_loop); in GenCas()
1854 __ Sync(0); in GenCas()
1910 __ Lw(TMP, obj, count_offset); in VisitStringCharAt()
1913 __ Bgeu(idx, TMP, slow_path->GetEntryLabel()); in VisitStringCharAt()
1916 __ Sll(TMP, idx, 1); // idx * 2 in VisitStringCharAt()
1917 __ Addu(TMP, TMP, obj); // Address of char at location idx in VisitStringCharAt()
1918 __ Lhu(out, TMP, value_offset); // Load char at location idx in VisitStringCharAt()
1920 __ Bind(slow_path->GetExitLabel()); in VisitStringCharAt()
1945 __ Beqz(argument, slow_path->GetEntryLabel()); in VisitStringCompareTo()
1947 __ LoadFromOffset(kLoadWord, in VisitStringCompareTo()
1952 __ Jalr(T9); in VisitStringCompareTo()
1953 __ Nop(); in VisitStringCompareTo()
1954 __ Bind(slow_path->GetExitLabel()); in VisitStringCompareTo()
2002 __ LoadConst32(out, 1); in VisitStringEquals()
2007 __ Beqz(arg, &return_false); in VisitStringEquals()
2010 __ Beq(str, arg, &return_true); in VisitStringEquals()
2016 __ Lw(temp1, str, class_offset); in VisitStringEquals()
2017 __ Lw(temp2, arg, class_offset); in VisitStringEquals()
2018 __ Bne(temp1, temp2, &return_false); in VisitStringEquals()
2021 __ Lw(temp1, str, count_offset); in VisitStringEquals()
2022 __ Lw(temp2, arg, count_offset); in VisitStringEquals()
2024 __ Bne(temp1, temp2, &return_false); in VisitStringEquals()
2026 __ Beqz(temp1, &return_true); in VisitStringEquals()
2029 __ Move(TMP, str); in VisitStringEquals()
2030 __ Move(temp3, arg); in VisitStringEquals()
2038 __ Bind(&loop); in VisitStringEquals()
2039 __ Lw(out, TMP, value_offset); in VisitStringEquals()
2040 __ Lw(temp2, temp3, value_offset); in VisitStringEquals()
2041 __ Bne(out, temp2, &return_false); in VisitStringEquals()
2042 __ Addiu(TMP, TMP, 4); in VisitStringEquals()
2043 __ Addiu(temp3, temp3, 4); in VisitStringEquals()
2044 __ Addiu(temp1, temp1, -2); in VisitStringEquals()
2045 __ Bgtz(temp1, &loop); in VisitStringEquals()
2049 __ Bind(&return_true); in VisitStringEquals()
2050 __ LoadConst32(out, 1); in VisitStringEquals()
2051 __ B(&end); in VisitStringEquals()
2054 __ Bind(&return_false); in VisitStringEquals()
2055 __ LoadConst32(out, 0); in VisitStringEquals()
2056 __ Bind(&end); in VisitStringEquals()
2080 __ B(slow_path->GetEntryLabel()); in GenerateStringIndexOf()
2081 __ Bind(slow_path->GetExitLabel()); in GenerateStringIndexOf()
2094 __ LoadConst32(tmp_reg, std::numeric_limits<uint16_t>::max()); in GenerateStringIndexOf()
2097 __ Bltu(tmp_reg, char_reg, slow_path->GetEntryLabel()); in GenerateStringIndexOf()
2103 __ Clear(tmp_reg); in GenerateStringIndexOf()
2106 __ LoadFromOffset(kLoadWord, in GenerateStringIndexOf()
2110 __ Jalr(T9); in GenerateStringIndexOf()
2111 __ Nop(); in GenerateStringIndexOf()
2114 __ Bind(slow_path->GetExitLabel()); in GenerateStringIndexOf()
2190 __ Beqz(byte_array, slow_path->GetEntryLabel()); in VisitStringNewStringFromBytes()
2192 __ LoadFromOffset(kLoadWord, in VisitStringNewStringFromBytes()
2196 __ Jalr(T9); in VisitStringNewStringFromBytes()
2197 __ Nop(); in VisitStringNewStringFromBytes()
2199 __ Bind(slow_path->GetExitLabel()); in VisitStringNewStringFromBytes()
2225 __ LoadFromOffset(kLoadWord, in VisitStringNewStringFromChars()
2229 __ Jalr(T9); in VisitStringNewStringFromChars()
2230 __ Nop(); in VisitStringNewStringFromChars()
2252 __ Beqz(string_to_copy, slow_path->GetEntryLabel()); in VisitStringNewStringFromString()
2254 __ LoadFromOffset(kLoadWord, in VisitStringNewStringFromString()
2258 __ Jalr(T9); in VisitStringNewStringFromString()
2259 __ Nop(); in VisitStringNewStringFromString()
2261 __ Bind(slow_path->GetExitLabel()); in VisitStringNewStringFromString()
2275 __ ClassD(FTMP, in); in GenIsInfinite()
2277 __ ClassS(FTMP, in); in GenIsInfinite()
2279 __ Mfc1(out, FTMP); in GenIsInfinite()
2280 __ Andi(out, out, kPositiveInfinity | kNegativeInfinity); in GenIsInfinite()
2281 __ Sltu(out, ZERO, out); in GenIsInfinite()
2285 __ MoveFromFpuHigh(TMP, in); in GenIsInfinite()
2286 __ LoadConst32(AT, 0x7FF00000); in GenIsInfinite()
2288 __ Mfc1(TMP, in); in GenIsInfinite()
2289 __ LoadConst32(AT, 0x7F800000); in GenIsInfinite()
2291 __ Xor(TMP, TMP, AT); in GenIsInfinite()
2293 __ Sll(TMP, TMP, 1); in GenIsInfinite()
2296 __ Mfc1(AT, in); in GenIsInfinite()
2297 __ Or(TMP, TMP, AT); in GenIsInfinite()
2300 __ Sltiu(out, TMP, 1); in GenIsInfinite()
2335 __ ClzR6(TMP, in_hi); in GenHighestOneBit()
2337 __ ClzR2(TMP, in_hi); in GenHighestOneBit()
2339 __ LoadConst32(AT, 0x80000000); in GenHighestOneBit()
2340 __ Srlv(out_hi, AT, TMP); in GenHighestOneBit()
2341 __ And(out_hi, out_hi, in_hi); in GenHighestOneBit()
2343 __ ClzR6(TMP, in_lo); in GenHighestOneBit()
2345 __ ClzR2(TMP, in_lo); in GenHighestOneBit()
2347 __ Srlv(out_lo, AT, TMP); in GenHighestOneBit()
2348 __ And(out_lo, out_lo, in_lo); in GenHighestOneBit()
2350 __ Seleqz(out_lo, out_lo, out_hi); in GenHighestOneBit()
2352 __ Movn(out_lo, ZERO, out_hi); in GenHighestOneBit()
2359 __ ClzR6(TMP, in); in GenHighestOneBit()
2361 __ ClzR2(TMP, in); in GenHighestOneBit()
2363 __ LoadConst32(AT, 0x80000000); in GenHighestOneBit()
2364 __ Srlv(AT, AT, TMP); // Srlv shifts in the range of [0;31] bits (lower 5 bits of arg). in GenHighestOneBit()
2365 __ And(out, AT, in); // So this is required for 0 (=shift by 32). in GenHighestOneBit()
2399 __ Subu(TMP, ZERO, in_lo); in GenLowestOneBit()
2400 __ And(out_lo, TMP, in_lo); in GenLowestOneBit()
2401 __ Subu(TMP, ZERO, in_hi); in GenLowestOneBit()
2402 __ And(out_hi, TMP, in_hi); in GenLowestOneBit()
2404 __ Seleqz(out_hi, out_hi, out_lo); in GenLowestOneBit()
2406 __ Movn(out_hi, ZERO, out_lo); in GenLowestOneBit()
2412 __ Subu(TMP, ZERO, in); in GenLowestOneBit()
2413 __ And(out, TMP, in); in GenLowestOneBit()
2476 #undef __