| Index: runtime/vm/assembler_mips_test.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_mips_test.cc (revision 24149)
|
| +++ runtime/vm/assembler_mips_test.cc (working copy)
|
| @@ -192,36 +192,6 @@
|
| }
|
|
|
|
|
| -ASSEMBLER_TEST_GENERATE(Divu_zero, assembler) {
|
| - __ addiu(R1, ZR, Immediate(27));
|
| - __ addiu(R2, ZR, Immediate(0));
|
| - __ divu(R1, R2);
|
| - __ mflo(V0);
|
| - __ jr(RA);
|
| -}
|
| -
|
| -
|
| -ASSEMBLER_TEST_RUN(Divu_zero, test) {
|
| - typedef int (*SimpleCode)();
|
| - EXPECT_EQ(0, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
|
| -}
|
| -
|
| -
|
| -ASSEMBLER_TEST_GENERATE(Div_zero, assembler) {
|
| - __ addiu(R1, ZR, Immediate(27));
|
| - __ addiu(R2, ZR, Immediate(0));
|
| - __ div(R1, R2);
|
| - __ mflo(V0);
|
| - __ jr(RA);
|
| -}
|
| -
|
| -
|
| -ASSEMBLER_TEST_RUN(Div_zero, test) {
|
| - typedef int (*SimpleCode)();
|
| - EXPECT_EQ(0, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
|
| -}
|
| -
|
| -
|
| ASSEMBLER_TEST_GENERATE(Divu_corner, assembler) {
|
| __ LoadImmediate(R1, 0x80000000);
|
| __ LoadImmediate(R2, 0xffffffff);
|
| @@ -1217,25 +1187,24 @@
|
|
|
| ASSEMBLER_TEST_GENERATE(Mtc1Mfc1, assembler) {
|
| __ mtc1(ZR, F0);
|
| + __ mtc1(ZR, F1);
|
| __ mfc1(V0, F0);
|
| + __ mfc1(V1, F1);
|
| __ Ret();
|
| }
|
|
|
|
|
| ASSEMBLER_TEST_RUN(Mtc1Mfc1, test) {
|
| - typedef double (*SimpleCode)();
|
| + typedef int (*SimpleCode)();
|
| EXPECT(test != NULL);
|
| - double res = EXECUTE_TEST_CODE_FLOAT(SimpleCode, test->entry());
|
| - EXPECT_FLOAT_EQ(0.0, res, 0.001);
|
| + EXPECT_EQ(0, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
|
| }
|
|
|
|
|
| ASSEMBLER_TEST_GENERATE(Addd, assembler) {
|
| __ LoadImmediate(D0, 1.0);
|
| __ LoadImmediate(D1, 2.0);
|
| - __ addd(D2, D0, D1);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ addd(D0, D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1249,10 +1218,8 @@
|
|
|
|
|
| ASSEMBLER_TEST_GENERATE(Movd, assembler) {
|
| - __ LoadImmediate(D0, 1.0);
|
| - __ movd(D1, D0);
|
| - __ mfc1(V0, F2);
|
| - __ mfc1(V1, F3);
|
| + __ LoadImmediate(D1, 1.0);
|
| + __ movd(D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1269,11 +1236,9 @@
|
| __ AddImmediate(SP, -8 * kWordSize);
|
| __ LoadImmediate(T1, ~(8 - 1));
|
| __ and_(T0, SP, T1); // Need 8 byte alignment.
|
| - __ LoadImmediate(D0, 1.0);
|
| - __ sdc1(D0, Address(T0));
|
| - __ ldc1(D1, Address(T0));
|
| - __ mfc1(V0, F2);
|
| - __ mfc1(V1, F3);
|
| + __ LoadImmediate(D1, 1.0);
|
| + __ sdc1(D1, Address(T0));
|
| + __ ldc1(D0, Address(T0));
|
| __ Ret();
|
| }
|
|
|
| @@ -1292,9 +1257,7 @@
|
| __ LoadImmediate(T0, 0x7FF80000);
|
| __ mtc1(ZR, F2); // Load upper bits of NaN.
|
| __ mtc1(T0, F3); // Load lower bits of NaN.
|
| - __ addd(D2, D0, D1);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ addd(D0, D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1312,9 +1275,7 @@
|
| __ LoadImmediate(T0, 0x7FF00000); // +inf
|
| __ mtc1(ZR, F2);
|
| __ mtc1(T0, F3);
|
| - __ addd(D2, D0, D1);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ addd(D0, D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1330,9 +1291,7 @@
|
| ASSEMBLER_TEST_GENERATE(Subd, assembler) {
|
| __ LoadImmediate(D0, 2.5);
|
| __ LoadImmediate(D1, 1.5);
|
| - __ subd(D2, D0, D1);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ subd(D0, D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1348,9 +1307,7 @@
|
| ASSEMBLER_TEST_GENERATE(Muld, assembler) {
|
| __ LoadImmediate(D0, 6.0);
|
| __ LoadImmediate(D1, 7.0);
|
| - __ muld(D2, D0, D1);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ muld(D0, D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1366,9 +1323,7 @@
|
| ASSEMBLER_TEST_GENERATE(Divd, assembler) {
|
| __ LoadImmediate(D0, 42.0);
|
| __ LoadImmediate(D1, 7.0);
|
| - __ divd(D2, D0, D1);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ divd(D0, D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1382,10 +1337,8 @@
|
|
|
|
|
| ASSEMBLER_TEST_GENERATE(Sqrtd, assembler) {
|
| - __ LoadImmediate(D0, 36.0);
|
| - __ sqrtd(D2, D0);
|
| - __ mfc1(V0, F4);
|
| - __ mfc1(V1, F5);
|
| + __ LoadImmediate(D1, 36.0);
|
| + __ sqrtd(D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1602,10 +1555,8 @@
|
|
|
| ASSEMBLER_TEST_GENERATE(Cop1CvtDW, assembler) {
|
| __ LoadImmediate(T0, 42);
|
| - __ mtc1(T0, F0);
|
| - __ cvtdw(D1, F0);
|
| - __ mfc1(V0, F2);
|
| - __ mfc1(V1, F3);
|
| + __ mtc1(T0, F2);
|
| + __ cvtdw(D0, F2);
|
| __ Ret();
|
| }
|
|
|
| @@ -1620,10 +1571,8 @@
|
|
|
| ASSEMBLER_TEST_GENERATE(Cop1CvtDW_neg, assembler) {
|
| __ LoadImmediate(T0, -42);
|
| - __ mtc1(T0, F0);
|
| - __ cvtdw(D1, F0);
|
| - __ mfc1(V0, F2);
|
| - __ mfc1(V1, F3);
|
| + __ mtc1(T0, F2);
|
| + __ cvtdw(D0, F2);
|
| __ Ret();
|
| }
|
|
|
| @@ -1638,11 +1587,9 @@
|
|
|
| ASSEMBLER_TEST_GENERATE(Cop1CvtDL, assembler) {
|
| __ LoadImmediate(T0, 0x1);
|
| - __ mtc1(ZR, F0);
|
| - __ mtc1(T0, F1); // D0 <- 0x100000000 = 4294967296
|
| - __ cvtdl(D1, D0);
|
| - __ mfc1(V0, F2);
|
| - __ mfc1(V1, F3);
|
| + __ mtc1(ZR, F2);
|
| + __ mtc1(T0, F3); // D0 <- 0x100000000 = 4294967296
|
| + __ cvtdl(D0, D1);
|
| __ Ret();
|
| }
|
|
|
| @@ -1657,11 +1604,9 @@
|
|
|
| ASSEMBLER_TEST_GENERATE(Cop1CvtDL_neg, assembler) {
|
| __ LoadImmediate(T0, 0xffffffff);
|
| - __ mtc1(T0, F0);
|
| - __ mtc1(T0, F1); // D0 <- 0xffffffffffffffff = -1
|
| - __ cvtdl(D1, D0);
|
| - __ mfc1(V0, F2);
|
| - __ mfc1(V1, F3);
|
| + __ mtc1(T0, F2);
|
| + __ mtc1(T0, F3); // D0 <- 0xffffffffffffffff = -1
|
| + __ cvtdl(D0, D1);;
|
| __ Ret();
|
| }
|
|
|
| @@ -1675,30 +1620,30 @@
|
|
|
|
|
| ASSEMBLER_TEST_GENERATE(Cop1CvtWD, assembler) {
|
| - __ LoadImmediate(D0, 42.0);
|
| - __ cvtwd(F2, D0);
|
| - __ mfc1(V0, F2);
|
| + __ LoadImmediate(D1, 42.0);
|
| + __ cvtwd(F0, D1);
|
| + __ mfc1(V0, F0);
|
| __ Ret();
|
| }
|
|
|
|
|
| ASSEMBLER_TEST_RUN(Cop1CvtWD, test) {
|
| - typedef double (*SimpleCode)();
|
| + typedef int (*SimpleCode)();
|
| EXPECT(test != NULL);
|
| EXPECT_EQ(42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
|
| }
|
|
|
|
|
| ASSEMBLER_TEST_GENERATE(Cop1CvtWD_neg, assembler) {
|
| - __ LoadImmediate(D0, -42.0);
|
| - __ cvtwd(F2, D0);
|
| - __ mfc1(V0, F2);
|
| + __ LoadImmediate(D1, -42.0);
|
| + __ cvtwd(F0, D1);
|
| + __ mfc1(V0, F0);
|
| __ Ret();
|
| }
|
|
|
|
|
| ASSEMBLER_TEST_RUN(Cop1CvtWD_neg, test) {
|
| - typedef double (*SimpleCode)();
|
| + typedef int (*SimpleCode)();
|
| EXPECT(test != NULL);
|
| EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
|
| }
|
|
|