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

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

Issue 12300018: Made Isolate a mandatory parameter for everything Handle-related. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed CreateCode calls. Be nicer to MIPS. Created 7 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 | Annotate | Revision Log
« no previous file with comments | « test/cctest/test-assembler-ia32.cc ('k') | test/cctest/test-assembler-x64.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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // Addition. 69 // Addition.
70 __ addu(v0, a0, a1); 70 __ addu(v0, a0, a1);
71 __ jr(ra); 71 __ jr(ra);
72 __ nop(); 72 __ nop();
73 73
74 CodeDesc desc; 74 CodeDesc desc;
75 assm.GetCode(&desc); 75 assm.GetCode(&desc);
76 Object* code = HEAP->CreateCode( 76 Object* code = HEAP->CreateCode(
77 desc, 77 desc,
78 Code::ComputeFlags(Code::STUB), 78 Code::ComputeFlags(Code::STUB),
79 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 79 Handle<Code>())->ToObjectChecked();
80 CHECK(code->IsCode()); 80 CHECK(code->IsCode());
81 F2 f = FUNCTION_CAST<F2>(Code::cast(code)->entry()); 81 F2 f = FUNCTION_CAST<F2>(Code::cast(code)->entry());
82 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0)); 82 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0));
83 ::printf("f() = %d\n", res); 83 ::printf("f() = %d\n", res);
84 CHECK_EQ(0xabc, res); 84 CHECK_EQ(0xabc, res);
85 } 85 }
86 86
87 87
88 TEST(MIPS1) { 88 TEST(MIPS1) {
89 InitializeVM(); 89 InitializeVM();
(...skipping 17 matching lines...) Expand all
107 __ nop(); 107 __ nop();
108 108
109 __ jr(ra); 109 __ jr(ra);
110 __ nop(); 110 __ nop();
111 111
112 CodeDesc desc; 112 CodeDesc desc;
113 assm.GetCode(&desc); 113 assm.GetCode(&desc);
114 Object* code = HEAP->CreateCode( 114 Object* code = HEAP->CreateCode(
115 desc, 115 desc,
116 Code::ComputeFlags(Code::STUB), 116 Code::ComputeFlags(Code::STUB),
117 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 117 Handle<Code>())->ToObjectChecked();
118 CHECK(code->IsCode()); 118 CHECK(code->IsCode());
119 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); 119 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry());
120 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 50, 0, 0, 0, 0)); 120 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 50, 0, 0, 0, 0));
121 ::printf("f() = %d\n", res); 121 ::printf("f() = %d\n", res);
122 CHECK_EQ(1275, res); 122 CHECK_EQ(1275, res);
123 } 123 }
124 124
125 125
126 TEST(MIPS2) { 126 TEST(MIPS2) {
127 InitializeVM(); 127 InitializeVM();
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 247
248 __ bind(&exit); 248 __ bind(&exit);
249 __ jr(ra); 249 __ jr(ra);
250 __ nop(); 250 __ nop();
251 251
252 CodeDesc desc; 252 CodeDesc desc;
253 assm.GetCode(&desc); 253 assm.GetCode(&desc);
254 Object* code = HEAP->CreateCode( 254 Object* code = HEAP->CreateCode(
255 desc, 255 desc,
256 Code::ComputeFlags(Code::STUB), 256 Code::ComputeFlags(Code::STUB),
257 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 257 Handle<Code>())->ToObjectChecked();
258 CHECK(code->IsCode()); 258 CHECK(code->IsCode());
259 F2 f = FUNCTION_CAST<F2>(Code::cast(code)->entry()); 259 F2 f = FUNCTION_CAST<F2>(Code::cast(code)->entry());
260 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0)); 260 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 0xab0, 0xc, 0, 0, 0));
261 ::printf("f() = %d\n", res); 261 ::printf("f() = %d\n", res);
262 CHECK_EQ(0x31415926, res); 262 CHECK_EQ(0x31415926, res);
263 } 263 }
264 264
265 265
266 TEST(MIPS3) { 266 TEST(MIPS3) {
267 // Test floating point instructions. 267 // Test floating point instructions.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 322 }
323 323
324 __ jr(ra); 324 __ jr(ra);
325 __ nop(); 325 __ nop();
326 326
327 CodeDesc desc; 327 CodeDesc desc;
328 assm.GetCode(&desc); 328 assm.GetCode(&desc);
329 Object* code = HEAP->CreateCode( 329 Object* code = HEAP->CreateCode(
330 desc, 330 desc,
331 Code::ComputeFlags(Code::STUB), 331 Code::ComputeFlags(Code::STUB),
332 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 332 Handle<Code>())->ToObjectChecked();
333 CHECK(code->IsCode()); 333 CHECK(code->IsCode());
334 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 334 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
335 t.a = 1.5e14; 335 t.a = 1.5e14;
336 t.b = 2.75e11; 336 t.b = 2.75e11;
337 t.c = 0.0; 337 t.c = 0.0;
338 t.d = 0.0; 338 t.d = 0.0;
339 t.e = 0.0; 339 t.e = 0.0;
340 t.f = 0.0; 340 t.f = 0.0;
341 t.h = 1.5; 341 t.h = 1.5;
342 t.i = 2.75; 342 t.i = 2.75;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 __ sdc1(f6, MemOperand(a0, OFFSET_OF(T, c)) ); 391 __ sdc1(f6, MemOperand(a0, OFFSET_OF(T, c)) );
392 392
393 __ jr(ra); 393 __ jr(ra);
394 __ nop(); 394 __ nop();
395 395
396 CodeDesc desc; 396 CodeDesc desc;
397 assm.GetCode(&desc); 397 assm.GetCode(&desc);
398 Object* code = HEAP->CreateCode( 398 Object* code = HEAP->CreateCode(
399 desc, 399 desc,
400 Code::ComputeFlags(Code::STUB), 400 Code::ComputeFlags(Code::STUB),
401 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 401 Handle<Code>())->ToObjectChecked();
402 CHECK(code->IsCode()); 402 CHECK(code->IsCode());
403 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 403 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
404 t.a = 1.5e22; 404 t.a = 1.5e22;
405 t.b = 2.75e11; 405 t.b = 2.75e11;
406 t.c = 17.17; 406 t.c = 17.17;
407 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 407 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
408 USE(dummy); 408 USE(dummy);
409 409
410 CHECK_EQ(2.75e11, t.a); 410 CHECK_EQ(2.75e11, t.a);
411 CHECK_EQ(2.75e11, t.b); 411 CHECK_EQ(2.75e11, t.b);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 __ sdc1(f2, MemOperand(a0, OFFSET_OF(T, b)) ); 460 __ sdc1(f2, MemOperand(a0, OFFSET_OF(T, b)) );
461 461
462 __ jr(ra); 462 __ jr(ra);
463 __ nop(); 463 __ nop();
464 464
465 CodeDesc desc; 465 CodeDesc desc;
466 assm.GetCode(&desc); 466 assm.GetCode(&desc);
467 Object* code = HEAP->CreateCode( 467 Object* code = HEAP->CreateCode(
468 desc, 468 desc,
469 Code::ComputeFlags(Code::STUB), 469 Code::ComputeFlags(Code::STUB),
470 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 470 Handle<Code>())->ToObjectChecked();
471 CHECK(code->IsCode()); 471 CHECK(code->IsCode());
472 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 472 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
473 t.a = 1.5e4; 473 t.a = 1.5e4;
474 t.b = 2.75e8; 474 t.b = 2.75e8;
475 t.i = 12345678; 475 t.i = 12345678;
476 t.j = -100000; 476 t.j = -100000;
477 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 477 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
478 USE(dummy); 478 USE(dummy);
479 479
480 CHECK_EQ(12345678.0, t.a); 480 CHECK_EQ(12345678.0, t.a);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 __ sh(t5, MemOperand(a0, OFFSET_OF(T, r6)) ); 533 __ sh(t5, MemOperand(a0, OFFSET_OF(T, r6)) );
534 534
535 __ jr(ra); 535 __ jr(ra);
536 __ nop(); 536 __ nop();
537 537
538 CodeDesc desc; 538 CodeDesc desc;
539 assm.GetCode(&desc); 539 assm.GetCode(&desc);
540 Object* code = HEAP->CreateCode( 540 Object* code = HEAP->CreateCode(
541 desc, 541 desc,
542 Code::ComputeFlags(Code::STUB), 542 Code::ComputeFlags(Code::STUB),
543 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 543 Handle<Code>())->ToObjectChecked();
544 CHECK(code->IsCode()); 544 CHECK(code->IsCode());
545 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 545 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
546 t.ui = 0x11223344; 546 t.ui = 0x11223344;
547 t.si = 0x99aabbcc; 547 t.si = 0x99aabbcc;
548 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 548 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
549 USE(dummy); 549 USE(dummy);
550 550
551 CHECK_EQ(0x11223344, t.r1); 551 CHECK_EQ(0x11223344, t.r1);
552 CHECK_EQ(0x3344, t.r2); 552 CHECK_EQ(0x3344, t.r2);
553 CHECK_EQ(0xffffbbcc, t.r3); 553 CHECK_EQ(0xffffbbcc, t.r3);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 __ bind(&outa_here); 612 __ bind(&outa_here);
613 613
614 __ jr(ra); 614 __ jr(ra);
615 __ nop(); 615 __ nop();
616 616
617 CodeDesc desc; 617 CodeDesc desc;
618 assm.GetCode(&desc); 618 assm.GetCode(&desc);
619 Object* code = HEAP->CreateCode( 619 Object* code = HEAP->CreateCode(
620 desc, 620 desc,
621 Code::ComputeFlags(Code::STUB), 621 Code::ComputeFlags(Code::STUB),
622 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 622 Handle<Code>())->ToObjectChecked();
623 CHECK(code->IsCode()); 623 CHECK(code->IsCode());
624 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 624 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
625 t.a = 1.5e14; 625 t.a = 1.5e14;
626 t.b = 2.75e11; 626 t.b = 2.75e11;
627 t.c = 2.0; 627 t.c = 2.0;
628 t.d = -4.0; 628 t.d = -4.0;
629 t.e = 0.0; 629 t.e = 0.0;
630 t.f = 0.0; 630 t.f = 0.0;
631 t.result = 0; 631 t.result = 0;
632 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 632 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 __ sw(t7, MemOperand(a0, OFFSET_OF(T, result_rotrv_28)) ); 711 __ sw(t7, MemOperand(a0, OFFSET_OF(T, result_rotrv_28)) );
712 712
713 __ jr(ra); 713 __ jr(ra);
714 __ nop(); 714 __ nop();
715 715
716 CodeDesc desc; 716 CodeDesc desc;
717 assm.GetCode(&desc); 717 assm.GetCode(&desc);
718 Object* code = HEAP->CreateCode( 718 Object* code = HEAP->CreateCode(
719 desc, 719 desc,
720 Code::ComputeFlags(Code::STUB), 720 Code::ComputeFlags(Code::STUB),
721 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 721 Handle<Code>())->ToObjectChecked();
722 CHECK(code->IsCode()); 722 CHECK(code->IsCode());
723 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 723 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
724 t.input = 0x12345678; 724 t.input = 0x12345678;
725 Object* dummy = CALL_GENERATED_CODE(f, &t, 0x0, 0, 0, 0); 725 Object* dummy = CALL_GENERATED_CODE(f, &t, 0x0, 0, 0, 0);
726 USE(dummy); 726 USE(dummy);
727 CHECK_EQ(0x81234567, t.result_rotr_4); 727 CHECK_EQ(0x81234567, t.result_rotr_4);
728 CHECK_EQ(0x78123456, t.result_rotr_8); 728 CHECK_EQ(0x78123456, t.result_rotr_8);
729 CHECK_EQ(0x67812345, t.result_rotr_12); 729 CHECK_EQ(0x67812345, t.result_rotr_12);
730 CHECK_EQ(0x56781234, t.result_rotr_16); 730 CHECK_EQ(0x56781234, t.result_rotr_16);
731 CHECK_EQ(0x45678123, t.result_rotr_20); 731 CHECK_EQ(0x45678123, t.result_rotr_20);
(...skipping 26 matching lines...) Expand all
758 __ bind(&exit2); 758 __ bind(&exit2);
759 __ bind(&exit3); 759 __ bind(&exit3);
760 __ jr(ra); 760 __ jr(ra);
761 __ nop(); 761 __ nop();
762 762
763 CodeDesc desc; 763 CodeDesc desc;
764 assm.GetCode(&desc); 764 assm.GetCode(&desc);
765 Object* code = HEAP->CreateCode( 765 Object* code = HEAP->CreateCode(
766 desc, 766 desc,
767 Code::ComputeFlags(Code::STUB), 767 Code::ComputeFlags(Code::STUB),
768 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 768 Handle<Code>())->ToObjectChecked();
769 CHECK(code->IsCode()); 769 CHECK(code->IsCode());
770 } 770 }
771 771
772 772
773 TEST(MIPS10) { 773 TEST(MIPS10) {
774 // Test conversions between doubles and long integers. 774 // Test conversions between doubles and long integers.
775 // Test hos the long ints map to FP regs pairs. 775 // Test hos the long ints map to FP regs pairs.
776 InitializeVM(); 776 InitializeVM();
777 v8::HandleScope scope; 777 v8::HandleScope scope;
778 778
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 __ sdc1(f10, MemOperand(a0, OFFSET_OF(T, b))); 819 __ sdc1(f10, MemOperand(a0, OFFSET_OF(T, b)));
820 820
821 __ jr(ra); 821 __ jr(ra);
822 __ nop(); 822 __ nop();
823 823
824 CodeDesc desc; 824 CodeDesc desc;
825 assm.GetCode(&desc); 825 assm.GetCode(&desc);
826 Object* code = HEAP->CreateCode( 826 Object* code = HEAP->CreateCode(
827 desc, 827 desc,
828 Code::ComputeFlags(Code::STUB), 828 Code::ComputeFlags(Code::STUB),
829 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 829 Handle<Code>())->ToObjectChecked();
830 CHECK(code->IsCode()); 830 CHECK(code->IsCode());
831 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 831 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
832 t.a = 2.147483647e9; // 0x7fffffff -> 0x41DFFFFFFFC00000 as double. 832 t.a = 2.147483647e9; // 0x7fffffff -> 0x41DFFFFFFFC00000 as double.
833 t.b_long_hi = 0x000000ff; // 0xFF00FF00FF -> 0x426FE01FE01FE000 as double. 833 t.b_long_hi = 0x000000ff; // 0xFF00FF00FF -> 0x426FE01FE01FE000 as double.
834 t.b_long_lo = 0x00ff00ff; 834 t.b_long_lo = 0x00ff00ff;
835 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 835 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
836 USE(dummy); 836 USE(dummy);
837 837
838 CHECK_EQ(0x41DFFFFF, t.dbl_exp); 838 CHECK_EQ(0x41DFFFFF, t.dbl_exp);
839 CHECK_EQ(0xFFC00000, t.dbl_mant); 839 CHECK_EQ(0xFFC00000, t.dbl_mant);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 __ swr(t3, MemOperand(a0, OFFSET_OF(T, swr_3) + 3) ); 951 __ swr(t3, MemOperand(a0, OFFSET_OF(T, swr_3) + 3) );
952 952
953 __ jr(ra); 953 __ jr(ra);
954 __ nop(); 954 __ nop();
955 955
956 CodeDesc desc; 956 CodeDesc desc;
957 assm.GetCode(&desc); 957 assm.GetCode(&desc);
958 Object* code = HEAP->CreateCode( 958 Object* code = HEAP->CreateCode(
959 desc, 959 desc,
960 Code::ComputeFlags(Code::STUB), 960 Code::ComputeFlags(Code::STUB),
961 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 961 Handle<Code>())->ToObjectChecked();
962 CHECK(code->IsCode()); 962 CHECK(code->IsCode());
963 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 963 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
964 t.reg_init = 0xaabbccdd; 964 t.reg_init = 0xaabbccdd;
965 t.mem_init = 0x11223344; 965 t.mem_init = 0x11223344;
966 966
967 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 967 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
968 USE(dummy); 968 USE(dummy);
969 969
970 CHECK_EQ(0x44bbccdd, t.lwl_0); 970 CHECK_EQ(0x44bbccdd, t.lwl_0);
971 CHECK_EQ(0x3344ccdd, t.lwl_1); 971 CHECK_EQ(0x3344ccdd, t.lwl_1);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 1055
1056 __ mov(fp, t6); 1056 __ mov(fp, t6);
1057 __ jr(ra); 1057 __ jr(ra);
1058 __ nop(); 1058 __ nop();
1059 1059
1060 CodeDesc desc; 1060 CodeDesc desc;
1061 assm.GetCode(&desc); 1061 assm.GetCode(&desc);
1062 Object* code = HEAP->CreateCode( 1062 Object* code = HEAP->CreateCode(
1063 desc, 1063 desc,
1064 Code::ComputeFlags(Code::STUB), 1064 Code::ComputeFlags(Code::STUB),
1065 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 1065 Handle<Code>())->ToObjectChecked();
1066 CHECK(code->IsCode()); 1066 CHECK(code->IsCode());
1067 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 1067 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
1068 t.x = 1; 1068 t.x = 1;
1069 t.y = 2; 1069 t.y = 2;
1070 t.y1 = 3; 1070 t.y1 = 3;
1071 t.y2 = 4; 1071 t.y2 = 4;
1072 t.y3 = 0XBABA; 1072 t.y3 = 0XBABA;
1073 t.y4 = 0xDEDA; 1073 t.y4 = 0xDEDA;
1074 1074
1075 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 1075 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 __ swc1(f8, MemOperand(a0, OFFSET_OF(T, trunc_big_out))); 1114 __ swc1(f8, MemOperand(a0, OFFSET_OF(T, trunc_big_out)));
1115 1115
1116 __ jr(ra); 1116 __ jr(ra);
1117 __ nop(); 1117 __ nop();
1118 1118
1119 CodeDesc desc; 1119 CodeDesc desc;
1120 assm.GetCode(&desc); 1120 assm.GetCode(&desc);
1121 Object* code = HEAP->CreateCode( 1121 Object* code = HEAP->CreateCode(
1122 desc, 1122 desc,
1123 Code::ComputeFlags(Code::STUB), 1123 Code::ComputeFlags(Code::STUB),
1124 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 1124 Handle<Code>())->ToObjectChecked();
1125 CHECK(code->IsCode()); 1125 CHECK(code->IsCode());
1126 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 1126 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
1127 1127
1128 t.cvt_big_in = 0xFFFFFFFF; 1128 t.cvt_big_in = 0xFFFFFFFF;
1129 t.cvt_small_in = 333; 1129 t.cvt_small_in = 333;
1130 1130
1131 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); 1131 Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0);
1132 USE(dummy); 1132 USE(dummy);
1133 1133
1134 CHECK_EQ(t.cvt_big_out, static_cast<double>(t.cvt_big_in)); 1134 CHECK_EQ(t.cvt_big_out, static_cast<double>(t.cvt_big_in));
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 __ ctc1(a1, FCSR); 1238 __ ctc1(a1, FCSR);
1239 1239
1240 __ jr(ra); 1240 __ jr(ra);
1241 __ nop(); 1241 __ nop();
1242 1242
1243 CodeDesc desc; 1243 CodeDesc desc;
1244 assm.GetCode(&desc); 1244 assm.GetCode(&desc);
1245 Object* code = HEAP->CreateCode( 1245 Object* code = HEAP->CreateCode(
1246 desc, 1246 desc,
1247 Code::ComputeFlags(Code::STUB), 1247 Code::ComputeFlags(Code::STUB),
1248 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked(); 1248 Handle<Code>())->ToObjectChecked();
1249 CHECK(code->IsCode()); 1249 CHECK(code->IsCode());
1250 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 1250 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
1251 1251
1252 t.round_up_in = 123.51; 1252 t.round_up_in = 123.51;
1253 t.round_down_in = 123.49; 1253 t.round_down_in = 123.49;
1254 t.neg_round_up_in = -123.5; 1254 t.neg_round_up_in = -123.5;
1255 t.neg_round_down_in = -123.49; 1255 t.neg_round_down_in = -123.49;
1256 t.err1_in = 123.51; 1256 t.err1_in = 123.51;
1257 t.err2_in = 1; 1257 t.err2_in = 1;
1258 t.err3_in = static_cast<double>(1) + 0xFFFFFFFF; 1258 t.err3_in = static_cast<double>(1) + 0xFFFFFFFF;
(...skipping 27 matching lines...) Expand all
1286 Label target; 1286 Label target;
1287 __ beq(v0, v1, &target); 1287 __ beq(v0, v1, &target);
1288 __ nop(); 1288 __ nop();
1289 __ bne(v0, v1, &target); 1289 __ bne(v0, v1, &target);
1290 __ nop(); 1290 __ nop();
1291 __ bind(&target); 1291 __ bind(&target);
1292 __ nop(); 1292 __ nop();
1293 } 1293 }
1294 1294
1295 #undef __ 1295 #undef __
OLDNEW
« no previous file with comments | « test/cctest/test-assembler-ia32.cc ('k') | test/cctest/test-assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698