Home | History | Annotate | Download | only in cctest

Lines Matching defs:exit

146 static void TestMoveSmi(MacroAssembler* masm, Label* exit, int id, Smi* value) {
151 __ j(not_equal, exit);
169 Label exit;
171 TestMoveSmi(masm, &exit, 1, Smi::FromInt(0));
172 TestMoveSmi(masm, &exit, 2, Smi::FromInt(127));
173 TestMoveSmi(masm, &exit, 3, Smi::FromInt(128));
174 TestMoveSmi(masm, &exit, 4, Smi::FromInt(255));
175 TestMoveSmi(masm, &exit, 5, Smi::FromInt(256));
176 TestMoveSmi(masm, &exit, 6, Smi::FromInt(Smi::kMaxValue));
177 TestMoveSmi(masm, &exit, 7, Smi::FromInt(-1));
178 TestMoveSmi(masm, &exit, 8, Smi::FromInt(-128));
179 TestMoveSmi(masm, &exit, 9, Smi::FromInt(-129));
180 TestMoveSmi(masm, &exit, 10, Smi::FromInt(-256));
181 TestMoveSmi(masm, &exit, 11, Smi::FromInt(-257));
182 TestMoveSmi(masm, &exit, 12, Smi::FromInt(Smi::kMinValue));
185 __ bind(&exit);
197 void TestSmiCompare(MacroAssembler* masm, Label* exit, int id, int x, int y) {
205 __ j(greater_equal, exit);
208 __ j(less_equal, exit);
212 __ j(not_equal, exit);
216 __ j(not_equal, exit);
219 __ j(not_equal, exit);
225 __ j(greater_equal, exit);
229 __ j(less_equal, exit);
234 __ j(not_equal, exit);
237 __ j(not_equal, exit);
258 Label exit;
260 TestSmiCompare(masm, &exit, 0x10, 0, 0);
261 TestSmiCompare(masm, &exit, 0x20, 0, 1);
262 TestSmiCompare(masm, &exit, 0x30, 1, 0);
263 TestSmiCompare(masm, &exit, 0x40, 1, 1);
264 TestSmiCompare(masm, &exit, 0x50, 0, -1);
265 TestSmiCompare(masm, &exit, 0x60, -1, 0);
266 TestSmiCompare(masm, &exit, 0x70, -1, -1);
267 TestSmiCompare(masm, &exit, 0x80, 0, Smi::kMinValue);
268 TestSmiCompare(masm, &exit, 0x90, Smi::kMinValue, 0);
269 TestSmiCompare(masm, &exit, 0xA0, 0, Smi::kMaxValue);
270 TestSmiCompare(masm, &exit, 0xB0, Smi::kMaxValue, 0);
271 TestSmiCompare(masm, &exit, 0xC0, -1, Smi::kMinValue);
272 TestSmiCompare(masm, &exit, 0xD0, Smi::kMinValue, -1);
273 TestSmiCompare(masm, &exit, 0xE0, -1, Smi::kMaxValue);
274 TestSmiCompare(masm, &exit, 0xF0, Smi::kMaxValue, -1);
275 TestSmiCompare(masm, &exit, 0x100, Smi::kMinValue, Smi::kMinValue);
276 TestSmiCompare(masm, &exit, 0x110, Smi::kMinValue, Smi::kMaxValue);
277 TestSmiCompare(masm, &exit, 0x120, Smi::kMaxValue, Smi::kMinValue);
278 TestSmiCompare(masm, &exit, 0x130, Smi::kMaxValue, Smi::kMaxValue);
281 __ bind(&exit);
308 Label exit;
315 __ j(not_equal, &exit);
322 __ j(not_equal, &exit);
329 __ j(not_equal, &exit);
336 __ j(not_equal, &exit);
343 __ j(not_equal, &exit);
352 __ j(not_equal, &exit);
359 __ j(not_equal, &exit);
366 __ j(not_equal, &exit);
373 __ j(not_equal, &exit);
380 __ j(not_equal, &exit);
384 __ bind(&exit);
397 Label* exit,
409 __ j(not_equal, exit);
413 __ j(not_equal, exit);
418 __ j(not_equal, exit);
436 Label exit;
440 TestI64PlusConstantToSmi(masm, &exit, 0x10, 0, 0);
441 TestI64PlusConstantToSmi(masm, &exit, 0x20, 0, 1);
442 TestI64PlusConstantToSmi(masm, &exit, 0x30, 1, 0);
443 TestI64PlusConstantToSmi(masm, &exit, 0x40, Smi::kMaxValue - 5, 5);
444 TestI64PlusConstantToSmi(masm, &exit, 0x50, Smi::kMinValue + 5, 5);
445 TestI64PlusConstantToSmi(masm, &exit, 0x60, twice_max, -Smi::kMaxValue);
446 TestI64PlusConstantToSmi(masm, &exit, 0x70, -twice_max, Smi::kMaxValue);
447 TestI64PlusConstantToSmi(masm, &exit, 0x80, 0, Smi::kMinValue);
448 TestI64PlusConstantToSmi(masm, &exit, 0x90, 0, Smi::kMaxValue);
449 TestI64PlusConstantToSmi(masm, &exit, 0xA0, Smi::kMinValue, 0);
450 TestI64PlusConstantToSmi(masm, &exit, 0xB0, Smi::kMaxValue, 0);
451 TestI64PlusConstantToSmi(masm, &exit, 0xC0, twice_max, Smi::kMinValue);
454 __ bind(&exit);
480 Label exit;
490 __ j(NegateCondition(cond), &exit);
495 __ j(cond, &exit);
501 __ j(NegateCondition(cond), &exit);
506 __ j(cond, &exit);
512 __ j(NegateCondition(cond), &exit);
517 __ j(cond, &exit);
523 __ j(NegateCondition(cond), &exit);
528 __ j(cond, &exit);
536 __ j(NegateCondition(cond), &exit);
541 __ j(cond, &exit);
547 __ j(cond, &exit);
553 __ j(cond, &exit);
558 __ j(cond, &exit);
564 __ j(NegateCondition(cond), &exit);
569 __ j(cond, &exit);
577 __ j(cond, &exit);
583 __ j(cond, &exit);
589 __ j(NegateCondition(cond), &exit);
595 __ j(cond, &exit);
605 __ j(NegateCondition(cond), &exit);
610 __ j(cond, &exit);
615 __ j(cond, &exit);
620 __ j(cond, &exit);
624 __ j(NegateCondition(cond), &exit);
628 __ j(cond, &exit);
634 __ j(NegateCondition(cond), &exit);
639 __ j(NegateCondition(cond), &exit);
644 __ j(NegateCondition(cond), &exit);
649 __ j(NegateCondition(cond), &exit);
654 __ bind(&exit);
667 void TestSmiNeg(MacroAssembler* masm, Label* exit, int id, int x) {
673 __ SmiNeg(r9, rcx, exit);
677 __ j(not_equal, exit);
680 __ SmiNeg(rcx, rcx, exit);
684 __ j(not_equal, exit);
692 __ jmp(exit);
696 __ j(not_equal, exit);
700 __ j(not_equal, exit);
704 __ jmp(exit);
708 __ j(not_equal, exit);
728 Label exit;
730 TestSmiNeg(masm, &exit, 0x10, 0);
731 TestSmiNeg(masm, &exit, 0x20, 1);
732 TestSmiNeg(masm, &exit, 0x30, -1);
733 TestSmiNeg(masm, &exit, 0x40, 127);
734 TestSmiNeg(masm, &exit, 0x50, 65535);
735 TestSmiNeg(masm, &exit, 0x60, Smi::kMinValue);
736 TestSmiNeg(masm, &exit, 0x70, Smi::kMaxValue);
737 TestSmiNeg(masm, &exit, 0x80, -Smi::kMaxValue);
740 __ bind(&exit);
753 Label* exit,
765 __ SmiAdd(r9, rcx, rdx, exit);
767 __ j(not_equal, exit);
770 __ SmiAdd(rcx, rcx, rdx, exit);
772 __ j(not_equal, exit);
780 __ j(not_equal, exit);
784 __ j(not_equal, exit);
793 __ SmiAddConstant(r9, rcx, Smi::FromInt(second), mode, exit);
795 __ j(not_equal, exit);
798 __ SmiAddConstant(rcx, rcx, Smi::FromInt(second), mode, exit);
800 __ j(not_equal, exit);
811 __ jmp(exit);
814 __ j(not_equal, exit);
819 Label* exit,
834 __ jmp(exit);
838 __ j(not_equal, exit);
845 __ jmp(exit);
849 __ j(not_equal, exit);
860 __ jmp(exit);
864 __ j(not_equal, exit);
871 __ jmp(exit);
875 __ j(not_equal, exit);
884 __ jmp(exit);
888 __ j(not_equal, exit);
895 __ jmp(exit);
899 __ j(not_equal, exit);
907 __ jmp(exit);
911 __ j(not_equal, exit);
920 __ jmp(exit);
924 __ j(equal, exit);
944 Label exit;
947 SmiAddTest(masm, &exit, 0x10, 1, 2);
948 SmiAddTest(masm, &exit, 0x20, 1, -2);
949 SmiAddTest(masm, &exit, 0x30, -1, 2);
950 SmiAddTest(masm, &exit, 0x40, -1, -2);
951 SmiAddTest(masm, &exit, 0x50, 0x1000, 0x2000);
952 SmiAddTest(masm, &exit, 0x60, Smi::kMinValue, 5);
953 SmiAddTest(masm, &exit, 0x70, Smi::kMaxValue, -5);
954 SmiAddTest(masm, &exit, 0x80, Smi::kMaxValue, Smi::kMinValue);
956 SmiAddOverflowTest(masm, &exit, 0x90, -1);
957 SmiAddOverflowTest(masm, &exit, 0xA0, 1);
958 SmiAddOverflowTest(masm, &exit, 0xB0, 1024);
959 SmiAddOverflowTest(masm, &exit, 0xC0, Smi::kMaxValue);
960 SmiAddOverflowTest(masm, &exit, 0xD0, -2);
961 SmiAddOverflowTest(masm, &exit, 0xE0, -42000);
962 SmiAddOverflowTest(masm, &exit, 0xF0, Smi::kMinValue);
965 __ bind(&exit);
978 Label* exit,
987 __ SmiSub(r9, rcx, rdx, exit);
989 __ j(not_equal, exit);
992 __ SmiSub(rcx, rcx, rdx, exit);
994 __ j(not_equal, exit);
1001 __ j(not_equal, exit);
1006 __ j(not_equal, exit);
1013 __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), mode, exit);
1015 __ j(not_equal, exit);
1019 __ SmiSubConstant(r9, rcx, Smi::FromInt(second), mode, exit);
1021 __ j(not_equal, exit);
1030 __ jmp(exit);
1033 __ j(not_equal, exit);
1038 Label* exit,
1053 __ jmp(exit);
1057 __ j(not_equal, exit);
1064 __ jmp(exit);
1068 __ j(not_equal, exit);
1080 __ jmp(exit);
1084 __ j(not_equal, exit);
1091 __ jmp(exit);
1095 __ j(not_equal, exit);
1104 __ jmp(exit);
1108 __ j(not_equal, exit);
1115 __ jmp(exit);
1119 __ j(not_equal, exit);
1127 __ jmp(exit);
1131 __ j(not_equal, exit);
1141 __ jmp(exit);
1145 __ j(equal, exit);
1165 Label exit;
1167 SmiSubTest(masm, &exit, 0x10, 1, 2);
1168 SmiSubTest(masm, &exit, 0x20, 1, -2);
1169 SmiSubTest(masm, &exit, 0x30, -1, 2);
1170 SmiSubTest(masm, &exit, 0x40, -1, -2);
1171 SmiSubTest(masm, &exit, 0x50, 0x1000, 0x2000);
1172 SmiSubTest(masm, &exit, 0x60, Smi::kMinValue, -5);
1173 SmiSubTest(masm, &exit, 0x70, Smi::kMaxValue, 5);
1174 SmiSubTest(masm, &exit, 0x80, -Smi::kMaxValue, Smi::kMinValue);
1175 SmiSubTest(masm, &exit
1177 SmiSubOverflowTest(masm, &exit, 0xA0, 1);
1178 SmiSubOverflowTest(masm, &exit, 0xB0, 1024);
1179 SmiSubOverflowTest(masm, &exit, 0xC0, Smi::kMaxValue);
1180 SmiSubOverflowTest(masm, &exit, 0xD0, -2);
1181 SmiSubOverflowTest(masm, &exit, 0xE0, -42000);
1182 SmiSubOverflowTest(masm, &exit, 0xF0, Smi::kMinValue);
1183 SmiSubOverflowTest(masm, &exit, 0x100, 0);
1186 __ bind(&exit);
1199 void TestSmiMul(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1208 __ SmiMul(r9, rcx, rdx, exit);
1211 __ j(not_equal, exit);
1214 __ j(not_equal, exit);
1217 __ SmiMul(rcx, rcx, rdx, exit);
1219 __ j(not_equal, exit);
1224 __ jmp(exit);
1228 __ j(not_equal, exit);
1231 __ jmp(exit);
1236 // __ j(not_equal, exit);
1255 Label exit;
1257 TestSmiMul(masm, &exit, 0x10, 0, 0);
1258 TestSmiMul(masm, &exit, 0x20, -1, 0);
1259 TestSmiMul(masm, &exit, 0x30, 0, -1);
1260 TestSmiMul(masm, &exit, 0x40, -1, -1);
1261 TestSmiMul(masm, &exit, 0x50, 0x10000, 0x10000);
1262 TestSmiMul(masm, &exit, 0x60, 0x10000, 0xffff);
1263 TestSmiMul(masm, &exit, 0x70, 0x10000, 0xffff);
1264 TestSmiMul(masm, &exit, 0x80, Smi::kMaxValue, -1);
1265 TestSmiMul(masm, &exit, 0x90, Smi::kMaxValue, -2);
1266 TestSmiMul(masm, &exit, 0xa0, Smi::kMaxValue, 2);
1267 TestSmiMul(masm, &exit, 0xb0, (Smi::kMaxValue / 2), 2);
1268 TestSmiMul(masm, &exit, 0xc0, (Smi::kMaxValue / 2) + 1, 2);
1269 TestSmiMul(masm, &exit, 0xd0, (Smi::kMinValue / 2), 2);
1270 TestSmiMul(masm, &exit, 0xe0, (Smi::kMinValue / 2) - 1, 2);
1273 __ bind(&exit);
1285 void TestSmiDiv(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1302 __ SmiDiv(r9, rcx, r14, exit);
1306 __ j(not_equal, exit);
1312 __ j(not_equal, exit);
1315 __ SmiDiv(rcx, rcx, r14, exit);
1319 __ j(not_equal, exit);
1327 __ jmp(exit);
1332 __ j(not_equal, exit);
1336 __ jmp(exit);
1341 __ j(not_equal, exit);
1361 Label exit;
1365 TestSmiDiv(masm, &exit, 0x10, 1, 1);
1366 TestSmiDiv(masm, &exit, 0x20, 1, 0);
1367 TestSmiDiv(masm, &exit, 0x30, -1, 0);
1368 TestSmiDiv(masm, &exit, 0x40, 0, 1);
1369 TestSmiDiv(masm, &exit, 0x50, 0, -1);
1370 TestSmiDiv(masm, &exit, 0x60, 4, 2);
1371 TestSmiDiv(masm, &exit, 0x70, -4, 2);
1372 TestSmiDiv(masm, &exit, 0x80, 4, -2);
1373 TestSmiDiv(masm, &exit, 0x90, -4, -2);
1374 TestSmiDiv(masm, &exit, 0xa0, 3, 2);
1375 TestSmiDiv(masm, &exit, 0xb0, 3, 4);
1376 TestSmiDiv(masm, &exit, 0xc0, 1, Smi::kMaxValue);
1377 TestSmiDiv(masm, &exit, 0xd0, -1, Smi::kMaxValue);
1378 TestSmiDiv(masm, &exit, 0xe0, Smi::kMaxValue, 1);
1379 TestSmiDiv(masm, &exit, 0xf0, Smi::kMaxValue, Smi::kMaxValue);
1380 TestSmiDiv(masm, &exit, 0x100, Smi::kMaxValue, -Smi::kMaxValue);
1381 TestSmiDiv(masm, &exit, 0x110, Smi::kMaxValue, -1);
1382 TestSmiDiv(masm, &exit, 0x120, Smi::kMinValue, 1);
1383 TestSmiDiv(masm, &exit, 0x130, Smi::kMinValue, Smi::kMinValue);
1384 TestSmiDiv(masm, &exit, 0x140, Smi::kMinValue, -1);
1387 __ bind(&exit);
1402 void TestSmiMod(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1415 __ SmiMod(r9, rcx, r14, exit);
1419 __ j(not_equal, exit);
1423 __ j(not_equal, exit);
1426 __ SmiMod(rcx, rcx, r14, exit);
1430 __ j(not_equal, exit);
1437 __ jmp(exit);
1442 __ j(not_equal, exit);
1446 __ jmp(exit);
1451 __ j(not_equal, exit);
1471 Label exit;
1475 TestSmiMod(masm, &exit, 0x10, 1, 1);
1476 TestSmiMod(masm, &exit, 0x20, 1, 0);
1477 TestSmiMod(masm, &exit, 0x30, -1, 0);
1478 TestSmiMod(masm, &exit, 0x40, 0, 1);
1479 TestSmiMod(masm, &exit, 0x50, 0, -1);
1480 TestSmiMod(masm, &exit, 0x60, 4, 2);
1481 TestSmiMod(masm, &exit, 0x70, -4, 2);
1482 TestSmiMod(masm, &exit, 0x80, 4, -2);
1483 TestSmiMod(masm, &exit, 0x90, -4, -2);
1484 TestSmiMod(masm, &exit, 0xa0, 3, 2);
1485 TestSmiMod(masm, &exit, 0xb0, 3, 4);
1486 TestSmiMod(masm, &exit, 0xc0, 1, Smi::kMaxValue);
1487 TestSmiMod(masm, &exit, 0xd0, -1, Smi::kMaxValue);
1488 TestSmiMod(masm, &exit, 0xe0, Smi::kMaxValue, 1);
1489 TestSmiMod(masm, &exit, 0xf0, Smi::kMaxValue, Smi::kMaxValue);
1490 TestSmiMod(masm, &exit, 0x100, Smi::kMaxValue, -Smi::kMaxValue);
1491 TestSmiMod(masm, &exit, 0x110, Smi::kMaxValue, -1);
1492 TestSmiMod(masm, &exit, 0x120, Smi::kMinValue, 1);
1493 TestSmiMod(masm, &exit, 0x130, Smi::kMinValue, Smi::kMinValue);
1494 TestSmiMod(masm, &exit, 0x140, Smi::kMinValue, -1);
1497 __ bind(&exit);
1512 void TestSmiIndex(MacroAssembler* masm, Label* exit, int id, int x) {
1522 __ j(not_equal, exit);
1530 __ j(not_equal, exit);
1539 __ j(not_equal, exit);
1547 __ j(not_equal, exit);
1568 Label exit;
1570 TestSmiIndex(masm, &exit, 0x10, 0);
1571 TestSmiIndex(masm, &exit, 0x20, 1);
1572 TestSmiIndex(masm, &exit, 0x30, 100);
1573 TestSmiIndex(masm, &exit, 0x40, 1000);
1574 TestSmiIndex(masm, &exit, 0x50, Smi::kMaxValue);
1577 __ bind(&exit);
1589 void TestSelectNonSmi(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1594 __ SelectNonSmi(r9, rcx, rdx, exit);
1598 __ j(not_equal, exit);
1604 __ SelectNonSmi(r9, rcx, rdx, exit);
1608 __ j(not_equal, exit);
1617 __ jmp(exit);
1637 Label exit;
1639 TestSelectNonSmi(masm, &exit, 0x10, 0, 0);
1640 TestSelectNonSmi(masm, &exit, 0x20, 0, 1);
1641 TestSelectNonSmi(masm, &exit, 0x30, 1, 0);
1642 TestSelectNonSmi(masm, &exit, 0x40, 0, -1);
1643 TestSelectNonSmi(masm, &exit, 0x50, -1, 0);
1644 TestSelectNonSmi(masm, &exit, 0x60, -1, -1);
1645 TestSelectNonSmi(masm, &exit, 0x70, 1, 1);
1646 TestSelectNonSmi(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1647 TestSelectNonSmi(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1650 __ bind(&exit);
1662 void TestSmiAnd(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1673 __ j(not_equal, exit);
1677 __ j(not_equal, exit);
1682 __ j(not_equal, exit);
1688 __ j(not_equal, exit);
1692 __ j(not_equal, exit);
1697 __ j(not_equal, exit);
1716 Label exit;
1718 TestSmiAnd(masm, &exit, 0x10, 0, 0);
1719 TestSmiAnd(masm, &exit, 0x20, 0, 1);
1720 TestSmiAnd(masm, &exit, 0x30, 1, 0);
1721 TestSmiAnd(masm, &exit, 0x40, 0, -1);
1722 TestSmiAnd(masm, &exit, 0x50, -1, 0);
1723 TestSmiAnd(masm, &exit, 0x60, -1, -1);
1724 TestSmiAnd(masm, &exit, 0x70, 1, 1);
1725 TestSmiAnd(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1726 TestSmiAnd(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1727 TestSmiAnd(masm, &exit, 0xA0, Smi::kMinValue, -1);
1728 TestSmiAnd(masm, &exit, 0xB0, Smi::kMinValue, -1);
1731 __ bind(&exit);
1743 void TestSmiOr(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1754 __ j(not_equal, exit);
1758 __ j(not_equal, exit);
1763 __ j(not_equal, exit);
1769 __ j(not_equal, exit);
1773 __ j(not_equal, exit);
1778 __ j(not_equal, exit);
1797 Label exit;
1799 TestSmiOr(masm, &exit, 0x10, 0, 0);
1800 TestSmiOr(masm, &exit, 0x20, 0, 1);
1801 TestSmiOr(masm, &exit, 0x30, 1, 0);
1802 TestSmiOr(masm, &exit, 0x40, 0, -1);
1803 TestSmiOr(masm, &exit, 0x50, -1, 0);
1804 TestSmiOr(masm, &exit, 0x60, -1, -1);
1805 TestSmiOr(masm, &exit, 0x70, 1, 1);
1806 TestSmiOr(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1807 TestSmiOr(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1808 TestSmiOr(masm, &exit, 0xA0, Smi::kMinValue, -1);
1809 TestSmiOr(masm, &exit, 0xB0, 0x05555555, 0x01234567);
1810 TestSmiOr(masm, &exit, 0xC0, 0x05555555, 0x0fedcba9);
1811 TestSmiOr(masm, &exit, 0xD0, Smi::kMinValue, -1);
1814 __ bind(&exit);
1826 void TestSmiXor(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1837 __ j(not_equal, exit);
1841 __ j(not_equal, exit);
1846 __ j(not_equal, exit);
1852 __ j(not_equal, exit);
1856 __ j(not_equal, exit);
1861 __ j(not_equal, exit);
1880 Label exit;
1882 TestSmiXor(masm, &exit, 0x10, 0, 0);
1883 TestSmiXor(masm, &exit, 0x20, 0, 1);
1884 TestSmiXor(masm, &exit, 0x30, 1, 0);
1885 TestSmiXor(masm, &exit, 0x40, 0, -1);
1886 TestSmiXor(masm, &exit, 0x50, -1, 0);
1887 TestSmiXor(masm, &exit, 0x60, -1, -1);
1888 TestSmiXor(masm, &exit, 0x70, 1, 1);
1889 TestSmiXor(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1890 TestSmiXor(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1891 TestSmiXor(masm, &exit, 0xA0, Smi::kMinValue, -1);
1892 TestSmiXor(masm, &exit, 0xB0, 0x5555555, 0x01234567);
1893 TestSmiXor(masm, &exit, 0xC0, 0x5555555, 0x0fedcba9);
1894 TestSmiXor(masm, &exit, 0xD0, Smi::kMinValue, -1);
1897 __ bind(&exit);
1909 void TestSmiNot(MacroAssembler* masm, Label* exit, int id, int x) {
1919 __ j(not_equal, exit);
1923 __ j(not_equal, exit);
1928 __ j(not_equal, exit);
1947 Label exit;
1949 TestSmiNot(masm, &exit, 0x10, 0);
1950 TestSmiNot(masm, &exit, 0x20, 1);
1951 TestSmiNot(masm, &exit, 0x30, -1);
1952 TestSmiNot(masm, &exit, 0x40, 127);
1953 TestSmiNot(masm, &exit, 0x50, 65535);
1954 TestSmiNot(masm, &exit, 0x60, Smi::kMinValue);
1955 TestSmiNot(masm, &exit, 0x70, Smi::kMaxValue);
1956 TestSmiNot(masm, &exit, 0x80, 0x05555555);
1959 __ bind(&exit);
1971 void TestSmiShiftLeft(MacroAssembler* masm, Label* exit, int id, int x) {
1986 __ j(not_equal, exit);
1994 __ j(not_equal, exit);
2003 __ j(not_equal, exit);
2012 __ j(not_equal, exit);
2021 __ j(not_equal, exit);
2043 Label exit;
2045 TestSmiShiftLeft(masm, &exit, 0x10, 0);
2046 TestSmiShiftLeft(masm, &exit, 0x50, 1);
2047 TestSmiShiftLeft(masm, &exit, 0x90, 127);
2048 TestSmiShiftLeft(masm, &exit, 0xD0, 65535);
2049 TestSmiShiftLeft(masm, &exit, 0x110, Smi::kMaxValue);
2050 TestSmiShiftLeft(masm, &exit, 0x150, Smi::kMinValue);
2051 TestSmiShiftLeft(masm, &exit, 0x190, -1);
2054 __ bind(&exit);
2067 Label* exit,
2079 __ SmiShiftLogicalRightConstant(r9, rcx, shift, exit);
2083 __ j(not_equal, exit);
2088 __ SmiShiftLogicalRight(r9, rdx, rcx, exit);
2092 __ j(not_equal, exit);
2097 __ SmiShiftLogicalRight(r9, rdx, r11, exit);
2101 __ j(not_equal, exit);
2110 __ jmp(exit);
2115 __ j(not_equal, exit);
2121 __ jmp(exit);
2126 __ j(not_equal, exit);
2149 Label exit;
2151 TestSmiShiftLogicalRight(masm, &exit, 0x10, 0);
2152 TestSmiShiftLogicalRight(masm, &exit, 0x30, 1);
2153 TestSmiShiftLogicalRight(masm, &exit, 0x50, 127);
2154 TestSmiShiftLogicalRight(masm, &exit, 0x70, 65535);
2155 TestSmiShiftLogicalRight(masm, &exit, 0x90, Smi::kMaxValue);
2156 TestSmiShiftLogicalRight(masm, &exit, 0xB0, Smi::kMinValue);
2157 TestSmiShiftLogicalRight(masm, &exit, 0xD0, -1);
2160 __ bind(&exit);
2173 Label* exit,
2188 __ j(not_equal, exit);
2196 __ j(not_equal, exit);
2218 Label exit;
2220 TestSmiShiftArithmeticRight(masm, &exit, 0x10, 0);
2221 TestSmiShiftArithmeticRight(masm, &exit, 0x20, 1);
2222 TestSmiShiftArithmeticRight(masm, &exit, 0x30, 127);
2223 TestSmiShiftArithmeticRight(masm, &exit, 0x40, 65535);
2224 TestSmiShiftArithmeticRight(masm, &exit, 0x50, Smi::kMaxValue);
2225 TestSmiShiftArithmeticRight(masm, &exit, 0x60, Smi::kMinValue);
2226 TestSmiShiftArithmeticRight(masm, &exit, 0x70, -1);
2229 __ bind(&exit);
2241 void TestPositiveSmiPowerUp(MacroAssembler* masm, Label* exit, int id, int x) {
2254 __ j(not_equal, exit);
2257 __ j(not_equal, exit);
2261 __ j(not_equal, exit);
2282 Label exit;
2284 TestPositiveSmiPowerUp(masm, &exit, 0x20, 0);
2285 TestPositiveSmiPowerUp(masm, &exit, 0x40, 1);
2286 TestPositiveSmiPowerUp(masm, &exit, 0x60, 127);
2287 TestPositiveSmiPowerUp(masm, &exit, 0x80, 128);
2288 TestPositiveSmiPowerUp(masm, &exit, 0xA0, 255);
2289 TestPositiveSmiPowerUp(masm, &exit, 0xC0, 256);
2290 TestPositiveSmiPowerUp(masm, &exit, 0x100, 65535);
2291 TestPositiveSmiPowerUp(masm, &exit, 0x120, 65536);
2292 TestPositiveSmiPowerUp(masm, &exit, 0x140, Smi::kMaxValue);
2295 __ bind(&exit);
2324 Label exit;
2358 __ j(not_equal, &exit);
2365 __ j(not_equal, &exit);
2373 __ j(not_equal, &exit);
2378 __ j(not_equal, &exit);
2384 __ j(not_equal, &exit);
2392 __ j(not_equal, &exit);
2397 __ j(not_equal, &exit);
2403 __ j(not_equal, &exit);
2412 __ j(not_equal, &exit);
2418 __ j(not_equal, &exit);
2426 __ j(not_equal, &exit);
2432 __ j(not_equal, &exit);
2437 __ j(not_equal, &exit);
2445 __ j(not_equal, &exit);
2450 __ j(not_equal, &exit);
2455 __ j(not_equal, &exit);
2463 __ j(not_equal, &exit);
2468 __ j(not_equal, &exit);
2473 __ j(not_equal, &exit);
2481 __ j(not_equal, &exit);
2486 __ j(not_equal, &exit);
2492 __ j(not_equal, &exit);
2500 __ j(not_equal, &exit);
2505 __ j(not_equal, &exit);
2510 __ j(not_equal, &exit);
2518 __ j(not_equal, &exit);
2523 __ j(not_equal, &exit);
2528 __ j(not_equal, &exit);
2533 __ j(not_equal, &exit);
2538 __ j(not_equal, &exit);
2546 __ j(not_equal, &exit);
2551 __ j(not_equal, &exit);
2556 __ j(not_equal, &exit);
2561 __ j(not_equal, &exit);
2566 __ j(not_equal, &exit);
2575 __ j(not_equal, &exit);
2580 __ j(not_equal, &exit);
2585 __ j(not_equal, &exit);
2590 __ j(not_equal, &exit);
2595 __ j(not_equal, &exit);
2601 __ j(not_equal, &exit);
2606 __ j(not_equal, &exit);
2614 __ j(not_equal, &exit);
2619 __ j(not_equal, &exit);
2624 __ j(not_equal, &exit);
2629 __ j(not_equal, &exit);
2634 __ j(not_equal, &exit);
2639 __ j(not_equal, &exit);
2645 __ bind(&exit);
2678 Label exit;
2688 __ j(not_equal, &exit);
2691 __ j(not_equal, &exit);
2701 __ j(not_equal, &exit);
2704 __ j(not_equal, &exit);
2714 __ j(not_equal, &exit);
2717 __ j(not_equal, &exit);
2727 __ j(not_equal, &exit);
2730 __ j(not_equal, &exit);
2740 __ j(not_equal, &exit);
2743 __ j(not_equal, &exit);
2753 __ j(not_equal, &exit);
2756 __ j(not_equal, &exit);
2766 __ j(not_equal, &exit);
2770 __ j(not_equal, &exit);
2780 __ j(not_equal, &exit);
2784 __ j(not_equal, &exit);
2794 __ j(not_equal, &exit);
2797 __ j(not_equal, &exit);
2800 __ bind(&exit);