Home | History | Annotate | Download | only in cctest

Lines Matching full:exit

118 static void TestMoveSmi(MacroAssembler* masm, Label* exit, int id, Smi* value) {
123 __ j(not_equal, exit);
139 Label exit;
141 TestMoveSmi(masm, &exit, 1, Smi::FromInt(0));
142 TestMoveSmi(masm, &exit, 2, Smi::FromInt(127));
143 TestMoveSmi(masm, &exit, 3, Smi::FromInt(128));
144 TestMoveSmi(masm, &exit, 4, Smi::FromInt(255));
145 TestMoveSmi(masm, &exit, 5, Smi::FromInt(256));
146 TestMoveSmi(masm, &exit, 6, Smi::FromInt(Smi::kMaxValue));
147 TestMoveSmi(masm, &exit, 7, Smi::FromInt(-1));
148 TestMoveSmi(masm, &exit, 8, Smi::FromInt(-128));
149 TestMoveSmi(masm, &exit, 9, Smi::FromInt(-129));
150 TestMoveSmi(masm, &exit, 10, Smi::FromInt(-256));
151 TestMoveSmi(masm, &exit, 11, Smi::FromInt(-257));
152 TestMoveSmi(masm, &exit, 12, Smi::FromInt(Smi::kMinValue));
155 __ bind(&exit);
166 void TestSmiCompare(MacroAssembler* masm, Label* exit, int id, int x, int y) {
174 __ j(greater_equal, exit);
177 __ j(less_equal, exit);
181 __ j(not_equal, exit);
185 __ j(not_equal, exit);
188 __ j(not_equal, exit);
194 __ j(greater_equal, exit);
198 __ j(less_equal, exit);
203 __ j(not_equal, exit);
206 __ j(not_equal, exit);
225 Label exit;
227 TestSmiCompare(masm, &exit, 0x10, 0, 0);
228 TestSmiCompare(masm, &exit, 0x20, 0, 1);
229 TestSmiCompare(masm, &exit, 0x30, 1, 0);
230 TestSmiCompare(masm, &exit, 0x40, 1, 1);
231 TestSmiCompare(masm, &exit, 0x50, 0, -1);
232 TestSmiCompare(masm, &exit, 0x60, -1, 0);
233 TestSmiCompare(masm, &exit, 0x70, -1, -1);
234 TestSmiCompare(masm, &exit, 0x80, 0, Smi::kMinValue);
235 TestSmiCompare(masm, &exit, 0x90, Smi::kMinValue, 0);
236 TestSmiCompare(masm, &exit, 0xA0, 0, Smi::kMaxValue);
237 TestSmiCompare(masm, &exit, 0xB0, Smi::kMaxValue, 0);
238 TestSmiCompare(masm, &exit, 0xC0, -1, Smi::kMinValue);
239 TestSmiCompare(masm, &exit, 0xD0, Smi::kMinValue, -1);
240 TestSmiCompare(masm, &exit, 0xE0, -1, Smi::kMaxValue);
241 TestSmiCompare(masm, &exit, 0xF0, Smi::kMaxValue, -1);
242 TestSmiCompare(masm, &exit, 0x100, Smi::kMinValue, Smi::kMinValue);
243 TestSmiCompare(masm, &exit, 0x110, Smi::kMinValue, Smi::kMaxValue);
244 TestSmiCompare(masm, &exit, 0x120, Smi::kMaxValue, Smi::kMinValue);
245 TestSmiCompare(masm, &exit, 0x130, Smi::kMaxValue, Smi::kMaxValue);
248 __ bind(&exit);
272 Label exit;
279 __ j(not_equal, &exit);
286 __ j(not_equal, &exit);
293 __ j(not_equal, &exit);
300 __ j(not_equal, &exit);
307 __ j(not_equal, &exit);
316 __ j(not_equal, &exit);
323 __ j(not_equal, &exit);
330 __ j(not_equal, &exit);
337 __ j(not_equal, &exit);
344 __ j(not_equal, &exit);
348 __ bind(&exit);
360 Label* exit,
372 __ j(not_equal, exit);
376 __ j(not_equal, exit);
381 __ j(not_equal, exit);
397 Label exit;
401 TestI64PlusConstantToSmi(masm, &exit, 0x10, 0, 0);
402 TestI64PlusConstantToSmi(masm, &exit, 0x20, 0, 1);
403 TestI64PlusConstantToSmi(masm, &exit, 0x30, 1, 0);
404 TestI64PlusConstantToSmi(masm, &exit, 0x40, Smi::kMaxValue - 5, 5);
405 TestI64PlusConstantToSmi(masm, &exit, 0x50, Smi::kMinValue + 5, 5);
406 TestI64PlusConstantToSmi(masm, &exit, 0x60, twice_max, -Smi::kMaxValue);
407 TestI64PlusConstantToSmi(masm, &exit, 0x70, -twice_max, Smi::kMaxValue);
408 TestI64PlusConstantToSmi(masm, &exit, 0x80, 0, Smi::kMinValue);
409 TestI64PlusConstantToSmi(masm, &exit, 0x90, 0, Smi::kMaxValue);
410 TestI64PlusConstantToSmi(masm, &exit, 0xA0, Smi::kMinValue, 0);
411 TestI64PlusConstantToSmi(masm, &exit, 0xB0, Smi::kMaxValue, 0);
412 TestI64PlusConstantToSmi(masm, &exit, 0xC0, twice_max, Smi::kMinValue);
415 __ bind(&exit);
438 Label exit;
448 __ j(NegateCondition(cond), &exit);
453 __ j(cond, &exit);
459 __ j(NegateCondition(cond), &exit);
464 __ j(cond, &exit);
470 __ j(NegateCondition(cond), &exit);
475 __ j(cond, &exit);
481 __ j(NegateCondition(cond), &exit);
486 __ j(cond, &exit);
494 __ j(NegateCondition(cond), &exit);
499 __ j(cond, &exit);
505 __ j(cond, &exit);
511 __ j(cond, &exit);
516 __ j(cond, &exit);
522 __ j(NegateCondition(cond), &exit);
527 __ j(cond, &exit);
535 __ j(cond, &exit);
541 __ j(cond, &exit);
547 __ j(NegateCondition(cond), &exit);
553 __ j(cond, &exit);
563 __ j(NegateCondition(cond), &exit);
568 __ j(cond, &exit);
573 __ j(cond, &exit);
578 __ j(cond, &exit);
582 __ j(NegateCondition(cond), &exit);
586 __ j(cond, &exit);
592 __ j(NegateCondition(cond), &exit);
597 __ j(NegateCondition(cond), &exit);
602 __ j(NegateCondition(cond), &exit);
607 __ j(NegateCondition(cond), &exit);
612 __ bind(&exit);
624 void TestSmiNeg(MacroAssembler* masm, Label* exit, int id, int x) {
630 __ SmiNeg(r9, rcx, exit);
634 __ j(not_equal, exit);
637 __ SmiNeg(rcx, rcx, exit);
641 __ j(not_equal, exit);
649 __ jmp(exit);
653 __ j(not_equal, exit);
657 __ j(not_equal, exit);
661 __ jmp(exit);
665 __ j(not_equal, exit);
683 Label exit;
685 TestSmiNeg(masm, &exit, 0x10, 0);
686 TestSmiNeg(masm, &exit, 0x20, 1);
687 TestSmiNeg(masm, &exit, 0x30, -1);
688 TestSmiNeg(masm, &exit, 0x40, 127);
689 TestSmiNeg(masm, &exit, 0x50, 65535);
690 TestSmiNeg(masm, &exit, 0x60, Smi::kMinValue);
691 TestSmiNeg(masm, &exit, 0x70, Smi::kMaxValue);
692 TestSmiNeg(masm, &exit, 0x80, -Smi::kMaxValue);
695 __ bind(&exit);
709 Label* exit,
721 __ SmiAdd(r9, rcx, rdx, exit);
723 __ j(not_equal, exit);
726 __ SmiAdd(rcx, rcx, rdx, exit); \
728 __ j(not_equal, exit);
736 __ j(not_equal, exit);
740 __ j(not_equal, exit);
746 __ SmiAddConstant(r9, rcx, Smi::FromInt(second), exit);
748 __ j(not_equal, exit);
751 __ SmiAddConstant(rcx, rcx, Smi::FromInt(second), exit);
753 __ j(not_equal, exit);
768 Label exit;
771 SmiAddTest(masm, &exit, 0x10, 1, 2);
772 SmiAddTest(masm, &exit, 0x20, 1, -2);
773 SmiAddTest(masm, &exit, 0x30, -1, 2);
774 SmiAddTest(masm, &exit, 0x40, -1, -2);
775 SmiAddTest(masm, &exit, 0x50, 0x1000, 0x2000);
776 SmiAddTest(masm, &exit, 0x60, Smi::kMinValue, 5);
777 SmiAddTest(masm, &exit, 0x70, Smi::kMaxValue, -5);
778 SmiAddTest(masm, &exit, 0x80, Smi::kMaxValue, Smi::kMinValue);
781 __ bind(&exit);
793 Label* exit,
802 __ SmiSub(r9, rcx, rdx, exit);
804 __ j(not_equal, exit);
807 __ SmiSub(rcx, rcx, rdx, exit);
809 __ j(not_equal, exit);
816 __ j(not_equal, exit);
821 __ j(not_equal, exit);
826 __ SmiSubConstant(r9, rcx, Smi::FromInt(second), exit);
828 __ j(not_equal, exit);
831 __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), exit);
833 __ j(not_equal, exit);
837 Label* exit,
852 __ jmp(exit);
856 __ j(not_equal, exit);
863 __ jmp(exit);
867 __ j(not_equal, exit);
875 __ jmp(exit);
879 __ j(not_equal, exit);
886 __ jmp(exit);
890 __ j(not_equal, exit);
899 __ jmp(exit);
903 __ j(not_equal, exit);
910 __ jmp(exit);
914 __ j(not_equal, exit);
922 __ jmp(exit);
926 __ j(not_equal, exit);
933 __ jmp(exit);
937 __ j(not_equal, exit);
955 Label exit;
957 SmiSubTest(masm, &exit, 0x10, 1, 2);
958 SmiSubTest(masm, &exit, 0x20, 1, -2);
959 SmiSubTest(masm, &exit, 0x30, -1, 2);
960 SmiSubTest(masm, &exit, 0x40, -1, -2);
961 SmiSubTest(masm, &exit, 0x50, 0x1000, 0x2000);
962 SmiSubTest(masm, &exit, 0x60, Smi::kMinValue, -5);
963 SmiSubTest(masm, &exit, 0x70, Smi::kMaxValue, 5);
964 SmiSubTest(masm, &exit, 0x80, -Smi::kMaxValue, Smi::kMinValue);
965 SmiSubTest(masm, &exit, 0x90, 0, Smi::kMaxValue);
967 SmiSubOverflowTest(masm, &exit, 0xA0, 1);
968 SmiSubOverflowTest(masm, &exit, 0xB0, 1024);
969 SmiSubOverflowTest(masm, &exit, 0xC0, Smi::kMaxValue);
970 SmiSubOverflowTest(masm, &exit, 0xD0, -2);
971 SmiSubOverflowTest(masm, &exit, 0xE0, -42000);
972 SmiSubOverflowTest(masm, &exit, 0xF0, Smi::kMinValue);
973 SmiSubOverflowTest(masm, &exit, 0x100, 0);
976 __ bind(&exit);
988 void TestSmiMul(MacroAssembler* masm, Label* exit, int id, int x, int y) {
997 __ SmiMul(r9, rcx, rdx, exit);
1000 __ j(not_equal, exit);
1003 __ j(not_equal, exit);
1006 __ SmiMul(rcx, rcx, rdx, exit);
1008 __ j(not_equal, exit);
1013 __ jmp(exit);
1017 __ j(not_equal, exit);
1020 __ jmp(exit);
1025 // __ j(not_equal, exit);
1042 Label exit;
1044 TestSmiMul(masm, &exit, 0x10, 0, 0);
1045 TestSmiMul(masm, &exit, 0x20, -1, 0);
1046 TestSmiMul(masm, &exit, 0x30, 0, -1);
1047 TestSmiMul(masm, &exit, 0x40, -1, -1);
1048 TestSmiMul(masm, &exit, 0x50, 0x10000, 0x10000);
1049 TestSmiMul(masm, &exit, 0x60, 0x10000, 0xffff);
1050 TestSmiMul(masm, &exit, 0x70, 0x10000, 0xffff);
1051 TestSmiMul(masm, &exit, 0x80, Smi::kMaxValue, -1);
1052 TestSmiMul(masm, &exit, 0x90, Smi::kMaxValue, -2);
1053 TestSmiMul(masm, &exit, 0xa0, Smi::kMaxValue, 2);
1054 TestSmiMul(masm, &exit, 0xb0, (Smi::kMaxValue / 2), 2);
1055 TestSmiMul(masm, &exit, 0xc0, (Smi::kMaxValue / 2) + 1, 2);
1056 TestSmiMul(masm, &exit, 0xd0, (Smi::kMinValue / 2), 2);
1057 TestSmiMul(masm, &exit, 0xe0, (Smi::kMinValue / 2) - 1, 2);
1060 __ bind(&exit);
1071 void TestSmiDiv(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1088 __ SmiDiv(r9, rcx, r12, exit);
1092 __ j(not_equal, exit);
1098 __ j(not_equal, exit);
1101 __ SmiDiv(rcx, rcx, r12, exit);
1105 __ j(not_equal, exit);
1113 __ jmp(exit);
1118 __ j(not_equal, exit);
1122 __ jmp(exit);
1127 exit);
1145 Label exit;
1149 TestSmiDiv(masm, &exit, 0x10, 1, 1);
1150 TestSmiDiv(masm, &exit, 0x20, 1, 0);
1151 TestSmiDiv(masm, &exit, 0x30, -1, 0);
1152 TestSmiDiv(masm, &exit, 0x40, 0, 1);
1153 TestSmiDiv(masm, &exit, 0x50, 0, -1);
1154 TestSmiDiv(masm, &exit, 0x60, 4, 2);
1155 TestSmiDiv(masm, &exit, 0x70, -4, 2);
1156 TestSmiDiv(masm, &exit, 0x80, 4, -2);
1157 TestSmiDiv(masm, &exit, 0x90, -4, -2);
1158 TestSmiDiv(masm, &exit, 0xa0, 3, 2);
1159 TestSmiDiv(masm, &exit, 0xb0, 3, 4);
1160 TestSmiDiv(masm, &exit, 0xc0, 1, Smi::kMaxValue);
1161 TestSmiDiv(masm, &exit, 0xd0, -1, Smi::kMaxValue);
1162 TestSmiDiv(masm, &exit, 0xe0, Smi::kMaxValue, 1);
1163 TestSmiDiv(masm, &exit, 0xf0, Smi::kMaxValue, Smi::kMaxValue);
1164 TestSmiDiv(masm, &exit, 0x100, Smi::kMaxValue, -Smi::kMaxValue);
1165 TestSmiDiv(masm, &exit, 0x110, Smi::kMaxValue, -1);
1166 TestSmiDiv(masm, &exit, 0x120, Smi::kMinValue, 1);
1167 TestSmiDiv(masm, &exit, 0x130, Smi::kMinValue, Smi::kMinValue);
1168 TestSmiDiv(masm, &exit, 0x140, Smi::kMinValue, -1);
1171 __ bind(&exit);
1185 void TestSmiMod(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1198 __ SmiMod(r9, rcx, r12, exit);
1202 __ j(not_equal, exit);
1206 __ j(not_equal, exit);
1209 __ SmiMod(rcx, rcx, r12, exit);
1213 __ j(not_equal, exit);
1220 __ jmp(exit);
1225 __ j(not_equal, exit);
1229 __ jmp(exit);
1234 __ j(not_equal, exit);
1252 Label exit;
1256 TestSmiMod(masm, &exit, 0x10, 1, 1);
1257 TestSmiMod(masm, &exit, 0x20, 1, 0);
1258 TestSmiMod(masm, &exit, 0x30, -1, 0);
1259 TestSmiMod(masm, &exit, 0x40, 0, 1);
1260 TestSmiMod(masm, &exit, 0x50, 0, -1);
1261 TestSmiMod(masm, &exit, 0x60, 4, 2);
1262 TestSmiMod(masm, &exit, 0x70, -4, 2);
1263 TestSmiMod(masm, &exit, 0x80, 4, -2);
1264 TestSmiMod(masm, &exit, 0x90, -4, -2);
1265 TestSmiMod(masm, &exit, 0xa0, 3, 2);
1266 TestSmiMod(masm, &exit, 0xb0, 3, 4);
1267 TestSmiMod(masm, &exit, 0xc0, 1, Smi::kMaxValue);
1268 TestSmiMod(masm, &exit, 0xd0, -1, Smi::kMaxValue);
1269 TestSmiMod(masm, &exit, 0xe0, Smi::kMaxValue, 1);
1270 TestSmiMod(masm, &exit, 0xf0, Smi::kMaxValue, Smi::kMaxValue);
1271 TestSmiMod(masm, &exit, 0x100, Smi::kMaxValue, -Smi::kMaxValue);
1272 TestSmiMod(masm, &exit, 0x110, Smi::kMaxValue, -1);
1273 TestSmiMod(masm, &exit, 0x120, Smi::kMinValue, 1);
1274 TestSmiMod(masm, &exit, 0x130, Smi::kMinValue, Smi::kMinValue);
1275 TestSmiMod(masm, &exit, 0x140, Smi::kMinValue, -1);
1278 __ bind(&exit);
1292 void TestSmiIndex(MacroAssembler* masm, Label* exit, int id, int x) {
1302 __ j(not_equal, exit);
1310 __ j(not_equal, exit);
1319 __ j(not_equal, exit);
1327 __ j(not_equal, exit);
1345 Label exit;
1347 TestSmiIndex(masm, &exit, 0x10, 0);
1348 TestSmiIndex(masm, &exit, 0x20, 1);
1349 TestSmiIndex(masm, &exit, 0x30, 100);
1350 TestSmiIndex(masm, &exit, 0x40, 1000);
1351 TestSmiIndex(masm, &exit, 0x50, Smi::kMaxValue);
1354 __ bind(&exit);
1365 void TestSelectNonSmi(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1370 __ SelectNonSmi(r9, rcx, rdx, exit);
1374 __ j(not_equal, exit);
1380 __ SelectNonSmi(r9, rcx, rdx, exit);
1384 __ j(not_equal, exit);
1393 __ jmp(exit);
1411 Label exit;
1413 TestSelectNonSmi(masm, &exit, 0x10, 0, 0);
1414 TestSelectNonSmi(masm, &exit, 0x20, 0, 1);
1415 TestSelectNonSmi(masm, &exit, 0x30, 1, 0);
1416 TestSelectNonSmi(masm, &exit, 0x40, 0, -1);
1417 TestSelectNonSmi(masm, &exit, 0x50, -1, 0);
1418 TestSelectNonSmi(masm, &exit, 0x60, -1, -1);
1419 TestSelectNonSmi(masm, &exit, 0x70, 1, 1);
1420 TestSelectNonSmi(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1421 TestSelectNonSmi(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1424 __ bind(&exit);
1435 void TestSmiAnd(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1446 __ j(not_equal, exit);
1450 __ j(not_equal, exit);
1455 __ j(not_equal, exit);
1461 __ j(not_equal, exit);
1465 __ j(not_equal, exit);
1470 __ j(not_equal, exit);
1487 Label exit;
1489 TestSmiAnd(masm, &exit, 0x10, 0, 0);
1490 TestSmiAnd(masm, &exit, 0x20, 0, 1);
1491 TestSmiAnd(masm, &exit, 0x30, 1, 0);
1492 TestSmiAnd(masm, &exit, 0x40, 0, -1);
1493 TestSmiAnd(masm, &exit, 0x50, -1, 0);
1494 TestSmiAnd(masm, &exit, 0x60, -1, -1);
1495 TestSmiAnd(masm, &exit, 0x70, 1, 1);
1496 TestSmiAnd(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1497 TestSmiAnd(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1498 TestSmiAnd(masm, &exit, 0xA0, Smi::kMinValue, -1);
1499 TestSmiAnd(masm, &exit, 0xB0, Smi::kMinValue, -1);
1502 __ bind(&exit);
1513 void TestSmiOr(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1524 __ j(not_equal, exit);
1528 __ j(not_equal, exit);
1533 __ j(not_equal, exit);
1539 __ j(not_equal, exit);
1543 __ j(not_equal, exit);
1548 __ j(not_equal, exit);
1565 Label exit;
1567 TestSmiOr(masm, &exit, 0x10, 0, 0);
1568 TestSmiOr(masm, &exit, 0x20, 0, 1);
1569 TestSmiOr(masm, &exit, 0x30, 1, 0);
1570 TestSmiOr(masm, &exit, 0x40, 0, -1);
1571 TestSmiOr(masm, &exit, 0x50, -1, 0);
1572 TestSmiOr(masm, &exit, 0x60, -1, -1);
1573 TestSmiOr(masm, &exit, 0x70, 1, 1);
1574 TestSmiOr(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1575 TestSmiOr(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1576 TestSmiOr(masm, &exit, 0xA0, Smi::kMinValue, -1);
1577 TestSmiOr(masm, &exit, 0xB0, 0x05555555, 0x01234567);
1578 TestSmiOr(masm, &exit, 0xC0, 0x05555555, 0x0fedcba9);
1579 TestSmiOr(masm, &exit, 0xD0, Smi::kMinValue, -1);
1582 __ bind(&exit);
1593 void TestSmiXor(MacroAssembler* masm, Label* exit, int id, int x, int y) {
1604 __ j(not_equal, exit);
1608 __ j(not_equal, exit);
1613 __ j(not_equal, exit);
1619 __ j(not_equal, exit);
1623 __ j(not_equal, exit);
1628 __ j(not_equal, exit);
1645 Label exit;
1647 TestSmiXor(masm, &exit, 0x10, 0, 0);
1648 TestSmiXor(masm, &exit, 0x20, 0, 1);
1649 TestSmiXor(masm, &exit, 0x30, 1, 0);
1650 TestSmiXor(masm, &exit, 0x40, 0, -1);
1651 TestSmiXor(masm, &exit, 0x50, -1, 0);
1652 TestSmiXor(masm, &exit, 0x60, -1, -1);
1653 TestSmiXor(masm, &exit, 0x70, 1, 1);
1654 TestSmiXor(masm, &exit, 0x80, Smi::kMinValue, Smi::kMaxValue);
1655 TestSmiXor(masm, &exit, 0x90, Smi::kMinValue, Smi::kMinValue);
1656 TestSmiXor(masm, &exit, 0xA0, Smi::kMinValue, -1);
1657 TestSmiXor(masm, &exit, 0xB0, 0x5555555, 0x01234567);
1658 TestSmiXor(masm, &exit, 0xC0, 0x5555555, 0x0fedcba9);
1659 TestSmiXor(masm, &exit, 0xD0, Smi::kMinValue, -1);
1662 __ bind(&exit);
1673 void TestSmiNot(MacroAssembler* masm, Label* exit, int id, int x) {
1683 __ j(not_equal, exit);
1687 __ j(not_equal, exit);
1692 __ j(not_equal, exit);
1709 Label exit;
1711 TestSmiNot(masm, &exit, 0x10, 0);
1712 TestSmiNot(masm, &exit, 0x20, 1);
1713 TestSmiNot(masm, &exit, 0x30, -1);
1714 TestSmiNot(masm, &exit, 0x40, 127);
1715 TestSmiNot(masm, &exit, 0x50, 65535);
1716 TestSmiNot(masm, &exit, 0x60, Smi::kMinValue);
1717 TestSmiNot(masm, &exit
1718 TestSmiNot(masm, &exit, 0x80, 0x05555555);
1721 __ bind(&exit);
1732 void TestSmiShiftLeft(MacroAssembler* masm, Label* exit, int id, int x) {
1743 __ SmiShiftLeftConstant(r9, rcx, shift, exit);
1747 __ j(not_equal, exit);
1751 __ SmiShiftLeftConstant(rcx, rcx, shift, exit);
1755 __ j(not_equal, exit);
1760 __ SmiShiftLeft(r9, rdx, rcx, exit);
1764 __ j(not_equal, exit);
1769 __ SmiShiftLeft(r9, rdx, r11, exit);
1773 __ j(not_equal, exit);
1778 __ SmiShiftLeft(rdx, rdx, r11, exit);
1782 __ j(not_equal, exit);
1791 __ jmp(exit);
1796 __ j(not_equal, exit);
1801 __ jmp(exit);
1806 __ j(not_equal, exit);
1812 __ jmp(exit);
1817 __ j(not_equal, exit);
1824 __ jmp(exit);
1829 __ j(not_equal, exit);
1850 Label exit;
1852 TestSmiShiftLeft(masm, &exit, 0x10, 0);
1853 TestSmiShiftLeft(masm, &exit, 0x50, 1);
1854 TestSmiShiftLeft(masm, &exit, 0x90, 127);
1855 TestSmiShiftLeft(masm, &exit, 0xD0, 65535);
1856 TestSmiShiftLeft(masm, &exit, 0x110, Smi::kMaxValue);
1857 TestSmiShiftLeft(masm, &exit, 0x150, Smi::kMinValue);
1858 TestSmiShiftLeft(masm, &exit, 0x190, -1);
1861 __ bind(&exit);
1873 Label* exit,
1885 __ SmiShiftLogicalRightConstant(r9, rcx, shift, exit);
1889 __ j(not_equal, exit);
1894 __ SmiShiftLogicalRight(r9, rdx, rcx, exit);
1898 __ j(not_equal, exit);
1903 __ SmiShiftLogicalRight(r9, rdx, r11, exit);
1907 __ j(not_equal, exit);
1916 __ jmp(exit);
1921 __ j(not_equal, exit);
1927 __ jmp(exit);
1932 __ j(not_equal, exit);
1953 Label exit;
1955 TestSmiShiftLogicalRight(masm, &exit, 0x10, 0);
1956 TestSmiShiftLogicalRight(masm, &exit, 0x30, 1);
1957 TestSmiShiftLogicalRight(masm, &exit, 0x50, 127);
1958 TestSmiShiftLogicalRight(masm, &exit, 0x70, 65535);
1959 TestSmiShiftLogicalRight(masm, &exit, 0x90, Smi::kMaxValue);
1960 TestSmiShiftLogicalRight(masm, &exit, 0xB0, Smi::kMinValue);
1961 TestSmiShiftLogicalRight(masm, &exit, 0xD0, -1);
1964 __ bind(&exit);
1976 Label* exit,
1991 __ j(not_equal, exit);
1999 __ j(not_equal, exit);
2019 Label exit;
2021 TestSmiShiftArithmeticRight(masm, &exit, 0x10, 0);
2022 TestSmiShiftArithmeticRight(masm, &exit, 0x20, 1);
2023 TestSmiShiftArithmeticRight(masm, &exit, 0x30, 127);
2024 TestSmiShiftArithmeticRight(masm, &exit, 0x40, 65535);
2025 TestSmiShiftArithmeticRight(masm, &exit, 0x50, Smi::kMaxValue);
2026 TestSmiShiftArithmeticRight(masm, &exit, 0x60, Smi::kMinValue);
2027 TestSmiShiftArithmeticRight(masm, &exit, 0x70, -1);
2030 __ bind(&exit);
2041 void TestPositiveSmiPowerUp(MacroAssembler* masm, Label* exit, int id, int x) {
2054 __ j(not_equal, exit);
2057 __ j(not_equal, exit);
2061 __ j(not_equal, exit);
2080 Label exit;
2082 TestPositiveSmiPowerUp(masm, &exit, 0x20, 0);
2083 TestPositiveSmiPowerUp(masm, &exit, 0x40, 1);
2084 TestPositiveSmiPowerUp(masm, &exit, 0x60, 127);
2085 TestPositiveSmiPowerUp(masm, &exit, 0x80, 128);
2086 TestPositiveSmiPowerUp(masm, &exit, 0xA0, 255);
2087 TestPositiveSmiPowerUp(masm, &exit, 0xC0, 256);
2088 TestPositiveSmiPowerUp(masm, &exit, 0x100, 65535);
2089 TestPositiveSmiPowerUp(masm, &exit, 0x120, 65536);
2090 TestPositiveSmiPowerUp(masm, &exit, 0x140, Smi::kMaxValue);
2093 __ bind(&exit);