diff options
Diffstat (limited to 'deps/v8/test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc')
-rw-r--r-- | deps/v8/test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/deps/v8/test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc b/deps/v8/test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc index 00343d2023..fe57eb5e28 100644 --- a/deps/v8/test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc +++ b/deps/v8/test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc @@ -444,6 +444,30 @@ INSTANTIATE_TEST_CASE_P(InstructionSelectorTest, InstructionSelectorConversionTest, ::testing::ValuesIn(kConversionInstructions)); +TEST_F(InstructionSelectorTest, ChangesFromToSmi) { + { + StreamBuilder m(this, kMachInt32, kMachInt32); + m.Return(m.TruncateInt64ToInt32( + m.Word64Sar(m.Parameter(0), m.Int32Constant(32)))); + Stream s = m.Build(); + ASSERT_EQ(1U, s.size()); + EXPECT_EQ(kMips64Dsar, s[0]->arch_opcode()); + EXPECT_EQ(kMode_None, s[0]->addressing_mode()); + ASSERT_EQ(2U, s[0]->InputCount()); + EXPECT_EQ(1U, s[0]->OutputCount()); + } + { + StreamBuilder m(this, kMachInt32, kMachInt32); + m.Return( + m.Word64Shl(m.ChangeInt32ToInt64(m.Parameter(0)), m.Int32Constant(32))); + Stream s = m.Build(); + ASSERT_EQ(1U, s.size()); + EXPECT_EQ(kMips64Dshl, s[0]->arch_opcode()); + ASSERT_EQ(2U, s[0]->InputCount()); + EXPECT_EQ(1U, s[0]->OutputCount()); + } +} + // ---------------------------------------------------------------------------- // Loads and stores. @@ -464,8 +488,8 @@ static const MemoryAccess kMemoryAccesses[] = { {kMachInt16, kMips64Lh, kMips64Sh}, {kMachUint16, kMips64Lhu, kMips64Sh}, {kMachInt32, kMips64Lw, kMips64Sw}, - {kRepFloat32, kMips64Lwc1, kMips64Swc1}, - {kRepFloat64, kMips64Ldc1, kMips64Sdc1}, + {kMachFloat32, kMips64Lwc1, kMips64Swc1}, + {kMachFloat64, kMips64Ldc1, kMips64Sdc1}, {kMachInt64, kMips64Ld, kMips64Sd}}; |