| Index: test/cctest/test-assembler-mips.cc
|
| diff --git a/test/cctest/test-assembler-mips.cc b/test/cctest/test-assembler-mips.cc
|
| index e8e724c05295731797a946881f983269cf3e95cc..534c4cf0ae0bf5bf989dbe00bc2d93b046720504 100644
|
| --- a/test/cctest/test-assembler-mips.cc
|
| +++ b/test/cctest/test-assembler-mips.cc
|
| @@ -765,10 +765,8 @@ TEST(MIPS10) {
|
| double b;
|
| int32_t dbl_mant;
|
| int32_t dbl_exp;
|
| - int32_t long_hi;
|
| - int32_t long_lo;
|
| - int32_t b_long_hi;
|
| - int32_t b_long_lo;
|
| + int32_t word;
|
| + int32_t b_word;
|
| } T;
|
| T t;
|
|
|
| @@ -786,18 +784,14 @@ TEST(MIPS10) {
|
| __ sw(t1, MemOperand(a0, OFFSET_OF(T, dbl_exp)));
|
|
|
| // Convert double in f0 to long, save hi/lo parts.
|
| - __ cvt_l_d(f0, f0);
|
| - __ mfc1(t0, f0); // f0 has LS 32 bits of long.
|
| - __ mfc1(t1, f1); // f1 has MS 32 bits of long.
|
| - __ sw(t0, MemOperand(a0, OFFSET_OF(T, long_lo)));
|
| - __ sw(t1, MemOperand(a0, OFFSET_OF(T, long_hi)));
|
| + __ cvt_w_d(f0, f0);
|
| + __ mfc1(t0, f0); // f0 has a 32-bits word.
|
| + __ sw(t0, MemOperand(a0, OFFSET_OF(T, word)));
|
|
|
| // Convert the b long integers to double b.
|
| - __ lw(t0, MemOperand(a0, OFFSET_OF(T, b_long_lo)));
|
| - __ lw(t1, MemOperand(a0, OFFSET_OF(T, b_long_hi)));
|
| - __ mtc1(t0, f8); // f8 has LS 32-bits.
|
| - __ mtc1(t1, f9); // f9 has MS 32-bits.
|
| - __ cvt_d_l(f10, f8);
|
| + __ lw(t0, MemOperand(a0, OFFSET_OF(T, b_word)));
|
| + __ mtc1(t0, f8); // f8 has a 32-bits word.
|
| + __ cvt_d_w(f10, f8);
|
| __ sdc1(f10, MemOperand(a0, OFFSET_OF(T, b)));
|
|
|
| __ jr(ra);
|
| @@ -811,18 +805,16 @@ TEST(MIPS10) {
|
| Handle<Code>())->ToObjectChecked();
|
| CHECK(code->IsCode());
|
| F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
|
| - t.a = 2.147483647e9; // 0x7fffffff -> 0x41DFFFFFFFC00000 as double.
|
| - t.b_long_hi = 0x000000ff; // 0xFF00FF00FF -> 0x426FE01FE01FE000 as double.
|
| - t.b_long_lo = 0x00ff00ff;
|
| + t.a = 2.147483646e+09; // 0x7FFFFFFE -> 0xFF80000041DFFFFF as double.
|
| + t.b_word = 0x0ff00ff0; // 0x0FF00FF0 -> 0x as double.
|
| Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
|
| USE(dummy);
|
|
|
| CHECK_EQ(0x41DFFFFF, t.dbl_exp);
|
| - CHECK_EQ(0xFFC00000, t.dbl_mant);
|
| - CHECK_EQ(0, t.long_hi);
|
| - CHECK_EQ(0x7fffffff, t.long_lo);
|
| - // 0xFF00FF00FF -> 1.095233372415e12.
|
| - CHECK_EQ(1.095233372415e12, t.b);
|
| + CHECK_EQ(0xFF800000, t.dbl_mant);
|
| + CHECK_EQ(0X7FFFFFFE, t.word);
|
| + // 0x0FF00FF0 -> 2.6739096+e08
|
| + CHECK_EQ(2.6739096e08, t.b);
|
| }
|
| }
|
|
|
|
|