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

Side by Side Diff: test/unittests/compiler/machine-operator-unittest.cc

Issue 1513543003: [turbofan] Make MachineType a pair of enums. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Moar rebase Created 5 years 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 "src/compiler/machine-operator.h" 5 #include "src/compiler/machine-operator.h"
6 #include "src/compiler/opcodes.h" 6 #include "src/compiler/opcodes.h"
7 #include "src/compiler/operator.h" 7 #include "src/compiler/operator.h"
8 #include "src/compiler/operator-properties.h" 8 #include "src/compiler/operator-properties.h"
9 #include "test/unittests/test-utils.h" 9 #include "test/unittests/test-utils.h"
10 10
11 namespace v8 { 11 namespace v8 {
12 namespace internal { 12 namespace internal {
13 namespace compiler { 13 namespace compiler {
14 14
15 #if GTEST_HAS_COMBINE 15 #if GTEST_HAS_COMBINE
16 16
17 template <typename T> 17 template <typename T>
18 class MachineOperatorTestWithParam 18 class MachineOperatorTestWithParam
19 : public TestWithZone, 19 : public TestWithZone,
20 public ::testing::WithParamInterface< ::testing::tuple<MachineType, T> > { 20 public ::testing::WithParamInterface<
21 ::testing::tuple<MachineRepresentation, T> > {
21 protected: 22 protected:
22 MachineType type() const { return ::testing::get<0>(B::GetParam()); } 23 MachineRepresentation representation() const {
24 return ::testing::get<0>(B::GetParam());
25 }
23 const T& GetParam() const { return ::testing::get<1>(B::GetParam()); } 26 const T& GetParam() const { return ::testing::get<1>(B::GetParam()); }
24 27
25 private: 28 private:
26 typedef ::testing::WithParamInterface< ::testing::tuple<MachineType, T> > B; 29 typedef ::testing::WithParamInterface<
30 ::testing::tuple<MachineRepresentation, T> > B;
27 }; 31 };
28 32
29 33
30 namespace { 34 namespace {
31 35
32 const MachineType kMachineReps[] = {kRepWord32, kRepWord64}; 36 const MachineRepresentation kMachineReps[] = {MachineRepresentation::kWord32,
37 MachineRepresentation::kWord64};
33 38
34 39
35 const MachineType kMachineTypesForAccess[] = { 40 const MachineType kMachineTypesForAccess[] = {
36 kMachFloat32, kMachFloat64, kMachInt8, kMachUint8, kMachInt16, 41 MachineType::Float32(), MachineType::Float64(), MachineType::Int8(),
37 kMachUint16, kMachInt32, kMachUint32, kMachInt64, kMachUint64, 42 MachineType::Uint8(), MachineType::Int16(), MachineType::Uint16(),
38 kMachPtr, kMachAnyTagged, kMachPtr}; 43 MachineType::Int32(), MachineType::Uint32(), MachineType::Int64(),
44 MachineType::Uint64(), MachineType::AnyTagged()};
39 45
40 } // namespace 46 } // namespace
41 47
42 48
43 // ----------------------------------------------------------------------------- 49 // -----------------------------------------------------------------------------
44 // Load operator. 50 // Load operator.
45 51
46 52
47 typedef MachineOperatorTestWithParam<LoadRepresentation> 53 typedef MachineOperatorTestWithParam<LoadRepresentation>
48 MachineLoadOperatorTest; 54 MachineLoadOperatorTest;
49 55
50 56
51 TEST_P(MachineLoadOperatorTest, InstancesAreGloballyShared) { 57 TEST_P(MachineLoadOperatorTest, InstancesAreGloballyShared) {
52 MachineOperatorBuilder machine1(zone(), type()); 58 MachineOperatorBuilder machine1(zone(), representation());
53 MachineOperatorBuilder machine2(zone(), type()); 59 MachineOperatorBuilder machine2(zone(), representation());
54 EXPECT_EQ(machine1.Load(GetParam()), machine2.Load(GetParam())); 60 EXPECT_EQ(machine1.Load(GetParam()), machine2.Load(GetParam()));
55 } 61 }
56 62
57 63
58 TEST_P(MachineLoadOperatorTest, NumberOfInputsAndOutputs) { 64 TEST_P(MachineLoadOperatorTest, NumberOfInputsAndOutputs) {
59 MachineOperatorBuilder machine(zone(), type()); 65 MachineOperatorBuilder machine(zone(), representation());
60 const Operator* op = machine.Load(GetParam()); 66 const Operator* op = machine.Load(GetParam());
61 67
62 EXPECT_EQ(2, op->ValueInputCount()); 68 EXPECT_EQ(2, op->ValueInputCount());
63 EXPECT_EQ(1, op->EffectInputCount()); 69 EXPECT_EQ(1, op->EffectInputCount());
64 EXPECT_EQ(1, op->ControlInputCount()); 70 EXPECT_EQ(1, op->ControlInputCount());
65 EXPECT_EQ(4, OperatorProperties::GetTotalInputCount(op)); 71 EXPECT_EQ(4, OperatorProperties::GetTotalInputCount(op));
66 72
67 EXPECT_EQ(1, op->ValueOutputCount()); 73 EXPECT_EQ(1, op->ValueOutputCount());
68 EXPECT_EQ(1, op->EffectOutputCount()); 74 EXPECT_EQ(1, op->EffectOutputCount());
69 EXPECT_EQ(0, op->ControlOutputCount()); 75 EXPECT_EQ(0, op->ControlOutputCount());
70 } 76 }
71 77
72 78
73 TEST_P(MachineLoadOperatorTest, OpcodeIsCorrect) { 79 TEST_P(MachineLoadOperatorTest, OpcodeIsCorrect) {
74 MachineOperatorBuilder machine(zone(), type()); 80 MachineOperatorBuilder machine(zone(), representation());
75 EXPECT_EQ(IrOpcode::kLoad, machine.Load(GetParam())->opcode()); 81 EXPECT_EQ(IrOpcode::kLoad, machine.Load(GetParam())->opcode());
76 } 82 }
77 83
78 84
79 TEST_P(MachineLoadOperatorTest, ParameterIsCorrect) { 85 TEST_P(MachineLoadOperatorTest, ParameterIsCorrect) {
80 MachineOperatorBuilder machine(zone(), type()); 86 MachineOperatorBuilder machine(zone(), representation());
81 EXPECT_EQ(GetParam(), 87 EXPECT_EQ(GetParam(),
82 OpParameter<LoadRepresentation>(machine.Load(GetParam()))); 88 OpParameter<LoadRepresentation>(machine.Load(GetParam())));
83 } 89 }
84 90
85 91
86 INSTANTIATE_TEST_CASE_P( 92 INSTANTIATE_TEST_CASE_P(
87 MachineOperatorTest, MachineLoadOperatorTest, 93 MachineOperatorTest, MachineLoadOperatorTest,
88 ::testing::Combine(::testing::ValuesIn(kMachineReps), 94 ::testing::Combine(::testing::ValuesIn(kMachineReps),
89 ::testing::ValuesIn(kMachineTypesForAccess))); 95 ::testing::ValuesIn(kMachineTypesForAccess)));
90 96
(...skipping 10 matching lines...) Expand all
101 return StoreRepresentation( 107 return StoreRepresentation(
102 ::testing::get<0>(MachineOperatorTestWithParam< 108 ::testing::get<0>(MachineOperatorTestWithParam<
103 ::testing::tuple<MachineType, WriteBarrierKind> >::GetParam()), 109 ::testing::tuple<MachineType, WriteBarrierKind> >::GetParam()),
104 ::testing::get<1>(MachineOperatorTestWithParam< 110 ::testing::get<1>(MachineOperatorTestWithParam<
105 ::testing::tuple<MachineType, WriteBarrierKind> >::GetParam())); 111 ::testing::tuple<MachineType, WriteBarrierKind> >::GetParam()));
106 } 112 }
107 }; 113 };
108 114
109 115
110 TEST_P(MachineStoreOperatorTest, InstancesAreGloballyShared) { 116 TEST_P(MachineStoreOperatorTest, InstancesAreGloballyShared) {
111 MachineOperatorBuilder machine1(zone(), type()); 117 MachineOperatorBuilder machine1(zone(), representation());
112 MachineOperatorBuilder machine2(zone(), type()); 118 MachineOperatorBuilder machine2(zone(), representation());
113 EXPECT_EQ(machine1.Store(GetParam()), machine2.Store(GetParam())); 119 EXPECT_EQ(machine1.Store(GetParam()), machine2.Store(GetParam()));
114 } 120 }
115 121
116 122
117 TEST_P(MachineStoreOperatorTest, NumberOfInputsAndOutputs) { 123 TEST_P(MachineStoreOperatorTest, NumberOfInputsAndOutputs) {
118 MachineOperatorBuilder machine(zone(), type()); 124 MachineOperatorBuilder machine(zone(), representation());
119 const Operator* op = machine.Store(GetParam()); 125 const Operator* op = machine.Store(GetParam());
120 126
121 EXPECT_EQ(3, op->ValueInputCount()); 127 EXPECT_EQ(3, op->ValueInputCount());
122 EXPECT_EQ(1, op->EffectInputCount()); 128 EXPECT_EQ(1, op->EffectInputCount());
123 EXPECT_EQ(1, op->ControlInputCount()); 129 EXPECT_EQ(1, op->ControlInputCount());
124 EXPECT_EQ(5, OperatorProperties::GetTotalInputCount(op)); 130 EXPECT_EQ(5, OperatorProperties::GetTotalInputCount(op));
125 131
126 EXPECT_EQ(0, op->ValueOutputCount()); 132 EXPECT_EQ(0, op->ValueOutputCount());
127 EXPECT_EQ(1, op->EffectOutputCount()); 133 EXPECT_EQ(1, op->EffectOutputCount());
128 EXPECT_EQ(0, op->ControlOutputCount()); 134 EXPECT_EQ(0, op->ControlOutputCount());
129 } 135 }
130 136
131 137
132 TEST_P(MachineStoreOperatorTest, OpcodeIsCorrect) { 138 TEST_P(MachineStoreOperatorTest, OpcodeIsCorrect) {
133 MachineOperatorBuilder machine(zone(), type()); 139 MachineOperatorBuilder machine(zone(), representation());
134 EXPECT_EQ(IrOpcode::kStore, machine.Store(GetParam())->opcode()); 140 EXPECT_EQ(IrOpcode::kStore, machine.Store(GetParam())->opcode());
135 } 141 }
136 142
137 143
138 TEST_P(MachineStoreOperatorTest, ParameterIsCorrect) { 144 TEST_P(MachineStoreOperatorTest, ParameterIsCorrect) {
139 MachineOperatorBuilder machine(zone(), type()); 145 MachineOperatorBuilder machine(zone(), representation());
140 EXPECT_EQ(GetParam(), 146 EXPECT_EQ(GetParam(),
141 OpParameter<StoreRepresentation>(machine.Store(GetParam()))); 147 OpParameter<StoreRepresentation>(machine.Store(GetParam())));
142 } 148 }
143 149
144 150
145 INSTANTIATE_TEST_CASE_P( 151 INSTANTIATE_TEST_CASE_P(
146 MachineOperatorTest, MachineStoreOperatorTest, 152 MachineOperatorTest, MachineStoreOperatorTest,
147 ::testing::Combine( 153 ::testing::Combine(
148 ::testing::ValuesIn(kMachineReps), 154 ::testing::ValuesIn(kMachineReps),
149 ::testing::Combine(::testing::ValuesIn(kMachineTypesForAccess), 155 ::testing::Combine(::testing::ValuesIn(kMachineTypesForAccess),
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 PURE(Float64ExtractHighWord32, 1, 0, 1), // -- 255 PURE(Float64ExtractHighWord32, 1, 0, 1), // --
250 PURE(Float64InsertLowWord32, 2, 0, 1), // -- 256 PURE(Float64InsertLowWord32, 2, 0, 1), // --
251 PURE(Float64InsertHighWord32, 2, 0, 1), // -- 257 PURE(Float64InsertHighWord32, 2, 0, 1), // --
252 #undef PURE 258 #undef PURE
253 }; 259 };
254 260
255 } // namespace 261 } // namespace
256 262
257 class MachinePureOperatorTest : public TestWithZone { 263 class MachinePureOperatorTest : public TestWithZone {
258 protected: 264 protected:
259 MachineType word_type() { return kMachPtr; } 265 MachineRepresentation word_type() {
266 return MachineType::PointerRepresentation();
267 }
260 }; 268 };
261 269
262 270
263 TEST_F(MachinePureOperatorTest, PureOperators) { 271 TEST_F(MachinePureOperatorTest, PureOperators) {
264 TRACED_FOREACH(MachineType, machine_rep1, kMachineReps) { 272 TRACED_FOREACH(MachineRepresentation, machine_rep1, kMachineReps) {
265 MachineOperatorBuilder machine1(zone(), machine_rep1); 273 MachineOperatorBuilder machine1(zone(), machine_rep1);
266 TRACED_FOREACH(MachineType, machine_rep2, kMachineReps) { 274 TRACED_FOREACH(MachineRepresentation, machine_rep2, kMachineReps) {
267 MachineOperatorBuilder machine2(zone(), machine_rep2); 275 MachineOperatorBuilder machine2(zone(), machine_rep2);
268 TRACED_FOREACH(PureOperator, pop, kPureOperators) { 276 TRACED_FOREACH(PureOperator, pop, kPureOperators) {
269 const Operator* op1 = (machine1.*pop.constructor)(); 277 const Operator* op1 = (machine1.*pop.constructor)();
270 const Operator* op2 = (machine2.*pop.constructor)(); 278 const Operator* op2 = (machine2.*pop.constructor)();
271 EXPECT_EQ(op1, op2); 279 EXPECT_EQ(op1, op2);
272 EXPECT_EQ(pop.value_input_count, op1->ValueInputCount()); 280 EXPECT_EQ(pop.value_input_count, op1->ValueInputCount());
273 EXPECT_EQ(pop.control_input_count, op1->ControlInputCount()); 281 EXPECT_EQ(pop.control_input_count, op1->ControlInputCount());
274 EXPECT_EQ(pop.value_output_count, op1->ValueOutputCount()); 282 EXPECT_EQ(pop.value_output_count, op1->ValueOutputCount());
275 } 283 }
276 } 284 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 OPTIONAL_ENTRY(Float64RoundDown, 1, 0, 1), // -- 318 OPTIONAL_ENTRY(Float64RoundDown, 1, 0, 1), // --
311 OPTIONAL_ENTRY(Float64RoundTruncate, 1, 0, 1), // -- 319 OPTIONAL_ENTRY(Float64RoundTruncate, 1, 0, 1), // --
312 OPTIONAL_ENTRY(Float64RoundTiesAway, 1, 0, 1), // -- 320 OPTIONAL_ENTRY(Float64RoundTiesAway, 1, 0, 1), // --
313 #undef OPTIONAL_ENTRY 321 #undef OPTIONAL_ENTRY
314 }; 322 };
315 } // namespace 323 } // namespace
316 324
317 325
318 class MachineOptionalOperatorTest : public TestWithZone { 326 class MachineOptionalOperatorTest : public TestWithZone {
319 protected: 327 protected:
320 MachineType word_type() { return kMachPtr; } 328 MachineRepresentation word_rep() {
329 return MachineType::PointerRepresentation();
330 }
321 }; 331 };
322 332
323 333
324 TEST_F(MachineOptionalOperatorTest, OptionalOperators) { 334 TEST_F(MachineOptionalOperatorTest, OptionalOperators) {
325 TRACED_FOREACH(OptionalOperatorEntry, pop, kOptionalOperators) { 335 TRACED_FOREACH(OptionalOperatorEntry, pop, kOptionalOperators) {
326 TRACED_FOREACH(MachineType, machine_rep1, kMachineReps) { 336 TRACED_FOREACH(MachineRepresentation, machine_rep1, kMachineReps) {
327 MachineOperatorBuilder machine1(zone(), machine_rep1, pop.enabling_flag); 337 MachineOperatorBuilder machine1(zone(), machine_rep1, pop.enabling_flag);
328 TRACED_FOREACH(MachineType, machine_rep2, kMachineReps) { 338 TRACED_FOREACH(MachineRepresentation, machine_rep2, kMachineReps) {
329 MachineOperatorBuilder machine2(zone(), machine_rep2, 339 MachineOperatorBuilder machine2(zone(), machine_rep2,
330 pop.enabling_flag); 340 pop.enabling_flag);
331 const Operator* op1 = (machine1.*pop.constructor)().op(); 341 const Operator* op1 = (machine1.*pop.constructor)().op();
332 const Operator* op2 = (machine2.*pop.constructor)().op(); 342 const Operator* op2 = (machine2.*pop.constructor)().op();
333 EXPECT_EQ(op1, op2); 343 EXPECT_EQ(op1, op2);
334 EXPECT_EQ(pop.value_input_count, op1->ValueInputCount()); 344 EXPECT_EQ(pop.value_input_count, op1->ValueInputCount());
335 EXPECT_EQ(pop.control_input_count, op1->ControlInputCount()); 345 EXPECT_EQ(pop.control_input_count, op1->ControlInputCount());
336 EXPECT_EQ(pop.value_output_count, op1->ValueOutputCount()); 346 EXPECT_EQ(pop.value_output_count, op1->ValueOutputCount());
337 347
338 MachineOperatorBuilder machine3(zone(), word_type()); 348 MachineOperatorBuilder machine3(zone(), word_rep());
339 EXPECT_TRUE((machine1.*pop.constructor)().IsSupported()); 349 EXPECT_TRUE((machine1.*pop.constructor)().IsSupported());
340 EXPECT_FALSE((machine3.*pop.constructor)().IsSupported()); 350 EXPECT_FALSE((machine3.*pop.constructor)().IsSupported());
341 } 351 }
342 } 352 }
343 } 353 }
344 } 354 }
345 355
346 356
347 // ----------------------------------------------------------------------------- 357 // -----------------------------------------------------------------------------
348 // Pseudo operators. 358 // Pseudo operators.
349 359
350 360
351 namespace { 361 namespace {
352 362
353 typedef TestWithZone MachineOperatorTest; 363 typedef TestWithZone MachineOperatorTest;
354 364
355 } // namespace 365 } // namespace
356 366
357 367
358 TEST_F(MachineOperatorTest, PseudoOperatorsWhenWordSizeIs32Bit) { 368 TEST_F(MachineOperatorTest, PseudoOperatorsWhenWordSizeIs32Bit) {
359 MachineOperatorBuilder machine(zone(), kRepWord32); 369 MachineOperatorBuilder machine(zone(), MachineRepresentation::kWord32);
360 EXPECT_EQ(machine.Word32And(), machine.WordAnd()); 370 EXPECT_EQ(machine.Word32And(), machine.WordAnd());
361 EXPECT_EQ(machine.Word32Or(), machine.WordOr()); 371 EXPECT_EQ(machine.Word32Or(), machine.WordOr());
362 EXPECT_EQ(machine.Word32Xor(), machine.WordXor()); 372 EXPECT_EQ(machine.Word32Xor(), machine.WordXor());
363 EXPECT_EQ(machine.Word32Shl(), machine.WordShl()); 373 EXPECT_EQ(machine.Word32Shl(), machine.WordShl());
364 EXPECT_EQ(machine.Word32Shr(), machine.WordShr()); 374 EXPECT_EQ(machine.Word32Shr(), machine.WordShr());
365 EXPECT_EQ(machine.Word32Sar(), machine.WordSar()); 375 EXPECT_EQ(machine.Word32Sar(), machine.WordSar());
366 EXPECT_EQ(machine.Word32Ror(), machine.WordRor()); 376 EXPECT_EQ(machine.Word32Ror(), machine.WordRor());
367 EXPECT_EQ(machine.Word32Equal(), machine.WordEqual()); 377 EXPECT_EQ(machine.Word32Equal(), machine.WordEqual());
368 EXPECT_EQ(machine.Int32Add(), machine.IntAdd()); 378 EXPECT_EQ(machine.Int32Add(), machine.IntAdd());
369 EXPECT_EQ(machine.Int32Sub(), machine.IntSub()); 379 EXPECT_EQ(machine.Int32Sub(), machine.IntSub());
370 EXPECT_EQ(machine.Int32Mul(), machine.IntMul()); 380 EXPECT_EQ(machine.Int32Mul(), machine.IntMul());
371 EXPECT_EQ(machine.Int32Div(), machine.IntDiv()); 381 EXPECT_EQ(machine.Int32Div(), machine.IntDiv());
372 EXPECT_EQ(machine.Uint32Div(), machine.UintDiv()); 382 EXPECT_EQ(machine.Uint32Div(), machine.UintDiv());
373 EXPECT_EQ(machine.Int32Mod(), machine.IntMod()); 383 EXPECT_EQ(machine.Int32Mod(), machine.IntMod());
374 EXPECT_EQ(machine.Uint32Mod(), machine.UintMod()); 384 EXPECT_EQ(machine.Uint32Mod(), machine.UintMod());
375 EXPECT_EQ(machine.Int32LessThan(), machine.IntLessThan()); 385 EXPECT_EQ(machine.Int32LessThan(), machine.IntLessThan());
376 EXPECT_EQ(machine.Int32LessThanOrEqual(), machine.IntLessThanOrEqual()); 386 EXPECT_EQ(machine.Int32LessThanOrEqual(), machine.IntLessThanOrEqual());
377 } 387 }
378 388
379 389
380 TEST_F(MachineOperatorTest, PseudoOperatorsWhenWordSizeIs64Bit) { 390 TEST_F(MachineOperatorTest, PseudoOperatorsWhenWordSizeIs64Bit) {
381 MachineOperatorBuilder machine(zone(), kRepWord64); 391 MachineOperatorBuilder machine(zone(), MachineRepresentation::kWord64);
382 EXPECT_EQ(machine.Word64And(), machine.WordAnd()); 392 EXPECT_EQ(machine.Word64And(), machine.WordAnd());
383 EXPECT_EQ(machine.Word64Or(), machine.WordOr()); 393 EXPECT_EQ(machine.Word64Or(), machine.WordOr());
384 EXPECT_EQ(machine.Word64Xor(), machine.WordXor()); 394 EXPECT_EQ(machine.Word64Xor(), machine.WordXor());
385 EXPECT_EQ(machine.Word64Shl(), machine.WordShl()); 395 EXPECT_EQ(machine.Word64Shl(), machine.WordShl());
386 EXPECT_EQ(machine.Word64Shr(), machine.WordShr()); 396 EXPECT_EQ(machine.Word64Shr(), machine.WordShr());
387 EXPECT_EQ(machine.Word64Sar(), machine.WordSar()); 397 EXPECT_EQ(machine.Word64Sar(), machine.WordSar());
388 EXPECT_EQ(machine.Word64Ror(), machine.WordRor()); 398 EXPECT_EQ(machine.Word64Ror(), machine.WordRor());
389 EXPECT_EQ(machine.Word64Equal(), machine.WordEqual()); 399 EXPECT_EQ(machine.Word64Equal(), machine.WordEqual());
390 EXPECT_EQ(machine.Int64Add(), machine.IntAdd()); 400 EXPECT_EQ(machine.Int64Add(), machine.IntAdd());
391 EXPECT_EQ(machine.Int64Sub(), machine.IntSub()); 401 EXPECT_EQ(machine.Int64Sub(), machine.IntSub());
392 EXPECT_EQ(machine.Int64Mul(), machine.IntMul()); 402 EXPECT_EQ(machine.Int64Mul(), machine.IntMul());
393 EXPECT_EQ(machine.Int64Div(), machine.IntDiv()); 403 EXPECT_EQ(machine.Int64Div(), machine.IntDiv());
394 EXPECT_EQ(machine.Uint64Div(), machine.UintDiv()); 404 EXPECT_EQ(machine.Uint64Div(), machine.UintDiv());
395 EXPECT_EQ(machine.Int64Mod(), machine.IntMod()); 405 EXPECT_EQ(machine.Int64Mod(), machine.IntMod());
396 EXPECT_EQ(machine.Uint64Mod(), machine.UintMod()); 406 EXPECT_EQ(machine.Uint64Mod(), machine.UintMod());
397 EXPECT_EQ(machine.Int64LessThan(), machine.IntLessThan()); 407 EXPECT_EQ(machine.Int64LessThan(), machine.IntLessThan());
398 EXPECT_EQ(machine.Int64LessThanOrEqual(), machine.IntLessThanOrEqual()); 408 EXPECT_EQ(machine.Int64LessThanOrEqual(), machine.IntLessThanOrEqual());
399 } 409 }
400 410
401 } // namespace compiler 411 } // namespace compiler
402 } // namespace internal 412 } // namespace internal
403 } // namespace v8 413 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698