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

Side by Side Diff: test/cctest/test-assembler-mips.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 | « src/mips64/simulator-mips64.cc ('k') | test/cctest/test-assembler-mips64.cc » ('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 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 __ jr(ra); 59 __ jr(ra);
60 __ nop(); 60 __ nop();
61 61
62 CodeDesc desc; 62 CodeDesc desc;
63 assm.GetCode(&desc); 63 assm.GetCode(&desc);
64 Handle<Code> code = isolate->factory()->NewCode( 64 Handle<Code> code = isolate->factory()->NewCode(
65 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 65 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
66 F2 f = FUNCTION_CAST<F2>(code->entry()); 66 F2 f = FUNCTION_CAST<F2>(code->entry());
67 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0)); 67 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0));
68 ::printf("f() = %d\n", res); 68 ::printf("f() = %d\n", res);
69 CHECK_EQ(0xabc, res); 69 CHECK_EQ(static_cast<int32_t>(0xabc), res);
70 } 70 }
71 71
72 72
73 TEST(MIPS1) { 73 TEST(MIPS1) {
74 CcTest::InitializeVM(); 74 CcTest::InitializeVM();
75 Isolate* isolate = CcTest::i_isolate(); 75 Isolate* isolate = CcTest::i_isolate();
76 HandleScope scope(isolate); 76 HandleScope scope(isolate);
77 77
78 MacroAssembler assm(isolate, NULL, 0); 78 MacroAssembler assm(isolate, NULL, 0);
79 Label L, C; 79 Label L, C;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 __ jr(ra); 233 __ jr(ra);
234 __ nop(); 234 __ nop();
235 235
236 CodeDesc desc; 236 CodeDesc desc;
237 assm.GetCode(&desc); 237 assm.GetCode(&desc);
238 Handle<Code> code = isolate->factory()->NewCode( 238 Handle<Code> code = isolate->factory()->NewCode(
239 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 239 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
240 F2 f = FUNCTION_CAST<F2>(code->entry()); 240 F2 f = FUNCTION_CAST<F2>(code->entry());
241 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0)); 241 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0));
242 ::printf("f() = %d\n", res); 242 ::printf("f() = %d\n", res);
243 CHECK_EQ(0x31415926, res); 243 CHECK_EQ(static_cast<int32_t>(0x31415926), res);
244 } 244 }
245 245
246 246
247 TEST(MIPS3) { 247 TEST(MIPS3) {
248 // Test floating point instructions. 248 // Test floating point instructions.
249 CcTest::InitializeVM(); 249 CcTest::InitializeVM();
250 Isolate* isolate = CcTest::i_isolate(); 250 Isolate* isolate = CcTest::i_isolate();
251 HandleScope scope(isolate); 251 HandleScope scope(isolate);
252 252
253 typedef struct { 253 typedef struct {
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 CodeDesc desc; 516 CodeDesc desc;
517 assm.GetCode(&desc); 517 assm.GetCode(&desc);
518 Handle<Code> code = isolate->factory()->NewCode( 518 Handle<Code> code = isolate->factory()->NewCode(
519 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 519 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
520 F3 f = FUNCTION_CAST<F3>(code->entry()); 520 F3 f = FUNCTION_CAST<F3>(code->entry());
521 t.ui = 0x11223344; 521 t.ui = 0x11223344;
522 t.si = 0x99aabbcc; 522 t.si = 0x99aabbcc;
523 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 523 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
524 USE(dummy); 524 USE(dummy);
525 525
526 CHECK_EQ(0x11223344, t.r1); 526 CHECK_EQ(static_cast<int32_t>(0x11223344), t.r1);
527 #if __BYTE_ORDER == __LITTLE_ENDIAN 527 #if __BYTE_ORDER == __LITTLE_ENDIAN
528 CHECK_EQ(0x3344, t.r2); 528 CHECK_EQ(static_cast<int32_t>(0x3344), t.r2);
529 CHECK_EQ(0xffffbbcc, t.r3); 529 CHECK_EQ(static_cast<int32_t>(0xffffbbcc), t.r3);
530 CHECK_EQ(0x0000bbcc, t.r4); 530 CHECK_EQ(static_cast<int32_t>(0x0000bbcc), t.r4);
531 CHECK_EQ(0xffffffcc, t.r5); 531 CHECK_EQ(static_cast<int32_t>(0xffffffcc), t.r5);
532 CHECK_EQ(0x3333bbcc, t.r6); 532 CHECK_EQ(static_cast<int32_t>(0x3333bbcc), t.r6);
533 #elif __BYTE_ORDER == __BIG_ENDIAN 533 #elif __BYTE_ORDER == __BIG_ENDIAN
534 CHECK_EQ(0x1122, t.r2); 534 CHECK_EQ(static_cast<int32_t>(0x1122), t.r2);
535 CHECK_EQ(0xffff99aa, t.r3); 535 CHECK_EQ(static_cast<int32_t>(0xffff99aa), t.r3);
536 CHECK_EQ(0x000099aa, t.r4); 536 CHECK_EQ(static_cast<int32_t>(0x000099aa), t.r4);
537 CHECK_EQ(0xffffff99, t.r5); 537 CHECK_EQ(static_cast<int32_t>(0xffffff99), t.r5);
538 CHECK_EQ(0x99aa3333, t.r6); 538 CHECK_EQ(static_cast<int32_t>(0x99aa3333), t.r6);
539 #else 539 #else
540 #error Unknown endianness 540 #error Unknown endianness
541 #endif 541 #endif
542 } 542 }
543 543
544 544
545 TEST(MIPS7) { 545 TEST(MIPS7) {
546 // Test floating point compare and branch instructions. 546 // Test floating point compare and branch instructions.
547 CcTest::InitializeVM(); 547 CcTest::InitializeVM();
548 Isolate* isolate = CcTest::i_isolate(); 548 Isolate* isolate = CcTest::i_isolate();
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 __ nop(); 703 __ nop();
704 704
705 CodeDesc desc; 705 CodeDesc desc;
706 assm.GetCode(&desc); 706 assm.GetCode(&desc);
707 Handle<Code> code = isolate->factory()->NewCode( 707 Handle<Code> code = isolate->factory()->NewCode(
708 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 708 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
709 F3 f = FUNCTION_CAST<F3>(code->entry()); 709 F3 f = FUNCTION_CAST<F3>(code->entry());
710 t.input = 0x12345678; 710 t.input = 0x12345678;
711 Object* dummy = CALL_GENERATED_CODE(f, &t, 0x0, 0, 0, 0); 711 Object* dummy = CALL_GENERATED_CODE(f, &t, 0x0, 0, 0, 0);
712 USE(dummy); 712 USE(dummy);
713 CHECK_EQ(0x81234567, t.result_rotr_4); 713 CHECK_EQ(static_cast<int32_t>(0x81234567), t.result_rotr_4);
714 CHECK_EQ(0x78123456, t.result_rotr_8); 714 CHECK_EQ(static_cast<int32_t>(0x78123456), t.result_rotr_8);
715 CHECK_EQ(0x67812345, t.result_rotr_12); 715 CHECK_EQ(static_cast<int32_t>(0x67812345), t.result_rotr_12);
716 CHECK_EQ(0x56781234, t.result_rotr_16); 716 CHECK_EQ(static_cast<int32_t>(0x56781234), t.result_rotr_16);
717 CHECK_EQ(0x45678123, t.result_rotr_20); 717 CHECK_EQ(static_cast<int32_t>(0x45678123), t.result_rotr_20);
718 CHECK_EQ(0x34567812, t.result_rotr_24); 718 CHECK_EQ(static_cast<int32_t>(0x34567812), t.result_rotr_24);
719 CHECK_EQ(0x23456781, t.result_rotr_28); 719 CHECK_EQ(static_cast<int32_t>(0x23456781), t.result_rotr_28);
720 720
721 CHECK_EQ(0x81234567, t.result_rotrv_4); 721 CHECK_EQ(static_cast<int32_t>(0x81234567), t.result_rotrv_4);
722 CHECK_EQ(0x78123456, t.result_rotrv_8); 722 CHECK_EQ(static_cast<int32_t>(0x78123456), t.result_rotrv_8);
723 CHECK_EQ(0x67812345, t.result_rotrv_12); 723 CHECK_EQ(static_cast<int32_t>(0x67812345), t.result_rotrv_12);
724 CHECK_EQ(0x56781234, t.result_rotrv_16); 724 CHECK_EQ(static_cast<int32_t>(0x56781234), t.result_rotrv_16);
725 CHECK_EQ(0x45678123, t.result_rotrv_20); 725 CHECK_EQ(static_cast<int32_t>(0x45678123), t.result_rotrv_20);
726 CHECK_EQ(0x34567812, t.result_rotrv_24); 726 CHECK_EQ(static_cast<int32_t>(0x34567812), t.result_rotrv_24);
727 CHECK_EQ(0x23456781, t.result_rotrv_28); 727 CHECK_EQ(static_cast<int32_t>(0x23456781), t.result_rotrv_28);
728 } 728 }
729 729
730 730
731 TEST(MIPS9) { 731 TEST(MIPS9) {
732 // Test BRANCH improvements. 732 // Test BRANCH improvements.
733 CcTest::InitializeVM(); 733 CcTest::InitializeVM();
734 Isolate* isolate = CcTest::i_isolate(); 734 Isolate* isolate = CcTest::i_isolate();
735 HandleScope scope(isolate); 735 HandleScope scope(isolate);
736 736
737 MacroAssembler assm(isolate, NULL, 0); 737 MacroAssembler assm(isolate, NULL, 0);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 CodeDesc desc; 802 CodeDesc desc;
803 assm.GetCode(&desc); 803 assm.GetCode(&desc);
804 Handle<Code> code = isolate->factory()->NewCode( 804 Handle<Code> code = isolate->factory()->NewCode(
805 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 805 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
806 F3 f = FUNCTION_CAST<F3>(code->entry()); 806 F3 f = FUNCTION_CAST<F3>(code->entry());
807 t.a = 2.147483646e+09; // 0x7FFFFFFE -> 0xFF80000041DFFFFF as double. 807 t.a = 2.147483646e+09; // 0x7FFFFFFE -> 0xFF80000041DFFFFF as double.
808 t.b_word = 0x0ff00ff0; // 0x0FF00FF0 -> 0x as double. 808 t.b_word = 0x0ff00ff0; // 0x0FF00FF0 -> 0x as double.
809 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 809 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
810 USE(dummy); 810 USE(dummy);
811 811
812 CHECK_EQ(0x41DFFFFF, t.dbl_exp); 812 CHECK_EQ(static_cast<int32_t>(0x41DFFFFF), t.dbl_exp);
813 CHECK_EQ(0xFF800000, t.dbl_mant); 813 CHECK_EQ(static_cast<int32_t>(0xFF800000), t.dbl_mant);
814 CHECK_EQ(0X7FFFFFFE, t.word); 814 CHECK_EQ(static_cast<int32_t>(0x7FFFFFFE), t.word);
815 // 0x0FF00FF0 -> 2.6739096+e08 815 // 0x0FF00FF0 -> 2.6739096+e08
816 CHECK_EQ(2.6739096e08, t.b); 816 CHECK_EQ(2.6739096e08, t.b);
817 } 817 }
818 818
819 819
820 TEST(MIPS11) { 820 TEST(MIPS11) {
821 // Do not run test on MIPS32r6, as these instructions are removed. 821 // Do not run test on MIPS32r6, as these instructions are removed.
822 if (IsMipsArchVariant(kMips32r6)) return; 822 if (IsMipsArchVariant(kMips32r6)) return;
823 // Test LWL, LWR, SWL and SWR instructions. 823 // Test LWL, LWR, SWL and SWR instructions.
824 CcTest::InitializeVM(); 824 CcTest::InitializeVM();
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 Handle<Code> code = isolate->factory()->NewCode( 933 Handle<Code> code = isolate->factory()->NewCode(
934 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 934 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
935 F3 f = FUNCTION_CAST<F3>(code->entry()); 935 F3 f = FUNCTION_CAST<F3>(code->entry());
936 t.reg_init = 0xaabbccdd; 936 t.reg_init = 0xaabbccdd;
937 t.mem_init = 0x11223344; 937 t.mem_init = 0x11223344;
938 938
939 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 939 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
940 USE(dummy); 940 USE(dummy);
941 941
942 #if __BYTE_ORDER == __LITTLE_ENDIAN 942 #if __BYTE_ORDER == __LITTLE_ENDIAN
943 CHECK_EQ(0x44bbccdd, t.lwl_0); 943 CHECK_EQ(static_cast<int32_t>(0x44bbccdd), t.lwl_0);
944 CHECK_EQ(0x3344ccdd, t.lwl_1); 944 CHECK_EQ(static_cast<int32_t>(0x3344ccdd), t.lwl_1);
945 CHECK_EQ(0x223344dd, t.lwl_2); 945 CHECK_EQ(static_cast<int32_t>(0x223344dd), t.lwl_2);
946 CHECK_EQ(0x11223344, t.lwl_3); 946 CHECK_EQ(static_cast<int32_t>(0x11223344), t.lwl_3);
947 947
948 CHECK_EQ(0x11223344, t.lwr_0); 948 CHECK_EQ(static_cast<int32_t>(0x11223344), t.lwr_0);
949 CHECK_EQ(0xaa112233, t.lwr_1); 949 CHECK_EQ(static_cast<int32_t>(0xaa112233), t.lwr_1);
950 CHECK_EQ(0xaabb1122, t.lwr_2); 950 CHECK_EQ(static_cast<int32_t>(0xaabb1122), t.lwr_2);
951 CHECK_EQ(0xaabbcc11, t.lwr_3); 951 CHECK_EQ(static_cast<int32_t>(0xaabbcc11), t.lwr_3);
952 952
953 CHECK_EQ(0x112233aa, t.swl_0); 953 CHECK_EQ(static_cast<int32_t>(0x112233aa), t.swl_0);
954 CHECK_EQ(0x1122aabb, t.swl_1); 954 CHECK_EQ(static_cast<int32_t>(0x1122aabb), t.swl_1);
955 CHECK_EQ(0x11aabbcc, t.swl_2); 955 CHECK_EQ(static_cast<int32_t>(0x11aabbcc), t.swl_2);
956 CHECK_EQ(0xaabbccdd, t.swl_3); 956 CHECK_EQ(static_cast<int32_t>(0xaabbccdd), t.swl_3);
957 957
958 CHECK_EQ(0xaabbccdd, t.swr_0); 958 CHECK_EQ(static_cast<int32_t>(0xaabbccdd), t.swr_0);
959 CHECK_EQ(0xbbccdd44, t.swr_1); 959 CHECK_EQ(static_cast<int32_t>(0xbbccdd44), t.swr_1);
960 CHECK_EQ(0xccdd3344, t.swr_2); 960 CHECK_EQ(static_cast<int32_t>(0xccdd3344), t.swr_2);
961 CHECK_EQ(0xdd223344, t.swr_3); 961 CHECK_EQ(static_cast<int32_t>(0xdd223344), t.swr_3);
962 #elif __BYTE_ORDER == __BIG_ENDIAN 962 #elif __BYTE_ORDER == __BIG_ENDIAN
963 CHECK_EQ(0x11223344, t.lwl_0); 963 11223344, t.lwl_0);
964 CHECK_EQ(0x223344dd, t.lwl_1); 964 CHECK_EQ(static_cast<int32_t>(0x223344dd), t.lwl_1);
965 CHECK_EQ(0x3344ccdd, t.lwl_2); 965 CHECK_EQ(static_cast<int32_t>(0x3344ccdd), t.lwl_2);
966 CHECK_EQ(0x44bbccdd, t.lwl_3); 966 CHECK_EQ(static_cast<int32_t>(0x44bbccdd), t.lwl_3);
967 967
968 CHECK_EQ(0xaabbcc11, t.lwr_0); 968 CHECK_EQ(static_cast<int32_t>(0xaabbcc11), t.lwr_0);
969 CHECK_EQ(0xaabb1122, t.lwr_1); 969 CHECK_EQ(static_cast<int32_t>(0xaabb1122), t.lwr_1);
970 CHECK_EQ(0xaa112233, t.lwr_2); 970 CHECK_EQ(static_cast<int32_t>(0xaa112233), t.lwr_2);
971 CHECK_EQ(0x11223344, t.lwr_3); 971 CHECK_EQ(static_cast<int32_t>(0x11223344), t.lwr_3);
972 972
973 CHECK_EQ(0xaabbccdd, t.swl_0); 973 CHECK_EQ(static_cast<int32_t>(0xaabbccdd), t.swl_0);
974 CHECK_EQ(0x11aabbcc, t.swl_1); 974 CHECK_EQ(static_cast<int32_t>(0x11aabbcc), t.swl_1);
975 CHECK_EQ(0x1122aabb, t.swl_2); 975 CHECK_EQ(static_cast<int32_t>(0x1122aabb), t.swl_2);
976 CHECK_EQ(0x112233aa, t.swl_3); 976 CHECK_EQ(static_cast<int32_t>(0x112233aa), t.swl_3);
977 977
978 CHECK_EQ(0xdd223344, t.swr_0); 978 CHECK_EQ(static_cast<int32_t>(0xdd223344), t.swr_0);
979 CHECK_EQ(0xccdd3344, t.swr_1); 979 CHECK_EQ(static_cast<int32_t>(0xccdd3344), t.swr_1);
980 CHECK_EQ(0xbbccdd44, t.swr_2); 980 CHECK_EQ(static_cast<int32_t>(0xbbccdd44), t.swr_2);
981 CHECK_EQ(0xaabbccdd, t.swr_3); 981 CHECK_EQ(static_cast<int32_t>(0xaabbccdd), t.swr_3);
982 #else 982 #else
983 #error Unknown endianness 983 #error Unknown endianness
984 #endif 984 #endif
985 } 985 }
986 986
987 987
988 TEST(MIPS12) { 988 TEST(MIPS12) {
989 CcTest::InitializeVM(); 989 CcTest::InitializeVM();
990 Isolate* isolate = CcTest::i_isolate(); 990 Isolate* isolate = CcTest::i_isolate();
991 HandleScope scope(isolate); 991 HandleScope scope(isolate);
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 t.neg_round_down_in = -123.49; 1238 t.neg_round_down_in = -123.49;
1239 t.err1_in = 123.51; 1239 t.err1_in = 123.51;
1240 t.err2_in = 1; 1240 t.err2_in = 1;
1241 t.err3_in = static_cast<double>(1) + 0xFFFFFFFF; 1241 t.err3_in = static_cast<double>(1) + 0xFFFFFFFF;
1242 t.err4_in = NAN; 1242 t.err4_in = NAN;
1243 1243
1244 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 1244 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
1245 USE(dummy); 1245 USE(dummy);
1246 1246
1247 #define GET_FPU_ERR(x) (static_cast<int>(x & kFCSRFlagMask)) 1247 #define GET_FPU_ERR(x) (static_cast<int>(x & kFCSRFlagMask))
1248 #define CHECK_ROUND_RESULT(type) \ 1248 #define CHECK_ROUND_RESULT(type) \
1249 CHECK(GET_FPU_ERR(t.type##_err1_out) & kFCSRInexactFlagMask); \ 1249 CHECK(GET_FPU_ERR(t.type##_err1_out) & kFCSRInexactFlagMask); \
1250 CHECK_EQ(0, GET_FPU_ERR(t.type##_err2_out)); \ 1250 CHECK_EQ(0, GET_FPU_ERR(t.type##_err2_out)); \
1251 CHECK(GET_FPU_ERR(t.type##_err3_out) & kFCSRInvalidOpFlagMask); \ 1251 CHECK(GET_FPU_ERR(t.type##_err3_out) & kFCSRInvalidOpFlagMask); \
1252 CHECK(GET_FPU_ERR(t.type##_err4_out) & kFCSRInvalidOpFlagMask); \ 1252 CHECK(GET_FPU_ERR(t.type##_err4_out) & kFCSRInvalidOpFlagMask); \
1253 CHECK_EQ(kFPUInvalidResult, t.type##_invalid_result); 1253 CHECK_EQ(kFPUInvalidResult, static_cast<uint>(t.type##_invalid_result));
1254 1254
1255 CHECK_ROUND_RESULT(round); 1255 CHECK_ROUND_RESULT(round);
1256 CHECK_ROUND_RESULT(floor); 1256 CHECK_ROUND_RESULT(floor);
1257 CHECK_ROUND_RESULT(ceil); 1257 CHECK_ROUND_RESULT(ceil);
1258 CHECK_ROUND_RESULT(cvt); 1258 CHECK_ROUND_RESULT(cvt);
1259 } 1259 }
1260 1260
1261 1261
1262 TEST(MIPS15) { 1262 TEST(MIPS15) {
1263 // Test chaining of label usages within instructions (issue 1644). 1263 // Test chaining of label usages within instructions (issue 1644).
1264 CcTest::InitializeVM(); 1264 CcTest::InitializeVM();
1265 Isolate* isolate = CcTest::i_isolate(); 1265 Isolate* isolate = CcTest::i_isolate();
1266 HandleScope scope(isolate); 1266 HandleScope scope(isolate);
1267 Assembler assm(isolate, NULL, 0); 1267 Assembler assm(isolate, NULL, 0);
1268 1268
1269 Label target; 1269 Label target;
1270 __ beq(v0, v1, &target); 1270 __ beq(v0, v1, &target);
1271 __ nop(); 1271 __ nop();
1272 __ bne(v0, v1, &target); 1272 __ bne(v0, v1, &target);
1273 __ nop(); 1273 __ nop();
1274 __ bind(&target); 1274 __ bind(&target);
1275 __ nop(); 1275 __ nop();
1276 } 1276 }
1277 1277
1278 #undef __ 1278 #undef __
OLDNEW
« no previous file with comments | « src/mips64/simulator-mips64.cc ('k') | test/cctest/test-assembler-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698