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

Side by Side Diff: test/cctest/test-assembler-mips64.cc

Issue 892613003: MIPS: Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove printf formatter changes. Created 5 years, 10 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
« no previous file with comments | « test/cctest/test-assembler-mips.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 t.a = 1.5e22; 400 t.a = 1.5e22;
401 t.b = 2.75e11; 401 t.b = 2.75e11;
402 t.c = 17.17; 402 t.c = 17.17;
403 t.d = -2.75e11; 403 t.d = -2.75e11;
404 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 404 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
405 USE(dummy); 405 USE(dummy);
406 406
407 CHECK_EQ(2.75e11, t.a); 407 CHECK_EQ(2.75e11, t.a);
408 CHECK_EQ(2.75e11, t.b); 408 CHECK_EQ(2.75e11, t.b);
409 CHECK_EQ(1.5e22, t.c); 409 CHECK_EQ(1.5e22, t.c);
410 CHECK_EQ(0xffffffffc25001d1L, t.high); 410 CHECK_EQ(static_cast<int64_t>(0xffffffffc25001d1L), t.high);
411 CHECK_EQ(0xffffffffbf800000L, t.low); 411 CHECK_EQ(static_cast<int64_t>(0xffffffffbf800000L), t.low);
412 } 412 }
413 413
414 414
415 TEST(MIPS5) { 415 TEST(MIPS5) {
416 // Test conversions between doubles and integers. 416 // Test conversions between doubles and integers.
417 CcTest::InitializeVM(); 417 CcTest::InitializeVM();
418 Isolate* isolate = CcTest::i_isolate(); 418 Isolate* isolate = CcTest::i_isolate();
419 HandleScope scope(isolate); 419 HandleScope scope(isolate);
420 420
421 typedef struct { 421 typedef struct {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 CodeDesc desc; 531 CodeDesc desc;
532 assm.GetCode(&desc); 532 assm.GetCode(&desc);
533 Handle<Code> code = isolate->factory()->NewCode( 533 Handle<Code> code = isolate->factory()->NewCode(
534 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 534 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
535 F3 f = FUNCTION_CAST<F3>(code->entry()); 535 F3 f = FUNCTION_CAST<F3>(code->entry());
536 t.ui = 0x11223344; 536 t.ui = 0x11223344;
537 t.si = 0x99aabbcc; 537 t.si = 0x99aabbcc;
538 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 538 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
539 USE(dummy); 539 USE(dummy);
540 540
541 CHECK_EQ(0x11223344, t.r1); 541 CHECK_EQ(static_cast<int32_t>(0x11223344), t.r1);
542 CHECK_EQ(0x3344, t.r2); 542 CHECK_EQ(static_cast<int32_t>(0x3344), t.r2);
543 CHECK_EQ(0xffffbbcc, t.r3); 543 CHECK_EQ(static_cast<int32_t>(0xffffbbcc), t.r3);
544 CHECK_EQ(0x0000bbcc, t.r4); 544 CHECK_EQ(static_cast<int32_t>(0x0000bbcc), t.r4);
545 CHECK_EQ(0xffffffcc, t.r5); 545 CHECK_EQ(static_cast<int32_t>(0xffffffcc), t.r5);
546 CHECK_EQ(0x3333bbcc, t.r6); 546 CHECK_EQ(static_cast<int32_t>(0x3333bbcc), t.r6);
547 } 547 }
548 548
549 549
550 TEST(MIPS7) { 550 TEST(MIPS7) {
551 // Test floating point compare and branch instructions. 551 // Test floating point compare and branch instructions.
552 CcTest::InitializeVM(); 552 CcTest::InitializeVM();
553 Isolate* isolate = CcTest::i_isolate(); 553 Isolate* isolate = CcTest::i_isolate();
554 HandleScope scope(isolate); 554 HandleScope scope(isolate);
555 555
556 typedef struct { 556 typedef struct {
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 __ nop(); 705 __ nop();
706 706
707 CodeDesc desc; 707 CodeDesc desc;
708 assm.GetCode(&desc); 708 assm.GetCode(&desc);
709 Handle<Code> code = isolate->factory()->NewCode( 709 Handle<Code> code = isolate->factory()->NewCode(
710 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 710 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
711 F3 f = FUNCTION_CAST<F3>(code->entry()); 711 F3 f = FUNCTION_CAST<F3>(code->entry());
712 t.input = 0x12345678; 712 t.input = 0x12345678;
713 Object* dummy = CALL_GENERATED_CODE(f, &t, 0x0, 0, 0, 0); 713 Object* dummy = CALL_GENERATED_CODE(f, &t, 0x0, 0, 0, 0);
714 USE(dummy); 714 USE(dummy);
715 CHECK_EQ(0x81234567, t.result_rotr_4); 715 CHECK_EQ(static_cast<int32_t>(0x81234567), t.result_rotr_4);
716 CHECK_EQ(0x78123456, t.result_rotr_8); 716 CHECK_EQ(static_cast<int32_t>(0x78123456), t.result_rotr_8);
717 CHECK_EQ(0x67812345, t.result_rotr_12); 717 CHECK_EQ(static_cast<int32_t>(0x67812345), t.result_rotr_12);
718 CHECK_EQ(0x56781234, t.result_rotr_16); 718 CHECK_EQ(static_cast<int32_t>(0x56781234), t.result_rotr_16);
719 CHECK_EQ(0x45678123, t.result_rotr_20); 719 CHECK_EQ(static_cast<int32_t>(0x45678123), t.result_rotr_20);
720 CHECK_EQ(0x34567812, t.result_rotr_24); 720 CHECK_EQ(static_cast<int32_t>(0x34567812), t.result_rotr_24);
721 CHECK_EQ(0x23456781, t.result_rotr_28); 721 CHECK_EQ(static_cast<int32_t>(0x23456781), t.result_rotr_28);
722 722
723 CHECK_EQ(0x81234567, t.result_rotrv_4); 723 CHECK_EQ(static_cast<int32_t>(0x81234567), t.result_rotrv_4);
724 CHECK_EQ(0x78123456, t.result_rotrv_8); 724 CHECK_EQ(static_cast<int32_t>(0x78123456), t.result_rotrv_8);
725 CHECK_EQ(0x67812345, t.result_rotrv_12); 725 CHECK_EQ(static_cast<int32_t>(0x67812345), t.result_rotrv_12);
726 CHECK_EQ(0x56781234, t.result_rotrv_16); 726 CHECK_EQ(static_cast<int32_t>(0x56781234), t.result_rotrv_16);
727 CHECK_EQ(0x45678123, t.result_rotrv_20); 727 CHECK_EQ(static_cast<int32_t>(0x45678123), t.result_rotrv_20);
728 CHECK_EQ(0x34567812, t.result_rotrv_24); 728 CHECK_EQ(static_cast<int32_t>(0x34567812), t.result_rotrv_24);
729 CHECK_EQ(0x23456781, t.result_rotrv_28); 729 CHECK_EQ(static_cast<int32_t>(0x23456781), t.result_rotrv_28);
730 } 730 }
731 731
732 732
733 TEST(MIPS9) { 733 TEST(MIPS9) {
734 // Test BRANCH improvements. 734 // Test BRANCH improvements.
735 CcTest::InitializeVM(); 735 CcTest::InitializeVM();
736 Isolate* isolate = CcTest::i_isolate(); 736 Isolate* isolate = CcTest::i_isolate();
737 HandleScope scope(isolate); 737 HandleScope scope(isolate);
738 738
739 MacroAssembler assm(isolate, NULL, 0); 739 MacroAssembler assm(isolate, NULL, 0);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 assm.GetCode(&desc); 831 assm.GetCode(&desc);
832 Handle<Code> code = isolate->factory()->NewCode( 832 Handle<Code> code = isolate->factory()->NewCode(
833 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 833 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
834 F3 f = FUNCTION_CAST<F3>(code->entry()); 834 F3 f = FUNCTION_CAST<F3>(code->entry());
835 t.a = 2.147483647e9; // 0x7fffffff -> 0x41DFFFFFFFC00000 as double. 835 t.a = 2.147483647e9; // 0x7fffffff -> 0x41DFFFFFFFC00000 as double.
836 t.b_long_hi = 0x000000ff; // 0xFF00FF00FF -> 0x426FE01FE01FE000 as double. 836 t.b_long_hi = 0x000000ff; // 0xFF00FF00FF -> 0x426FE01FE01FE000 as double.
837 t.b_long_lo = 0x00ff00ff; 837 t.b_long_lo = 0x00ff00ff;
838 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 838 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
839 USE(dummy); 839 USE(dummy);
840 840
841 CHECK_EQ(0x41DFFFFF, t.dbl_exp); 841 CHECK_EQ(static_cast<int32_t>(0x41DFFFFF), t.dbl_exp);
842 CHECK_EQ(0xFFC00000, t.dbl_mant); 842 CHECK_EQ(static_cast<int32_t>(0xFFC00000), t.dbl_mant);
843 CHECK_EQ(0, t.long_hi); 843 CHECK_EQ(0, t.long_hi);
844 CHECK_EQ(0x7fffffff, t.long_lo); 844 CHECK_EQ(static_cast<int32_t>(0x7fffffff), t.long_lo);
845 CHECK_EQ(2.147483647e9, t.a_converted); 845 CHECK_EQ(2.147483647e9, t.a_converted);
846 846
847 // 0xFF00FF00FF -> 1.095233372415e12. 847 // 0xFF00FF00FF -> 1.095233372415e12.
848 CHECK_EQ(1.095233372415e12, t.b); 848 CHECK_EQ(1.095233372415e12, t.b);
849 CHECK_EQ(0xFF00FF00FF, t.b_long_as_int64); 849 CHECK_EQ(static_cast<int64_t>(0xFF00FF00FF), t.b_long_as_int64);
850 } 850 }
851 } 851 }
852 852
853 853
854 TEST(MIPS11) { 854 TEST(MIPS11) {
855 // Do not run test on MIPS64r6, as these instructions are removed. 855 // Do not run test on MIPS64r6, as these instructions are removed.
856 if (kArchVariant != kMips64r6) { 856 if (kArchVariant != kMips64r6) {
857 // Test LWL, LWR, SWL and SWR instructions. 857 // Test LWL, LWR, SWL and SWR instructions.
858 CcTest::InitializeVM(); 858 CcTest::InitializeVM();
859 Isolate* isolate = CcTest::i_isolate(); 859 Isolate* isolate = CcTest::i_isolate();
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 assm.GetCode(&desc); 966 assm.GetCode(&desc);
967 Handle<Code> code = isolate->factory()->NewCode( 967 Handle<Code> code = isolate->factory()->NewCode(
968 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 968 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
969 F3 f = FUNCTION_CAST<F3>(code->entry()); 969 F3 f = FUNCTION_CAST<F3>(code->entry());
970 t.reg_init = 0xaabbccdd; 970 t.reg_init = 0xaabbccdd;
971 t.mem_init = 0x11223344; 971 t.mem_init = 0x11223344;
972 972
973 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 973 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
974 USE(dummy); 974 USE(dummy);
975 975
976 CHECK_EQ(0x44bbccdd, t.lwl_0); 976 CHECK_EQ(static_cast<int32_t>(0x44bbccdd), t.lwl_0);
977 CHECK_EQ(0x3344ccdd, t.lwl_1); 977 CHECK_EQ(static_cast<int32_t>(0x3344ccdd), t.lwl_1);
978 CHECK_EQ(0x223344dd, t.lwl_2); 978 CHECK_EQ(static_cast<int32_t>(0x223344dd), t.lwl_2);
979 CHECK_EQ(0x11223344, t.lwl_3); 979 CHECK_EQ(static_cast<int32_t>(0x11223344), t.lwl_3);
980 980
981 CHECK_EQ(0x11223344, t.lwr_0); 981 CHECK_EQ(static_cast<int32_t>(0x11223344), t.lwr_0);
982 CHECK_EQ(0xaa112233, t.lwr_1); 982 CHECK_EQ(static_cast<int32_t>(0xaa112233), t.lwr_1);
983 CHECK_EQ(0xaabb1122, t.lwr_2); 983 CHECK_EQ(static_cast<int32_t>(0xaabb1122), t.lwr_2);
984 CHECK_EQ(0xaabbcc11, t.lwr_3); 984 CHECK_EQ(static_cast<int32_t>(0xaabbcc11), t.lwr_3);
985 985
986 CHECK_EQ(0x112233aa, t.swl_0); 986 CHECK_EQ(static_cast<int32_t>(0x112233aa), t.swl_0);
987 CHECK_EQ(0x1122aabb, t.swl_1); 987 CHECK_EQ(static_cast<int32_t>(0x1122aabb), t.swl_1);
988 CHECK_EQ(0x11aabbcc, t.swl_2); 988 CHECK_EQ(static_cast<int32_t>(0x11aabbcc), t.swl_2);
989 CHECK_EQ(0xaabbccdd, t.swl_3); 989 CHECK_EQ(static_cast<int32_t>(0xaabbccdd), t.swl_3);
990 990
991 CHECK_EQ(0xaabbccdd, t.swr_0); 991 CHECK_EQ(static_cast<int32_t>(0xaabbccdd), t.swr_0);
992 CHECK_EQ(0xbbccdd44, t.swr_1); 992 CHECK_EQ(static_cast<int32_t>(0xbbccdd44), t.swr_1);
993 CHECK_EQ(0xccdd3344, t.swr_2); 993 CHECK_EQ(static_cast<int32_t>(0xccdd3344), t.swr_2);
994 CHECK_EQ(0xdd223344, t.swr_3); 994 CHECK_EQ(static_cast<int32_t>(0xdd223344), t.swr_3);
995 } 995 }
996 } 996 }
997 997
998 998
999 TEST(MIPS12) { 999 TEST(MIPS12) {
1000 CcTest::InitializeVM(); 1000 CcTest::InitializeVM();
1001 Isolate* isolate = CcTest::i_isolate(); 1001 Isolate* isolate = CcTest::i_isolate();
1002 HandleScope scope(isolate); 1002 HandleScope scope(isolate);
1003 1003
1004 typedef struct { 1004 typedef struct {
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 t.r1 = 0x1111111111111111; 1367 t.r1 = 0x1111111111111111;
1368 t.r2 = 0x2222222222222222; 1368 t.r2 = 0x2222222222222222;
1369 t.r3 = 0x3333333333333333; 1369 t.r3 = 0x3333333333333333;
1370 t.r4 = 0x4444444444444444; 1370 t.r4 = 0x4444444444444444;
1371 t.r5 = 0x5555555555555555; 1371 t.r5 = 0x5555555555555555;
1372 t.r6 = 0x6666666666666666; 1372 t.r6 = 0x6666666666666666;
1373 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 1373 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
1374 USE(dummy); 1374 USE(dummy);
1375 1375
1376 // Unsigned data, 32 & 64. 1376 // Unsigned data, 32 & 64.
1377 CHECK_EQ(0x1111111144332211L, t.r1); 1377 CHECK_EQ(static_cast<int64_t>(0x1111111144332211L), t.r1);
1378 CHECK_EQ(0x0000000000002211L, t.r2); 1378 CHECK_EQ(static_cast<int64_t>(0x0000000000002211L), t.r2);
1379 1379
1380 // Signed data, 32 & 64. 1380 // Signed data, 32 & 64.
1381 CHECK_EQ(0x33333333ffffbbccL, t.r3); 1381 CHECK_EQ(static_cast<int64_t>(0x33333333ffffbbccL), t.r3);
1382 CHECK_EQ(0xffffffff0000bbccL, t.r4); 1382 CHECK_EQ(static_cast<int64_t>(0xffffffff0000bbccL), t.r4);
1383 1383
1384 // Signed data, 32 & 64. 1384 // Signed data, 32 & 64.
1385 CHECK_EQ(0x55555555ffffffccL, t.r5); 1385 CHECK_EQ(static_cast<int64_t>(0x55555555ffffffccL), t.r5);
1386 CHECK_EQ(0x000000003333bbccL, t.r6); 1386 CHECK_EQ(static_cast<int64_t>(0x000000003333bbccL), t.r6);
1387 } 1387 }
1388 1388
1389 #undef __ 1389 #undef __
OLDNEW
« no previous file with comments | « test/cctest/test-assembler-mips.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698