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

Side by Side Diff: test/cctest/compiler/codegen-tester.cc

Issue 470593002: Unify MachineType and RepType. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « test/cctest/compiler/codegen-tester.h ('k') | test/cctest/compiler/graph-builder-tester.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "test/cctest/cctest.h" 7 #include "test/cctest/cctest.h"
8 #include "test/cctest/compiler/codegen-tester.h" 8 #include "test/cctest/compiler/codegen-tester.h"
9 #include "test/cctest/compiler/value-helper.h" 9 #include "test/cctest/compiler/value-helper.h"
10 10
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 286
287 287
288 void Int32BinopInputShapeTester::TestAllInputShapes() { 288 void Int32BinopInputShapeTester::TestAllInputShapes() {
289 std::vector<int32_t> inputs = ValueHelper::int32_vector(); 289 std::vector<int32_t> inputs = ValueHelper::int32_vector();
290 int num_int_inputs = static_cast<int>(inputs.size()); 290 int num_int_inputs = static_cast<int>(inputs.size());
291 if (num_int_inputs > 16) num_int_inputs = 16; // limit to 16 inputs 291 if (num_int_inputs > 16) num_int_inputs = 16; // limit to 16 inputs
292 292
293 for (int i = -2; i < num_int_inputs; i++) { // for all left shapes 293 for (int i = -2; i < num_int_inputs; i++) { // for all left shapes
294 for (int j = -2; j < num_int_inputs; j++) { // for all right shapes 294 for (int j = -2; j < num_int_inputs; j++) { // for all right shapes
295 if (i >= 0 && j >= 0) break; // No constant/constant combos 295 if (i >= 0 && j >= 0) break; // No constant/constant combos
296 RawMachineAssemblerTester<int32_t> m(kMachineWord32, kMachineWord32); 296 RawMachineAssemblerTester<int32_t> m(kMachInt32, kMachInt32);
297 Node* p0 = m.Parameter(0); 297 Node* p0 = m.Parameter(0);
298 Node* p1 = m.Parameter(1); 298 Node* p1 = m.Parameter(1);
299 Node* n0; 299 Node* n0;
300 Node* n1; 300 Node* n1;
301 301
302 // left = Parameter | Load | Constant 302 // left = Parameter | Load | Constant
303 if (i == -2) { 303 if (i == -2) {
304 n0 = p0; 304 n0 = p0;
305 } else if (i == -1) { 305 } else if (i == -1) {
306 n0 = m.LoadFromPointer(&input_a, kMachineWord32); 306 n0 = m.LoadFromPointer(&input_a, kMachInt32);
307 } else { 307 } else {
308 n0 = m.Int32Constant(inputs[i]); 308 n0 = m.Int32Constant(inputs[i]);
309 } 309 }
310 310
311 // right = Parameter | Load | Constant 311 // right = Parameter | Load | Constant
312 if (j == -2) { 312 if (j == -2) {
313 n1 = p1; 313 n1 = p1;
314 } else if (j == -1) { 314 } else if (j == -1) {
315 n1 = m.LoadFromPointer(&input_b, kMachineWord32); 315 n1 = m.LoadFromPointer(&input_b, kMachInt32);
316 } else { 316 } else {
317 n1 = m.Int32Constant(inputs[j]); 317 n1 = m.Int32Constant(inputs[j]);
318 } 318 }
319 319
320 gen->gen(&m, n0, n1); 320 gen->gen(&m, n0, n1);
321 321
322 if (false) printf("Int32BinopInputShapeTester i=%d, j=%d\n", i, j); 322 if (false) printf("Int32BinopInputShapeTester i=%d, j=%d\n", i, j);
323 if (i >= 0) { 323 if (i >= 0) {
324 input_a = inputs[i]; 324 input_a = inputs[i];
325 RunRight(&m); 325 RunRight(&m);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 FOR_UINT32_INPUTS(i) { 363 FOR_UINT32_INPUTS(i) {
364 input_b = *i; 364 input_b = *i;
365 int32_t expect = gen->expected(input_a, input_b); 365 int32_t expect = gen->expected(input_a, input_b);
366 if (false) printf(" cmp(a=%d, b=%d) ?== %d\n", input_a, input_b, expect); 366 if (false) printf(" cmp(a=%d, b=%d) ?== %d\n", input_a, input_b, expect);
367 CHECK_EQ(expect, m->Call(input_a, input_b)); 367 CHECK_EQ(expect, m->Call(input_a, input_b));
368 } 368 }
369 } 369 }
370 370
371 371
372 TEST(ParametersEqual) { 372 TEST(ParametersEqual) {
373 RawMachineAssemblerTester<int32_t> m(kMachineWord32, kMachineWord32); 373 RawMachineAssemblerTester<int32_t> m(kMachInt32, kMachInt32);
374 Node* p1 = m.Parameter(1); 374 Node* p1 = m.Parameter(1);
375 CHECK_NE(NULL, p1); 375 CHECK_NE(NULL, p1);
376 Node* p0 = m.Parameter(0); 376 Node* p0 = m.Parameter(0);
377 CHECK_NE(NULL, p0); 377 CHECK_NE(NULL, p0);
378 CHECK_EQ(p0, m.Parameter(0)); 378 CHECK_EQ(p0, m.Parameter(0));
379 CHECK_EQ(p1, m.Parameter(1)); 379 CHECK_EQ(p1, m.Parameter(1));
380 } 380 }
381 381
382 382
383 #if V8_TURBOFAN_TARGET 383 #if V8_TURBOFAN_TARGET
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 TEST(RunHeapNumberConstant) { 479 TEST(RunHeapNumberConstant) {
480 RawMachineAssemblerTester<Object*> m; 480 RawMachineAssemblerTester<Object*> m;
481 Handle<Object> number = m.isolate()->factory()->NewHeapNumber(100.5); 481 Handle<Object> number = m.isolate()->factory()->NewHeapNumber(100.5);
482 m.Return(m.HeapConstant(number)); 482 m.Return(m.HeapConstant(number));
483 Object* result = m.Call(); 483 Object* result = m.Call();
484 CHECK_EQ(result, *number); 484 CHECK_EQ(result, *number);
485 } 485 }
486 486
487 487
488 TEST(RunParam1) { 488 TEST(RunParam1) {
489 RawMachineAssemblerTester<int32_t> m(kMachineWord32); 489 RawMachineAssemblerTester<int32_t> m(kMachInt32);
490 m.Return(m.Parameter(0)); 490 m.Return(m.Parameter(0));
491 491
492 FOR_INT32_INPUTS(i) { 492 FOR_INT32_INPUTS(i) {
493 int32_t result = m.Call(*i); 493 int32_t result = m.Call(*i);
494 CHECK_EQ(*i, result); 494 CHECK_EQ(*i, result);
495 } 495 }
496 } 496 }
497 497
498 498
499 TEST(RunParam2_1) { 499 TEST(RunParam2_1) {
500 RawMachineAssemblerTester<int32_t> m(kMachineWord32, kMachineWord32); 500 RawMachineAssemblerTester<int32_t> m(kMachInt32, kMachInt32);
501 Node* p0 = m.Parameter(0); 501 Node* p0 = m.Parameter(0);
502 Node* p1 = m.Parameter(1); 502 Node* p1 = m.Parameter(1);
503 m.Return(p0); 503 m.Return(p0);
504 USE(p1); 504 USE(p1);
505 505
506 FOR_INT32_INPUTS(i) { 506 FOR_INT32_INPUTS(i) {
507 int32_t result = m.Call(*i, -9999); 507 int32_t result = m.Call(*i, -9999);
508 CHECK_EQ(*i, result); 508 CHECK_EQ(*i, result);
509 } 509 }
510 } 510 }
511 511
512 512
513 TEST(RunParam2_2) { 513 TEST(RunParam2_2) {
514 RawMachineAssemblerTester<int32_t> m(kMachineWord32, kMachineWord32); 514 RawMachineAssemblerTester<int32_t> m(kMachInt32, kMachInt32);
515 Node* p0 = m.Parameter(0); 515 Node* p0 = m.Parameter(0);
516 Node* p1 = m.Parameter(1); 516 Node* p1 = m.Parameter(1);
517 m.Return(p1); 517 m.Return(p1);
518 USE(p0); 518 USE(p0);
519 519
520 FOR_INT32_INPUTS(i) { 520 FOR_INT32_INPUTS(i) {
521 int32_t result = m.Call(-7777, *i); 521 int32_t result = m.Call(-7777, *i);
522 CHECK_EQ(*i, result); 522 CHECK_EQ(*i, result);
523 } 523 }
524 } 524 }
525 525
526 526
527 TEST(RunParam3) { 527 TEST(RunParam3) {
528 for (int i = 0; i < 3; i++) { 528 for (int i = 0; i < 3; i++) {
529 RawMachineAssemblerTester<int32_t> m(kMachineWord32, kMachineWord32, 529 RawMachineAssemblerTester<int32_t> m(kMachInt32, kMachInt32, kMachInt32);
530 kMachineWord32);
531 Node* nodes[] = {m.Parameter(0), m.Parameter(1), m.Parameter(2)}; 530 Node* nodes[] = {m.Parameter(0), m.Parameter(1), m.Parameter(2)};
532 m.Return(nodes[i]); 531 m.Return(nodes[i]);
533 532
534 int p[] = {-99, -77, -88}; 533 int p[] = {-99, -77, -88};
535 FOR_INT32_INPUTS(j) { 534 FOR_INT32_INPUTS(j) {
536 p[i] = *j; 535 p[i] = *j;
537 int32_t result = m.Call(p[0], p[1], p[2]); 536 int32_t result = m.Call(p[0], p[1], p[2]);
538 CHECK_EQ(*j, result); 537 CHECK_EQ(*j, result);
539 } 538 }
540 } 539 }
(...skipping 28 matching lines...) Expand all
569 { 568 {
570 RawMachineAssemblerTester<int32_t> m; 569 RawMachineAssemblerTester<int32_t> m;
571 Float64BinopTester bt(&m); 570 Float64BinopTester bt(&m);
572 bt.AddReturn(bt.param1); 571 bt.AddReturn(bt.param1);
573 572
574 FOR_FLOAT64_INPUTS(i) { CHECK_EQ(*i, bt.call(-11.25, *i)); } 573 FOR_FLOAT64_INPUTS(i) { CHECK_EQ(*i, bt.call(-11.25, *i)); }
575 } 574 }
576 } 575 }
577 576
578 #endif // V8_TURBOFAN_TARGET 577 #endif // V8_TURBOFAN_TARGET
OLDNEW
« no previous file with comments | « test/cctest/compiler/codegen-tester.h ('k') | test/cctest/compiler/graph-builder-tester.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698