Chromium Code Reviews| Index: runtime/vm/assembler_mips_test.cc |
| diff --git a/runtime/vm/assembler_mips_test.cc b/runtime/vm/assembler_mips_test.cc |
| index e3cad3d6a91c1266688f625e4c81cce0588d144c..645d62131774b493a5e59fd9d1c79ec4b8b4cb38 100644 |
| --- a/runtime/vm/assembler_mips_test.cc |
| +++ b/runtime/vm/assembler_mips_test.cc |
| @@ -1976,107 +1976,65 @@ ASSEMBLER_TEST_RUN(Cop1COLE_not_taken, test) { |
| } |
| -ASSEMBLER_TEST_GENERATE(Cop1CvtDW, assembler) { |
| - __ LoadImmediate(T0, 42); |
| - __ mtc1(T0, F2); |
| - __ cvtdw(D0, F2); |
| +ASSEMBLER_TEST_GENERATE(Cop1TruncWD, assembler) { |
| + __ LoadImmediate(D1, 42.9); |
| + __ truncwd(F0, D1); |
| + __ mfc1(V0, F0); |
| __ Ret(); |
| } |
| -ASSEMBLER_TEST_RUN(Cop1CvtDW, test) { |
| - typedef double (*SimpleCode)() DART_UNUSED; |
| +ASSEMBLER_TEST_RUN(Cop1TruncWD, test) { |
| + typedef int (*SimpleCode)() DART_UNUSED; |
| EXPECT(test != NULL); |
| - double res = EXECUTE_TEST_CODE_DOUBLE(SimpleCode, test->entry()); |
| - EXPECT_FLOAT_EQ(42.0, res, 0.001); |
| + EXPECT_EQ(42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry())); |
| } |
| -ASSEMBLER_TEST_GENERATE(Cop1CvtDW_neg, assembler) { |
| - __ LoadImmediate(T0, -42); |
| - __ mtc1(T0, F2); |
| - __ cvtdw(D0, F2); |
| +ASSEMBLER_TEST_GENERATE(Cop1TruncWD_neg, assembler) { |
| + __ LoadImmediate(D1, -42.9); |
| + __ truncwd(F0, D1); |
| + __ mfc1(V0, F0); |
| __ Ret(); |
| } |
| -ASSEMBLER_TEST_RUN(Cop1CvtDW_neg, test) { |
| - typedef double (*SimpleCode)() DART_UNUSED; |
| +ASSEMBLER_TEST_RUN(Cop1TruncWD_neg, test) { |
| + typedef int (*SimpleCode)() DART_UNUSED; |
| EXPECT(test != NULL); |
| - double res = EXECUTE_TEST_CODE_DOUBLE(SimpleCode, test->entry()); |
| - EXPECT_FLOAT_EQ(-42.0, res, 0.001); |
| + EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry())); |
| } |
|
rmacnak
2016/03/03 22:12:02
Add one of the inf/nan/overflow cases.
regis
2016/03/03 23:14:48
Done.
|
| -ASSEMBLER_TEST_GENERATE(Cop1CvtDL, assembler) { |
| - if (TargetCPUFeatures::mips_version() == MIPS32r2) { |
| - __ LoadImmediate(T0, 0x1); |
| - __ mtc1(ZR, F2); |
| - __ mtc1(T0, F3); // D0 <- 0x100000000 = 4294967296 |
| - __ cvtdl(D0, D1); |
| - } else { |
| - __ LoadImmediate(D0, 4294967296.0); |
| - } |
| +ASSEMBLER_TEST_GENERATE(Cop1CvtDW, assembler) { |
| + __ LoadImmediate(T0, 42); |
| + __ mtc1(T0, F2); |
| + __ cvtdw(D0, F2); |
| __ Ret(); |
| } |
| -ASSEMBLER_TEST_RUN(Cop1CvtDL, test) { |
| +ASSEMBLER_TEST_RUN(Cop1CvtDW, test) { |
| typedef double (*SimpleCode)() DART_UNUSED; |
| EXPECT(test != NULL); |
| double res = EXECUTE_TEST_CODE_DOUBLE(SimpleCode, test->entry()); |
| - EXPECT_FLOAT_EQ(4294967296.0, res, 0.001); |
| + EXPECT_FLOAT_EQ(42.0, res, 0.001); |
| } |
| -ASSEMBLER_TEST_GENERATE(Cop1CvtDL_neg, assembler) { |
| - if (TargetCPUFeatures::mips_version() == MIPS32r2) { |
| - __ LoadImmediate(T0, 0xffffffff); |
| - __ mtc1(T0, F2); |
| - __ mtc1(T0, F3); // D0 <- 0xffffffffffffffff = -1 |
| - __ cvtdl(D0, D1); |
| - } else { |
| - __ LoadImmediate(D0, -1.0); |
| - } |
| +ASSEMBLER_TEST_GENERATE(Cop1CvtDW_neg, assembler) { |
| + __ LoadImmediate(T0, -42); |
| + __ mtc1(T0, F2); |
| + __ cvtdw(D0, F2); |
| __ Ret(); |
| } |
| -ASSEMBLER_TEST_RUN(Cop1CvtDL_neg, test) { |
| +ASSEMBLER_TEST_RUN(Cop1CvtDW_neg, test) { |
| typedef double (*SimpleCode)() DART_UNUSED; |
| EXPECT(test != NULL); |
| double res = EXECUTE_TEST_CODE_DOUBLE(SimpleCode, test->entry()); |
| - EXPECT_FLOAT_EQ(-1.0, res, 0.001); |
| -} |
| - |
| - |
| -ASSEMBLER_TEST_GENERATE(Cop1CvtWD, assembler) { |
| - __ LoadImmediate(D1, 42.0); |
| - __ cvtwd(F0, D1); |
| - __ mfc1(V0, F0); |
| - __ Ret(); |
| -} |
| - |
| - |
| -ASSEMBLER_TEST_RUN(Cop1CvtWD, test) { |
| - typedef int (*SimpleCode)() DART_UNUSED; |
| - EXPECT(test != NULL); |
| - EXPECT_EQ(42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry())); |
| -} |
| - |
| - |
| -ASSEMBLER_TEST_GENERATE(Cop1CvtWD_neg, assembler) { |
| - __ LoadImmediate(D1, -42.0); |
| - __ cvtwd(F0, D1); |
| - __ mfc1(V0, F0); |
| - __ Ret(); |
| -} |
| - |
| - |
| -ASSEMBLER_TEST_RUN(Cop1CvtWD_neg, test) { |
| - typedef int (*SimpleCode)() DART_UNUSED; |
| - EXPECT(test != NULL); |
| - EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry())); |
| + EXPECT_FLOAT_EQ(-42.0, res, 0.001); |
| } |