Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc

Issue 1005123002: MIPS64: Unify and improve Word32 compares to use same instructions as Word64 compares. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file 3 // found in the LICENSE file
4 4
5 #include "test/unittests/compiler/instruction-selector-unittest.h" 5 #include "test/unittests/compiler/instruction-selector-unittest.h"
6 6
7 namespace v8 { 7 namespace v8 {
8 namespace internal { 8 namespace internal {
9 namespace compiler { 9 namespace compiler {
10 10
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 // Arithmetic compare instructions. 159 // Arithmetic compare instructions.
160 // ---------------------------------------------------------------------------- 160 // ----------------------------------------------------------------------------
161 161
162 162
163 const IntCmp kCmpInstructions[] = { 163 const IntCmp kCmpInstructions[] = {
164 {{&RawMachineAssembler::WordEqual, "WordEqual", kMips64Cmp, kMachInt64}, 164 {{&RawMachineAssembler::WordEqual, "WordEqual", kMips64Cmp, kMachInt64},
165 1U}, 165 1U},
166 {{&RawMachineAssembler::WordNotEqual, "WordNotEqual", kMips64Cmp, 166 {{&RawMachineAssembler::WordNotEqual, "WordNotEqual", kMips64Cmp,
167 kMachInt64}, 167 kMachInt64},
168 1U}, 168 1U},
169 {{&RawMachineAssembler::Word32Equal, "Word32Equal", kMips64Cmp32, 169 {{&RawMachineAssembler::Word32Equal, "Word32Equal", kMips64Cmp, kMachInt32},
170 1U},
171 {{&RawMachineAssembler::Word32NotEqual, "Word32NotEqual", kMips64Cmp,
170 kMachInt32}, 172 kMachInt32},
171 1U}, 173 1U},
172 {{&RawMachineAssembler::Word32NotEqual, "Word32NotEqual", kMips64Cmp32, 174 {{&RawMachineAssembler::Int32LessThan, "Int32LessThan", kMips64Cmp,
173 kMachInt32},
174 1U},
175 {{&RawMachineAssembler::Int32LessThan, "Int32LessThan", kMips64Cmp32,
176 kMachInt32}, 175 kMachInt32},
177 1U}, 176 1U},
178 {{&RawMachineAssembler::Int32LessThanOrEqual, "Int32LessThanOrEqual", 177 {{&RawMachineAssembler::Int32LessThanOrEqual, "Int32LessThanOrEqual",
179 kMips64Cmp32, kMachInt32}, 178 kMips64Cmp, kMachInt32},
180 1U}, 179 1U},
181 {{&RawMachineAssembler::Int32GreaterThan, "Int32GreaterThan", kMips64Cmp32, 180 {{&RawMachineAssembler::Int32GreaterThan, "Int32GreaterThan", kMips64Cmp,
182 kMachInt32}, 181 kMachInt32},
183 1U}, 182 1U},
184 {{&RawMachineAssembler::Int32GreaterThanOrEqual, "Int32GreaterThanOrEqual", 183 {{&RawMachineAssembler::Int32GreaterThanOrEqual, "Int32GreaterThanOrEqual",
185 kMips64Cmp32, kMachInt32}, 184 kMips64Cmp, kMachInt32},
186 1U}, 185 1U},
187 {{&RawMachineAssembler::Uint32LessThan, "Uint32LessThan", kMips64Cmp32, 186 {{&RawMachineAssembler::Uint32LessThan, "Uint32LessThan", kMips64Cmp,
188 kMachUint32}, 187 kMachUint32},
189 1U}, 188 1U},
190 {{&RawMachineAssembler::Uint32LessThanOrEqual, "Uint32LessThanOrEqual", 189 {{&RawMachineAssembler::Uint32LessThanOrEqual, "Uint32LessThanOrEqual",
191 kMips64Cmp32, kMachUint32}, 190 kMips64Cmp, kMachUint32},
192 1U}}; 191 1U}};
193 192
194 193
195 // ---------------------------------------------------------------------------- 194 // ----------------------------------------------------------------------------
196 // Conversion instructions. 195 // Conversion instructions.
197 // ---------------------------------------------------------------------------- 196 // ----------------------------------------------------------------------------
198 197
199 const Conversion kConversionInstructions[] = { 198 const Conversion kConversionInstructions[] = {
200 // Conversion instructions are related to machine_operator.h: 199 // Conversion instructions are related to machine_operator.h:
201 // FPU conversions: 200 // FPU conversions:
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 // kMips64Cmp with zero testing. 745 // kMips64Cmp with zero testing.
747 // ---------------------------------------------------------------------------- 746 // ----------------------------------------------------------------------------
748 747
749 748
750 TEST_F(InstructionSelectorTest, Word32EqualWithZero) { 749 TEST_F(InstructionSelectorTest, Word32EqualWithZero) {
751 { 750 {
752 StreamBuilder m(this, kMachInt32, kMachInt32); 751 StreamBuilder m(this, kMachInt32, kMachInt32);
753 m.Return(m.Word32Equal(m.Parameter(0), m.Int32Constant(0))); 752 m.Return(m.Word32Equal(m.Parameter(0), m.Int32Constant(0)));
754 Stream s = m.Build(); 753 Stream s = m.Build();
755 ASSERT_EQ(1U, s.size()); 754 ASSERT_EQ(1U, s.size());
756 EXPECT_EQ(kMips64Cmp32, s[0]->arch_opcode()); 755 EXPECT_EQ(kMips64Cmp, s[0]->arch_opcode());
757 EXPECT_EQ(kMode_None, s[0]->addressing_mode()); 756 EXPECT_EQ(kMode_None, s[0]->addressing_mode());
758 ASSERT_EQ(2U, s[0]->InputCount()); 757 ASSERT_EQ(2U, s[0]->InputCount());
759 EXPECT_EQ(1U, s[0]->OutputCount()); 758 EXPECT_EQ(1U, s[0]->OutputCount());
760 EXPECT_EQ(kFlags_set, s[0]->flags_mode()); 759 EXPECT_EQ(kFlags_set, s[0]->flags_mode());
761 EXPECT_EQ(kEqual, s[0]->flags_condition()); 760 EXPECT_EQ(kEqual, s[0]->flags_condition());
762 } 761 }
763 { 762 {
764 StreamBuilder m(this, kMachInt32, kMachInt32); 763 StreamBuilder m(this, kMachInt32, kMachInt32);
765 m.Return(m.Word32Equal(m.Int32Constant(0), m.Parameter(0))); 764 m.Return(m.Word32Equal(m.Int32Constant(0), m.Parameter(0)));
766 Stream s = m.Build(); 765 Stream s = m.Build();
767 ASSERT_EQ(1U, s.size()); 766 ASSERT_EQ(1U, s.size());
768 EXPECT_EQ(kMips64Cmp32, s[0]->arch_opcode()); 767 EXPECT_EQ(kMips64Cmp, s[0]->arch_opcode());
769 EXPECT_EQ(kMode_None, s[0]->addressing_mode()); 768 EXPECT_EQ(kMode_None, s[0]->addressing_mode());
770 ASSERT_EQ(2U, s[0]->InputCount()); 769 ASSERT_EQ(2U, s[0]->InputCount());
771 EXPECT_EQ(1U, s[0]->OutputCount()); 770 EXPECT_EQ(1U, s[0]->OutputCount());
772 EXPECT_EQ(kFlags_set, s[0]->flags_mode()); 771 EXPECT_EQ(kFlags_set, s[0]->flags_mode());
773 EXPECT_EQ(kEqual, s[0]->flags_condition()); 772 EXPECT_EQ(kEqual, s[0]->flags_condition());
774 } 773 }
775 } 774 }
776 775
777 776
778 TEST_F(InstructionSelectorTest, Word64EqualWithZero) { 777 TEST_F(InstructionSelectorTest, Word64EqualWithZero) {
(...skipping 19 matching lines...) Expand all
798 ASSERT_EQ(2U, s[0]->InputCount()); 797 ASSERT_EQ(2U, s[0]->InputCount());
799 EXPECT_EQ(1U, s[0]->OutputCount()); 798 EXPECT_EQ(1U, s[0]->OutputCount());
800 EXPECT_EQ(kFlags_set, s[0]->flags_mode()); 799 EXPECT_EQ(kFlags_set, s[0]->flags_mode());
801 EXPECT_EQ(kEqual, s[0]->flags_condition()); 800 EXPECT_EQ(kEqual, s[0]->flags_condition());
802 } 801 }
803 } 802 }
804 803
805 } // namespace compiler 804 } // namespace compiler
806 } // namespace internal 805 } // namespace internal
807 } // namespace v8 806 } // namespace v8
OLDNEW
« test/cctest/compiler/call-tester.h ('K') | « test/cctest/compiler/call-tester.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698