| OLD | NEW |
| 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 HandleScope scope(isolate); | 56 HandleScope scope(isolate); |
| 57 | 57 |
| 58 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); | 58 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); |
| 59 | 59 |
| 60 // Addition. | 60 // Addition. |
| 61 __ addu(v0, a0, a1); | 61 __ addu(v0, a0, a1); |
| 62 __ jr(ra); | 62 __ jr(ra); |
| 63 __ nop(); | 63 __ nop(); |
| 64 | 64 |
| 65 CodeDesc desc; | 65 CodeDesc desc; |
| 66 assm.GetCode(&desc); | 66 assm.GetCode(isolate, &desc); |
| 67 Handle<Code> code = isolate->factory()->NewCode( | 67 Handle<Code> code = isolate->factory()->NewCode( |
| 68 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 68 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 69 F2 f = FUNCTION_CAST<F2>(code->entry()); | 69 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 70 int res = reinterpret_cast<int>( | 70 int res = reinterpret_cast<int>( |
| 71 CALL_GENERATED_CODE(isolate, f, 0xab0, 0xc, 0, 0, 0)); | 71 CALL_GENERATED_CODE(isolate, f, 0xab0, 0xc, 0, 0, 0)); |
| 72 CHECK_EQ(static_cast<int32_t>(0xabc), res); | 72 CHECK_EQ(static_cast<int32_t>(0xabc), res); |
| 73 } | 73 } |
| 74 | 74 |
| 75 | 75 |
| 76 TEST(MIPS1) { | 76 TEST(MIPS1) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 92 | 92 |
| 93 __ bind(&C); | 93 __ bind(&C); |
| 94 __ xori(v1, a1, 0); | 94 __ xori(v1, a1, 0); |
| 95 __ Branch(&L, ne, v1, Operand(0)); | 95 __ Branch(&L, ne, v1, Operand(0)); |
| 96 __ nop(); | 96 __ nop(); |
| 97 | 97 |
| 98 __ jr(ra); | 98 __ jr(ra); |
| 99 __ nop(); | 99 __ nop(); |
| 100 | 100 |
| 101 CodeDesc desc; | 101 CodeDesc desc; |
| 102 assm.GetCode(&desc); | 102 assm.GetCode(isolate, &desc); |
| 103 Handle<Code> code = isolate->factory()->NewCode( | 103 Handle<Code> code = isolate->factory()->NewCode( |
| 104 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 104 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 105 F1 f = FUNCTION_CAST<F1>(code->entry()); | 105 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 106 int res = reinterpret_cast<int>( | 106 int res = reinterpret_cast<int>( |
| 107 CALL_GENERATED_CODE(isolate, f, 50, 0, 0, 0, 0)); | 107 CALL_GENERATED_CODE(isolate, f, 50, 0, 0, 0, 0)); |
| 108 CHECK_EQ(1275, res); | 108 CHECK_EQ(1275, res); |
| 109 } | 109 } |
| 110 | 110 |
| 111 | 111 |
| 112 TEST(MIPS2) { | 112 TEST(MIPS2) { |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 | 230 |
| 231 __ bind(&error); | 231 __ bind(&error); |
| 232 // Got an error. Return a wrong result. | 232 // Got an error. Return a wrong result. |
| 233 __ li(v0, 666); | 233 __ li(v0, 666); |
| 234 | 234 |
| 235 __ bind(&exit); | 235 __ bind(&exit); |
| 236 __ jr(ra); | 236 __ jr(ra); |
| 237 __ nop(); | 237 __ nop(); |
| 238 | 238 |
| 239 CodeDesc desc; | 239 CodeDesc desc; |
| 240 assm.GetCode(&desc); | 240 assm.GetCode(isolate, &desc); |
| 241 Handle<Code> code = isolate->factory()->NewCode( | 241 Handle<Code> code = isolate->factory()->NewCode( |
| 242 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 242 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 243 F2 f = FUNCTION_CAST<F2>(code->entry()); | 243 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 244 int res = reinterpret_cast<int>( | 244 int res = reinterpret_cast<int>( |
| 245 CALL_GENERATED_CODE(isolate, f, 0xab0, 0xc, 0, 0, 0)); | 245 CALL_GENERATED_CODE(isolate, f, 0xab0, 0xc, 0, 0, 0)); |
| 246 CHECK_EQ(static_cast<int32_t>(0x31415926), res); | 246 CHECK_EQ(static_cast<int32_t>(0x31415926), res); |
| 247 } | 247 } |
| 248 | 248 |
| 249 | 249 |
| 250 TEST(MIPS3) { | 250 TEST(MIPS3) { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 __ div_s(f12, f10, f4); | 332 __ div_s(f12, f10, f4); |
| 333 __ swc1(f12, MemOperand(a0, offsetof(T, ff)) ); // ff = fe / fa | 333 __ swc1(f12, MemOperand(a0, offsetof(T, ff)) ); // ff = fe / fa |
| 334 | 334 |
| 335 __ sqrt_s(f14, f12); | 335 __ sqrt_s(f14, f12); |
| 336 __ swc1(f14, MemOperand(a0, offsetof(T, fg)) ); | 336 __ swc1(f14, MemOperand(a0, offsetof(T, fg)) ); |
| 337 | 337 |
| 338 __ jr(ra); | 338 __ jr(ra); |
| 339 __ nop(); | 339 __ nop(); |
| 340 | 340 |
| 341 CodeDesc desc; | 341 CodeDesc desc; |
| 342 assm.GetCode(&desc); | 342 assm.GetCode(isolate, &desc); |
| 343 Handle<Code> code = isolate->factory()->NewCode( | 343 Handle<Code> code = isolate->factory()->NewCode( |
| 344 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 344 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 345 F3 f = FUNCTION_CAST<F3>(code->entry()); | 345 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 346 // Double test values. | 346 // Double test values. |
| 347 t.a = 1.5e14; | 347 t.a = 1.5e14; |
| 348 t.b = 2.75e11; | 348 t.b = 2.75e11; |
| 349 t.c = 0.0; | 349 t.c = 0.0; |
| 350 t.d = 0.0; | 350 t.d = 0.0; |
| 351 t.e = 0.0; | 351 t.e = 0.0; |
| 352 t.f = 0.0; | 352 t.f = 0.0; |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 } | 436 } |
| 437 | 437 |
| 438 // Store the swapped f4 and f5 back to memory. | 438 // Store the swapped f4 and f5 back to memory. |
| 439 __ Sdc1(f4, MemOperand(a0, offsetof(T, a))); | 439 __ Sdc1(f4, MemOperand(a0, offsetof(T, a))); |
| 440 __ Sdc1(f6, MemOperand(a0, offsetof(T, c))); | 440 __ Sdc1(f6, MemOperand(a0, offsetof(T, c))); |
| 441 | 441 |
| 442 __ jr(ra); | 442 __ jr(ra); |
| 443 __ nop(); | 443 __ nop(); |
| 444 | 444 |
| 445 CodeDesc desc; | 445 CodeDesc desc; |
| 446 assm.GetCode(&desc); | 446 assm.GetCode(isolate, &desc); |
| 447 Handle<Code> code = isolate->factory()->NewCode( | 447 Handle<Code> code = isolate->factory()->NewCode( |
| 448 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 448 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 449 F3 f = FUNCTION_CAST<F3>(code->entry()); | 449 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 450 t.a = 1.5e22; | 450 t.a = 1.5e22; |
| 451 t.b = 2.75e11; | 451 t.b = 2.75e11; |
| 452 t.c = 17.17; | 452 t.c = 17.17; |
| 453 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 453 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 454 USE(dummy); | 454 USE(dummy); |
| 455 | 455 |
| 456 CHECK_EQ(2.75e11, t.a); | 456 CHECK_EQ(2.75e11, t.a); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 | 499 |
| 500 // Convert int in original j (t1) to double in b. | 500 // Convert int in original j (t1) to double in b. |
| 501 __ mtc1(t1, f14); | 501 __ mtc1(t1, f14); |
| 502 __ cvt_d_w(f2, f14); | 502 __ cvt_d_w(f2, f14); |
| 503 __ Sdc1(f2, MemOperand(a0, offsetof(T, b))); | 503 __ Sdc1(f2, MemOperand(a0, offsetof(T, b))); |
| 504 | 504 |
| 505 __ jr(ra); | 505 __ jr(ra); |
| 506 __ nop(); | 506 __ nop(); |
| 507 | 507 |
| 508 CodeDesc desc; | 508 CodeDesc desc; |
| 509 assm.GetCode(&desc); | 509 assm.GetCode(isolate, &desc); |
| 510 Handle<Code> code = isolate->factory()->NewCode( | 510 Handle<Code> code = isolate->factory()->NewCode( |
| 511 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 511 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 512 F3 f = FUNCTION_CAST<F3>(code->entry()); | 512 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 513 t.a = 1.5e4; | 513 t.a = 1.5e4; |
| 514 t.b = 2.75e8; | 514 t.b = 2.75e8; |
| 515 t.i = 12345678; | 515 t.i = 12345678; |
| 516 t.j = -100000; | 516 t.j = -100000; |
| 517 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 517 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 518 USE(dummy); | 518 USE(dummy); |
| 519 | 519 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 __ lui(t5, 0x3333); | 569 __ lui(t5, 0x3333); |
| 570 __ ori(t5, t5, 0x3333); | 570 __ ori(t5, t5, 0x3333); |
| 571 __ sw(t5, MemOperand(a0, offsetof(T, r6)) ); | 571 __ sw(t5, MemOperand(a0, offsetof(T, r6)) ); |
| 572 __ lhu(t5, MemOperand(a0, offsetof(T, si)) ); | 572 __ lhu(t5, MemOperand(a0, offsetof(T, si)) ); |
| 573 __ sh(t5, MemOperand(a0, offsetof(T, r6)) ); | 573 __ sh(t5, MemOperand(a0, offsetof(T, r6)) ); |
| 574 | 574 |
| 575 __ jr(ra); | 575 __ jr(ra); |
| 576 __ nop(); | 576 __ nop(); |
| 577 | 577 |
| 578 CodeDesc desc; | 578 CodeDesc desc; |
| 579 assm.GetCode(&desc); | 579 assm.GetCode(isolate, &desc); |
| 580 Handle<Code> code = isolate->factory()->NewCode( | 580 Handle<Code> code = isolate->factory()->NewCode( |
| 581 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 581 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 582 F3 f = FUNCTION_CAST<F3>(code->entry()); | 582 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 583 t.ui = 0x11223344; | 583 t.ui = 0x11223344; |
| 584 t.si = 0x99aabbcc; | 584 t.si = 0x99aabbcc; |
| 585 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 585 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 586 USE(dummy); | 586 USE(dummy); |
| 587 | 587 |
| 588 CHECK_EQ(static_cast<int32_t>(0x11223344), t.r1); | 588 CHECK_EQ(static_cast<int32_t>(0x11223344), t.r1); |
| 589 #if __BYTE_ORDER == __LITTLE_ENDIAN | 589 #if __BYTE_ORDER == __LITTLE_ENDIAN |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 | 662 |
| 663 | 663 |
| 664 // This test-case should have additional tests. | 664 // This test-case should have additional tests. |
| 665 | 665 |
| 666 __ bind(&outa_here); | 666 __ bind(&outa_here); |
| 667 | 667 |
| 668 __ jr(ra); | 668 __ jr(ra); |
| 669 __ nop(); | 669 __ nop(); |
| 670 | 670 |
| 671 CodeDesc desc; | 671 CodeDesc desc; |
| 672 assm.GetCode(&desc); | 672 assm.GetCode(isolate, &desc); |
| 673 Handle<Code> code = isolate->factory()->NewCode( | 673 Handle<Code> code = isolate->factory()->NewCode( |
| 674 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 674 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 675 F3 f = FUNCTION_CAST<F3>(code->entry()); | 675 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 676 t.a = 1.5e14; | 676 t.a = 1.5e14; |
| 677 t.b = 2.75e11; | 677 t.b = 2.75e11; |
| 678 t.c = 2.0; | 678 t.c = 2.0; |
| 679 t.d = -4.0; | 679 t.d = -4.0; |
| 680 t.e = 0.0; | 680 t.e = 0.0; |
| 681 t.f = 0.0; | 681 t.f = 0.0; |
| 682 t.result = 0; | 682 t.result = 0; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 760 __ sw(t3, MemOperand(a0, offsetof(T, result_rotrv_12)) ); | 760 __ sw(t3, MemOperand(a0, offsetof(T, result_rotrv_12)) ); |
| 761 __ sw(t4, MemOperand(a0, offsetof(T, result_rotrv_16)) ); | 761 __ sw(t4, MemOperand(a0, offsetof(T, result_rotrv_16)) ); |
| 762 __ sw(t5, MemOperand(a0, offsetof(T, result_rotrv_20)) ); | 762 __ sw(t5, MemOperand(a0, offsetof(T, result_rotrv_20)) ); |
| 763 __ sw(t6, MemOperand(a0, offsetof(T, result_rotrv_24)) ); | 763 __ sw(t6, MemOperand(a0, offsetof(T, result_rotrv_24)) ); |
| 764 __ sw(t7, MemOperand(a0, offsetof(T, result_rotrv_28)) ); | 764 __ sw(t7, MemOperand(a0, offsetof(T, result_rotrv_28)) ); |
| 765 | 765 |
| 766 __ jr(ra); | 766 __ jr(ra); |
| 767 __ nop(); | 767 __ nop(); |
| 768 | 768 |
| 769 CodeDesc desc; | 769 CodeDesc desc; |
| 770 assm.GetCode(&desc); | 770 assm.GetCode(isolate, &desc); |
| 771 Handle<Code> code = isolate->factory()->NewCode( | 771 Handle<Code> code = isolate->factory()->NewCode( |
| 772 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 772 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 773 F3 f = FUNCTION_CAST<F3>(code->entry()); | 773 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 774 t.input = 0x12345678; | 774 t.input = 0x12345678; |
| 775 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0x0, 0, 0, 0); | 775 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0x0, 0, 0, 0); |
| 776 USE(dummy); | 776 USE(dummy); |
| 777 CHECK_EQ(static_cast<int32_t>(0x81234567), t.result_rotr_4); | 777 CHECK_EQ(static_cast<int32_t>(0x81234567), t.result_rotr_4); |
| 778 CHECK_EQ(static_cast<int32_t>(0x78123456), t.result_rotr_8); | 778 CHECK_EQ(static_cast<int32_t>(0x78123456), t.result_rotr_8); |
| 779 CHECK_EQ(static_cast<int32_t>(0x67812345), t.result_rotr_12); | 779 CHECK_EQ(static_cast<int32_t>(0x67812345), t.result_rotr_12); |
| 780 CHECK_EQ(static_cast<int32_t>(0x56781234), t.result_rotr_16); | 780 CHECK_EQ(static_cast<int32_t>(0x56781234), t.result_rotr_16); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 806 __ Branch(&exit2, ge, a0, Operand(0x00001FFF)); | 806 __ Branch(&exit2, ge, a0, Operand(0x00001FFF)); |
| 807 __ Branch(&exit3, ge, a0, Operand(0x0001FFFF)); | 807 __ Branch(&exit3, ge, a0, Operand(0x0001FFFF)); |
| 808 | 808 |
| 809 __ bind(&exit); | 809 __ bind(&exit); |
| 810 __ bind(&exit2); | 810 __ bind(&exit2); |
| 811 __ bind(&exit3); | 811 __ bind(&exit3); |
| 812 __ jr(ra); | 812 __ jr(ra); |
| 813 __ nop(); | 813 __ nop(); |
| 814 | 814 |
| 815 CodeDesc desc; | 815 CodeDesc desc; |
| 816 assm.GetCode(&desc); | 816 assm.GetCode(isolate, &desc); |
| 817 isolate->factory()->NewCode( | 817 isolate->factory()->NewCode( |
| 818 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 818 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 819 } | 819 } |
| 820 | 820 |
| 821 | 821 |
| 822 TEST(MIPS10) { | 822 TEST(MIPS10) { |
| 823 // Test conversions between doubles and words. | 823 // Test conversions between doubles and words. |
| 824 CcTest::InitializeVM(); | 824 CcTest::InitializeVM(); |
| 825 Isolate* isolate = CcTest::i_isolate(); | 825 Isolate* isolate = CcTest::i_isolate(); |
| 826 HandleScope scope(isolate); | 826 HandleScope scope(isolate); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 857 // Convert the b word to double b. | 857 // Convert the b word to double b. |
| 858 __ lw(t0, MemOperand(a0, offsetof(T, b_word))); | 858 __ lw(t0, MemOperand(a0, offsetof(T, b_word))); |
| 859 __ mtc1(t0, f8); // f8 has a 32-bits word. | 859 __ mtc1(t0, f8); // f8 has a 32-bits word. |
| 860 __ cvt_d_w(f10, f8); | 860 __ cvt_d_w(f10, f8); |
| 861 __ Sdc1(f10, MemOperand(a0, offsetof(T, b))); | 861 __ Sdc1(f10, MemOperand(a0, offsetof(T, b))); |
| 862 | 862 |
| 863 __ jr(ra); | 863 __ jr(ra); |
| 864 __ nop(); | 864 __ nop(); |
| 865 | 865 |
| 866 CodeDesc desc; | 866 CodeDesc desc; |
| 867 assm.GetCode(&desc); | 867 assm.GetCode(isolate, &desc); |
| 868 Handle<Code> code = isolate->factory()->NewCode( | 868 Handle<Code> code = isolate->factory()->NewCode( |
| 869 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 869 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 870 F3 f = FUNCTION_CAST<F3>(code->entry()); | 870 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 871 t.a = 2.147483646e+09; // 0x7FFFFFFE -> 0xFF80000041DFFFFF as double. | 871 t.a = 2.147483646e+09; // 0x7FFFFFFE -> 0xFF80000041DFFFFF as double. |
| 872 t.b_word = 0x0ff00ff0; // 0x0FF00FF0 -> 0x as double. | 872 t.b_word = 0x0ff00ff0; // 0x0FF00FF0 -> 0x as double. |
| 873 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 873 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 874 USE(dummy); | 874 USE(dummy); |
| 875 CHECK_EQ(static_cast<int32_t>(0x41DFFFFF), t.dbl_exp); | 875 CHECK_EQ(static_cast<int32_t>(0x41DFFFFF), t.dbl_exp); |
| 876 CHECK_EQ(static_cast<int32_t>(0xFF800000), t.dbl_mant); | 876 CHECK_EQ(static_cast<int32_t>(0xFF800000), t.dbl_mant); |
| 877 CHECK_EQ(static_cast<int32_t>(0x7FFFFFFE), t.word); | 877 CHECK_EQ(static_cast<int32_t>(0x7FFFFFFE), t.word); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 985 | 985 |
| 986 __ lw(t3, MemOperand(a0, offsetof(T, mem_init)) ); | 986 __ lw(t3, MemOperand(a0, offsetof(T, mem_init)) ); |
| 987 __ sw(t3, MemOperand(a0, offsetof(T, swr_3)) ); | 987 __ sw(t3, MemOperand(a0, offsetof(T, swr_3)) ); |
| 988 __ lw(t3, MemOperand(a0, offsetof(T, reg_init)) ); | 988 __ lw(t3, MemOperand(a0, offsetof(T, reg_init)) ); |
| 989 __ swr(t3, MemOperand(a0, offsetof(T, swr_3) + 3) ); | 989 __ swr(t3, MemOperand(a0, offsetof(T, swr_3) + 3) ); |
| 990 | 990 |
| 991 __ jr(ra); | 991 __ jr(ra); |
| 992 __ nop(); | 992 __ nop(); |
| 993 | 993 |
| 994 CodeDesc desc; | 994 CodeDesc desc; |
| 995 assm.GetCode(&desc); | 995 assm.GetCode(isolate, &desc); |
| 996 Handle<Code> code = isolate->factory()->NewCode( | 996 Handle<Code> code = isolate->factory()->NewCode( |
| 997 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 997 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 998 F3 f = FUNCTION_CAST<F3>(code->entry()); | 998 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 999 t.reg_init = 0xaabbccdd; | 999 t.reg_init = 0xaabbccdd; |
| 1000 t.mem_init = 0x11223344; | 1000 t.mem_init = 0x11223344; |
| 1001 | 1001 |
| 1002 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 1002 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 1003 USE(dummy); | 1003 USE(dummy); |
| 1004 | 1004 |
| 1005 #if __BYTE_ORDER == __LITTLE_ENDIAN | 1005 #if __BYTE_ORDER == __LITTLE_ENDIAN |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1111 __ push(t1); | 1111 __ push(t1); |
| 1112 __ lw(t2, MemOperand(fp, offsetof(T, y)) ); | 1112 __ lw(t2, MemOperand(fp, offsetof(T, y)) ); |
| 1113 __ pop(t3); | 1113 __ pop(t3); |
| 1114 __ nop(); | 1114 __ nop(); |
| 1115 | 1115 |
| 1116 __ mov(fp, t6); | 1116 __ mov(fp, t6); |
| 1117 __ jr(ra); | 1117 __ jr(ra); |
| 1118 __ nop(); | 1118 __ nop(); |
| 1119 | 1119 |
| 1120 CodeDesc desc; | 1120 CodeDesc desc; |
| 1121 assm.GetCode(&desc); | 1121 assm.GetCode(isolate, &desc); |
| 1122 Handle<Code> code = isolate->factory()->NewCode( | 1122 Handle<Code> code = isolate->factory()->NewCode( |
| 1123 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1123 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1124 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1124 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1125 t.x = 1; | 1125 t.x = 1; |
| 1126 t.y = 2; | 1126 t.y = 2; |
| 1127 t.y1 = 3; | 1127 t.y1 = 3; |
| 1128 t.y2 = 4; | 1128 t.y2 = 4; |
| 1129 t.y3 = 0XBABA; | 1129 t.y3 = 0XBABA; |
| 1130 t.y4 = 0xDEDA; | 1130 t.y4 = 0xDEDA; |
| 1131 | 1131 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1165 __ Cvt_d_uw(f8, t0, f4); | 1165 __ Cvt_d_uw(f8, t0, f4); |
| 1166 __ Sdc1(f8, MemOperand(a0, offsetof(T, cvt_big_out))); | 1166 __ Sdc1(f8, MemOperand(a0, offsetof(T, cvt_big_out))); |
| 1167 | 1167 |
| 1168 __ Trunc_uw_d(f8, f8, f4); | 1168 __ Trunc_uw_d(f8, f8, f4); |
| 1169 __ swc1(f8, MemOperand(a0, offsetof(T, trunc_big_out))); | 1169 __ swc1(f8, MemOperand(a0, offsetof(T, trunc_big_out))); |
| 1170 | 1170 |
| 1171 __ jr(ra); | 1171 __ jr(ra); |
| 1172 __ nop(); | 1172 __ nop(); |
| 1173 | 1173 |
| 1174 CodeDesc desc; | 1174 CodeDesc desc; |
| 1175 assm.GetCode(&desc); | 1175 assm.GetCode(isolate, &desc); |
| 1176 Handle<Code> code = isolate->factory()->NewCode( | 1176 Handle<Code> code = isolate->factory()->NewCode( |
| 1177 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1177 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1178 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1178 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1179 | 1179 |
| 1180 t.cvt_big_in = 0xFFFFFFFF; | 1180 t.cvt_big_in = 0xFFFFFFFF; |
| 1181 t.cvt_small_in = 333; | 1181 t.cvt_small_in = 333; |
| 1182 | 1182 |
| 1183 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 1183 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 1184 USE(dummy); | 1184 USE(dummy); |
| 1185 | 1185 |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1286 RUN_ROUND_TEST(trunc) | 1286 RUN_ROUND_TEST(trunc) |
| 1287 RUN_ROUND_TEST(cvt) | 1287 RUN_ROUND_TEST(cvt) |
| 1288 | 1288 |
| 1289 // Restore FCSR. | 1289 // Restore FCSR. |
| 1290 __ ctc1(a1, FCSR); | 1290 __ ctc1(a1, FCSR); |
| 1291 | 1291 |
| 1292 __ jr(ra); | 1292 __ jr(ra); |
| 1293 __ nop(); | 1293 __ nop(); |
| 1294 | 1294 |
| 1295 CodeDesc desc; | 1295 CodeDesc desc; |
| 1296 assm.GetCode(&desc); | 1296 assm.GetCode(isolate, &desc); |
| 1297 Handle<Code> code = isolate->factory()->NewCode( | 1297 Handle<Code> code = isolate->factory()->NewCode( |
| 1298 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1298 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1299 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1299 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1300 | 1300 |
| 1301 t.round_up_in = 123.51; | 1301 t.round_up_in = 123.51; |
| 1302 t.round_down_in = 123.49; | 1302 t.round_down_in = 123.49; |
| 1303 t.neg_round_up_in = -123.5; | 1303 t.neg_round_up_in = -123.5; |
| 1304 t.neg_round_down_in = -123.49; | 1304 t.neg_round_down_in = -123.49; |
| 1305 t.err1_in = 123.51; | 1305 t.err1_in = 123.51; |
| 1306 t.err2_in = 1; | 1306 t.err2_in = 1; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1392 __ selnez_d(f6, f0, f2); | 1392 __ selnez_d(f6, f0, f2); |
| 1393 __ seleqz_s(f12, f8, f10); | 1393 __ seleqz_s(f12, f8, f10); |
| 1394 __ selnez_s(f14, f8, f10); | 1394 __ selnez_s(f14, f8, f10); |
| 1395 __ Sdc1(f4, MemOperand(a0, offsetof(Test, g))); // src | 1395 __ Sdc1(f4, MemOperand(a0, offsetof(Test, g))); // src |
| 1396 __ Sdc1(f6, MemOperand(a0, offsetof(Test, h))); // src | 1396 __ Sdc1(f6, MemOperand(a0, offsetof(Test, h))); // src |
| 1397 __ swc1(f12, MemOperand(a0, offsetof(Test, k)) ); // src | 1397 __ swc1(f12, MemOperand(a0, offsetof(Test, k)) ); // src |
| 1398 __ swc1(f14, MemOperand(a0, offsetof(Test, l)) ); // src | 1398 __ swc1(f14, MemOperand(a0, offsetof(Test, l)) ); // src |
| 1399 __ jr(ra); | 1399 __ jr(ra); |
| 1400 __ nop(); | 1400 __ nop(); |
| 1401 CodeDesc desc; | 1401 CodeDesc desc; |
| 1402 assm.GetCode(&desc); | 1402 assm.GetCode(isolate, &desc); |
| 1403 Handle<Code> code = isolate->factory()->NewCode( | 1403 Handle<Code> code = isolate->factory()->NewCode( |
| 1404 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1404 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1405 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1405 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1406 | 1406 |
| 1407 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 1407 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 1408 | 1408 |
| 1409 CHECK_EQ(1, test.a); | 1409 CHECK_EQ(1, test.a); |
| 1410 CHECK_EQ(0, test.b); | 1410 CHECK_EQ(0, test.b); |
| 1411 CHECK_EQ(0, test.c); | 1411 CHECK_EQ(0, test.c); |
| 1412 CHECK_EQ(1, test.d); | 1412 CHECK_EQ(1, test.d); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1507 __ min_s(f14, f2, f6); | 1507 __ min_s(f14, f2, f6); |
| 1508 __ max_s(f16, f2, f6); | 1508 __ max_s(f16, f2, f6); |
| 1509 __ Sdc1(f10, MemOperand(a0, offsetof(TestFloat, c))); | 1509 __ Sdc1(f10, MemOperand(a0, offsetof(TestFloat, c))); |
| 1510 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, d))); | 1510 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, d))); |
| 1511 __ swc1(f14, MemOperand(a0, offsetof(TestFloat, g))); | 1511 __ swc1(f14, MemOperand(a0, offsetof(TestFloat, g))); |
| 1512 __ swc1(f16, MemOperand(a0, offsetof(TestFloat, h))); | 1512 __ swc1(f16, MemOperand(a0, offsetof(TestFloat, h))); |
| 1513 __ jr(ra); | 1513 __ jr(ra); |
| 1514 __ nop(); | 1514 __ nop(); |
| 1515 | 1515 |
| 1516 CodeDesc desc; | 1516 CodeDesc desc; |
| 1517 assm.GetCode(&desc); | 1517 assm.GetCode(isolate, &desc); |
| 1518 Handle<Code> code = isolate->factory()->NewCode( | 1518 Handle<Code> code = isolate->factory()->NewCode( |
| 1519 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1519 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1520 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1520 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1521 for (int i = 0; i < kTableLength; i++) { | 1521 for (int i = 0; i < kTableLength; i++) { |
| 1522 test.a = inputsa[i]; | 1522 test.a = inputsa[i]; |
| 1523 test.b = inputsb[i]; | 1523 test.b = inputsb[i]; |
| 1524 test.e = inputse[i]; | 1524 test.e = inputse[i]; |
| 1525 test.f = inputsf[i]; | 1525 test.f = inputsf[i]; |
| 1526 | 1526 |
| 1527 CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0); | 1527 CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1618 __ lw(t0, MemOperand(a0, offsetof(TestFloat, fcsr)) ); | 1618 __ lw(t0, MemOperand(a0, offsetof(TestFloat, fcsr)) ); |
| 1619 __ cfc1(t1, FCSR); | 1619 __ cfc1(t1, FCSR); |
| 1620 __ ctc1(t0, FCSR); | 1620 __ ctc1(t0, FCSR); |
| 1621 __ rint_d(f8, f4); | 1621 __ rint_d(f8, f4); |
| 1622 __ Sdc1(f8, MemOperand(a0, offsetof(TestFloat, b))); | 1622 __ Sdc1(f8, MemOperand(a0, offsetof(TestFloat, b))); |
| 1623 __ ctc1(t1, FCSR); | 1623 __ ctc1(t1, FCSR); |
| 1624 __ jr(ra); | 1624 __ jr(ra); |
| 1625 __ nop(); | 1625 __ nop(); |
| 1626 | 1626 |
| 1627 CodeDesc desc; | 1627 CodeDesc desc; |
| 1628 assm.GetCode(&desc); | 1628 assm.GetCode(isolate, &desc); |
| 1629 Handle<Code> code = isolate->factory()->NewCode( | 1629 Handle<Code> code = isolate->factory()->NewCode( |
| 1630 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1630 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1631 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1631 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1632 | 1632 |
| 1633 for (int j = 0; j < 4; j++) { | 1633 for (int j = 0; j < 4; j++) { |
| 1634 test.fcsr = fcsr_inputs[j]; | 1634 test.fcsr = fcsr_inputs[j]; |
| 1635 for (int i = 0; i < kTableLength; i++) { | 1635 for (int i = 0; i < kTableLength; i++) { |
| 1636 test.a = inputs[i]; | 1636 test.a = inputs[i]; |
| 1637 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 1637 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 1638 CHECK_EQ(test.b, outputs[j][i]); | 1638 CHECK_EQ(test.b, outputs[j][i]); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1666 __ lwc1(f6, MemOperand(a0, offsetof(Test, fd)) ); // test | 1666 __ lwc1(f6, MemOperand(a0, offsetof(Test, fd)) ); // test |
| 1667 __ lwc1(f8, MemOperand(a0, offsetof(Test, fs)) ); // src1 | 1667 __ lwc1(f8, MemOperand(a0, offsetof(Test, fs)) ); // src1 |
| 1668 __ lwc1(f10, MemOperand(a0, offsetof(Test, ft)) ); // src2 | 1668 __ lwc1(f10, MemOperand(a0, offsetof(Test, ft)) ); // src2 |
| 1669 __ sel_d(f0, f2, f4); | 1669 __ sel_d(f0, f2, f4); |
| 1670 __ sel_s(f6, f8, f10); | 1670 __ sel_s(f6, f8, f10); |
| 1671 __ Sdc1(f0, MemOperand(a0, offsetof(Test, dd))); | 1671 __ Sdc1(f0, MemOperand(a0, offsetof(Test, dd))); |
| 1672 __ swc1(f6, MemOperand(a0, offsetof(Test, fd)) ); | 1672 __ swc1(f6, MemOperand(a0, offsetof(Test, fd)) ); |
| 1673 __ jr(ra); | 1673 __ jr(ra); |
| 1674 __ nop(); | 1674 __ nop(); |
| 1675 CodeDesc desc; | 1675 CodeDesc desc; |
| 1676 assm.GetCode(&desc); | 1676 assm.GetCode(isolate, &desc); |
| 1677 Handle<Code> code = isolate->factory()->NewCode( | 1677 Handle<Code> code = isolate->factory()->NewCode( |
| 1678 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1678 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1679 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1679 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1680 | 1680 |
| 1681 const int test_size = 3; | 1681 const int test_size = 3; |
| 1682 const int input_size = 5; | 1682 const int input_size = 5; |
| 1683 | 1683 |
| 1684 double inputs_dt[input_size] = {0.0, 65.2, -70.32, | 1684 double inputs_dt[input_size] = {0.0, 65.2, -70.32, |
| 1685 18446744073709551621.0, -18446744073709551621.0}; | 1685 18446744073709551621.0, -18446744073709551621.0}; |
| 1686 double inputs_ds[input_size] = {0.1, 69.88, -91.325, | 1686 double inputs_ds[input_size] = {0.1, 69.88, -91.325, |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1799 __ lw(t0, MemOperand(a0, offsetof(TestFloat, fcsr)) ); | 1799 __ lw(t0, MemOperand(a0, offsetof(TestFloat, fcsr)) ); |
| 1800 __ cfc1(t1, FCSR); | 1800 __ cfc1(t1, FCSR); |
| 1801 __ ctc1(t0, FCSR); | 1801 __ ctc1(t0, FCSR); |
| 1802 __ rint_s(f8, f4); | 1802 __ rint_s(f8, f4); |
| 1803 __ swc1(f8, MemOperand(a0, offsetof(TestFloat, b)) ); | 1803 __ swc1(f8, MemOperand(a0, offsetof(TestFloat, b)) ); |
| 1804 __ ctc1(t1, FCSR); | 1804 __ ctc1(t1, FCSR); |
| 1805 __ jr(ra); | 1805 __ jr(ra); |
| 1806 __ nop(); | 1806 __ nop(); |
| 1807 | 1807 |
| 1808 CodeDesc desc; | 1808 CodeDesc desc; |
| 1809 assm.GetCode(&desc); | 1809 assm.GetCode(isolate, &desc); |
| 1810 Handle<Code> code = isolate->factory()->NewCode( | 1810 Handle<Code> code = isolate->factory()->NewCode( |
| 1811 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1811 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1812 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1812 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1813 | 1813 |
| 1814 for (int j = 0; j < 4; j++) { | 1814 for (int j = 0; j < 4; j++) { |
| 1815 test.fcsr = fcsr_inputs[j]; | 1815 test.fcsr = fcsr_inputs[j]; |
| 1816 for (int i = 0; i < kTableLength; i++) { | 1816 for (int i = 0; i < kTableLength; i++) { |
| 1817 test.a = inputs[i]; | 1817 test.a = inputs[i]; |
| 1818 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 1818 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 1819 CHECK_EQ(test.b, outputs[j][i]); | 1819 CHECK_EQ(test.b, outputs[j][i]); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1848 | 1848 |
| 1849 TestStruct test; | 1849 TestStruct test; |
| 1850 | 1850 |
| 1851 __ lw(t1, MemOperand(a0, offsetof(TestStruct, input))); | 1851 __ lw(t1, MemOperand(a0, offsetof(TestStruct, input))); |
| 1852 __ Cvt_d_uw(f4, t1, f6); | 1852 __ Cvt_d_uw(f4, t1, f6); |
| 1853 __ Sdc1(f4, MemOperand(a0, offsetof(TestStruct, output))); | 1853 __ Sdc1(f4, MemOperand(a0, offsetof(TestStruct, output))); |
| 1854 __ jr(ra); | 1854 __ jr(ra); |
| 1855 __ nop(); | 1855 __ nop(); |
| 1856 | 1856 |
| 1857 CodeDesc desc; | 1857 CodeDesc desc; |
| 1858 assm.GetCode(&desc); | 1858 assm.GetCode(isolate, &desc); |
| 1859 Handle<Code> code = isolate->factory()->NewCode( | 1859 Handle<Code> code = isolate->factory()->NewCode( |
| 1860 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1860 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1861 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1861 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1862 for (int i = 0; i < kTableLength; i++) { | 1862 for (int i = 0; i < kTableLength; i++) { |
| 1863 test.input = inputs[i]; | 1863 test.input = inputs[i]; |
| 1864 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 1864 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 1865 // Check outputs | 1865 // Check outputs |
| 1866 CHECK_EQ(test.output, outputs[i]); | 1866 CHECK_EQ(test.output, outputs[i]); |
| 1867 } | 1867 } |
| 1868 } | 1868 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1930 __ maxa_d(f14, f2, f4); | 1930 __ maxa_d(f14, f2, f4); |
| 1931 __ maxa_s(f16, f8, f10); | 1931 __ maxa_s(f16, f8, f10); |
| 1932 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, resf)) ); | 1932 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, resf)) ); |
| 1933 __ Sdc1(f6, MemOperand(a0, offsetof(TestFloat, resd))); | 1933 __ Sdc1(f6, MemOperand(a0, offsetof(TestFloat, resd))); |
| 1934 __ swc1(f16, MemOperand(a0, offsetof(TestFloat, resf1)) ); | 1934 __ swc1(f16, MemOperand(a0, offsetof(TestFloat, resf1)) ); |
| 1935 __ Sdc1(f14, MemOperand(a0, offsetof(TestFloat, resd1))); | 1935 __ Sdc1(f14, MemOperand(a0, offsetof(TestFloat, resd1))); |
| 1936 __ jr(ra); | 1936 __ jr(ra); |
| 1937 __ nop(); | 1937 __ nop(); |
| 1938 | 1938 |
| 1939 CodeDesc desc; | 1939 CodeDesc desc; |
| 1940 assm.GetCode(&desc); | 1940 assm.GetCode(isolate, &desc); |
| 1941 Handle<Code> code = isolate->factory()->NewCode( | 1941 Handle<Code> code = isolate->factory()->NewCode( |
| 1942 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1942 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1943 F3 f = FUNCTION_CAST<F3>(code->entry()); | 1943 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 1944 for (int i = 0; i < kTableLength; i++) { | 1944 for (int i = 0; i < kTableLength; i++) { |
| 1945 test.a = inputsa[i]; | 1945 test.a = inputsa[i]; |
| 1946 test.b = inputsb[i]; | 1946 test.b = inputsb[i]; |
| 1947 test.c = inputsc[i]; | 1947 test.c = inputsc[i]; |
| 1948 test.d = inputsd[i]; | 1948 test.d = inputsd[i]; |
| 1949 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 1949 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 1950 if (i < kTableLength - 1) { | 1950 if (i < kTableLength - 1) { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2011 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 2011 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 2012 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 2012 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 2013 __ trunc_l_d(f8, f4); | 2013 __ trunc_l_d(f8, f4); |
| 2014 __ trunc_l_s(f10, f6); | 2014 __ trunc_l_s(f10, f6); |
| 2015 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); | 2015 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); |
| 2016 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); | 2016 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); |
| 2017 __ jr(ra); | 2017 __ jr(ra); |
| 2018 __ nop(); | 2018 __ nop(); |
| 2019 Test test; | 2019 Test test; |
| 2020 CodeDesc desc; | 2020 CodeDesc desc; |
| 2021 assm.GetCode(&desc); | 2021 assm.GetCode(isolate, &desc); |
| 2022 Handle<Code> code = isolate->factory()->NewCode( | 2022 Handle<Code> code = isolate->factory()->NewCode( |
| 2023 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2023 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2024 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2024 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2025 for (int i = 0; i < kTableLength; i++) { | 2025 for (int i = 0; i < kTableLength; i++) { |
| 2026 test.a = inputs_D[i]; | 2026 test.a = inputs_D[i]; |
| 2027 test.b = inputs_S[i]; | 2027 test.b = inputs_S[i]; |
| 2028 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2028 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2029 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && | 2029 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && |
| 2030 kArchVariant == kMips32r6) { | 2030 kArchVariant == kMips32r6) { |
| 2031 CHECK_EQ(test.c, outputsNaN2008[i]); | 2031 CHECK_EQ(test.c, outputsNaN2008[i]); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2092 __ movn_s(f14, f6, t0); | 2092 __ movn_s(f14, f6, t0); |
| 2093 __ movn_d(f16, f2, t0); | 2093 __ movn_d(f16, f2, t0); |
| 2094 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, d)) ); | 2094 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, d)) ); |
| 2095 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, b))); | 2095 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, b))); |
| 2096 __ swc1(f14, MemOperand(a0, offsetof(TestFloat, d1)) ); | 2096 __ swc1(f14, MemOperand(a0, offsetof(TestFloat, d1)) ); |
| 2097 __ Sdc1(f16, MemOperand(a0, offsetof(TestFloat, b1))); | 2097 __ Sdc1(f16, MemOperand(a0, offsetof(TestFloat, b1))); |
| 2098 __ jr(ra); | 2098 __ jr(ra); |
| 2099 __ nop(); | 2099 __ nop(); |
| 2100 | 2100 |
| 2101 CodeDesc desc; | 2101 CodeDesc desc; |
| 2102 assm.GetCode(&desc); | 2102 assm.GetCode(isolate, &desc); |
| 2103 Handle<Code> code = isolate->factory()->NewCode( | 2103 Handle<Code> code = isolate->factory()->NewCode( |
| 2104 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2104 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2105 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2105 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2106 for (int i = 0; i < kTableLength; i++) { | 2106 for (int i = 0; i < kTableLength; i++) { |
| 2107 test.a = inputs_D[i]; | 2107 test.a = inputs_D[i]; |
| 2108 test.c = inputs_S[i]; | 2108 test.c = inputs_S[i]; |
| 2109 | 2109 |
| 2110 test.rt = 1; | 2110 test.rt = 1; |
| 2111 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2111 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2112 CHECK_EQ(test.b, test.bold); | 2112 CHECK_EQ(test.b, test.bold); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2194 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, dstfold1)) ); | 2194 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, dstfold1)) ); |
| 2195 __ movf_s(f12, f4, test.cc); | 2195 __ movf_s(f12, f4, test.cc); |
| 2196 __ movf_d(f10, f2, test.cc); | 2196 __ movf_d(f10, f2, test.cc); |
| 2197 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, dstf1)) ); | 2197 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, dstf1)) ); |
| 2198 __ Sdc1(f10, MemOperand(a0, offsetof(TestFloat, dstd1))); | 2198 __ Sdc1(f10, MemOperand(a0, offsetof(TestFloat, dstd1))); |
| 2199 __ ctc1(t0, FCSR); | 2199 __ ctc1(t0, FCSR); |
| 2200 __ jr(ra); | 2200 __ jr(ra); |
| 2201 __ nop(); | 2201 __ nop(); |
| 2202 | 2202 |
| 2203 CodeDesc desc; | 2203 CodeDesc desc; |
| 2204 assm.GetCode(&desc); | 2204 assm.GetCode(isolate, &desc); |
| 2205 Handle<Code> code = isolate->factory()->NewCode( | 2205 Handle<Code> code = isolate->factory()->NewCode( |
| 2206 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2206 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2207 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2207 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2208 | 2208 |
| 2209 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2209 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2210 CHECK_EQ(test.dstf, outputs_S[i]); | 2210 CHECK_EQ(test.dstf, outputs_S[i]); |
| 2211 CHECK_EQ(test.dstd, outputs_D[i]); | 2211 CHECK_EQ(test.dstd, outputs_D[i]); |
| 2212 CHECK_EQ(test.dstf1, test.dstfold1); | 2212 CHECK_EQ(test.dstf1, test.dstfold1); |
| 2213 CHECK_EQ(test.dstd1, test.dstdold1); | 2213 CHECK_EQ(test.dstd1, test.dstdold1); |
| 2214 test.fcsr = 0; | 2214 test.fcsr = 0; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2279 __ lw(t0, MemOperand(a0, offsetof(Test, fcsr)) ); | 2279 __ lw(t0, MemOperand(a0, offsetof(Test, fcsr)) ); |
| 2280 __ cfc1(t1, FCSR); | 2280 __ cfc1(t1, FCSR); |
| 2281 __ ctc1(t0, FCSR); | 2281 __ ctc1(t0, FCSR); |
| 2282 __ cvt_w_d(f8, f4); | 2282 __ cvt_w_d(f8, f4); |
| 2283 __ swc1(f8, MemOperand(a0, offsetof(Test, b)) ); | 2283 __ swc1(f8, MemOperand(a0, offsetof(Test, b)) ); |
| 2284 __ ctc1(t1, FCSR); | 2284 __ ctc1(t1, FCSR); |
| 2285 __ jr(ra); | 2285 __ jr(ra); |
| 2286 __ nop(); | 2286 __ nop(); |
| 2287 Test test; | 2287 Test test; |
| 2288 CodeDesc desc; | 2288 CodeDesc desc; |
| 2289 assm.GetCode(&desc); | 2289 assm.GetCode(isolate, &desc); |
| 2290 Handle<Code> code = isolate->factory()->NewCode( | 2290 Handle<Code> code = isolate->factory()->NewCode( |
| 2291 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2291 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2292 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2292 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2293 for (int j = 0; j < 4; j++) { | 2293 for (int j = 0; j < 4; j++) { |
| 2294 test.fcsr = fcsr_inputs[j]; | 2294 test.fcsr = fcsr_inputs[j]; |
| 2295 for (int i = 0; i < kTableLength; i++) { | 2295 for (int i = 0; i < kTableLength; i++) { |
| 2296 test.a = inputs[i]; | 2296 test.a = inputs[i]; |
| 2297 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2297 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2298 CHECK_EQ(test.b, outputs[j][i]); | 2298 CHECK_EQ(test.b, outputs[j][i]); |
| 2299 } | 2299 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2346 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 2346 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 2347 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 2347 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 2348 __ trunc_w_d(f8, f4); | 2348 __ trunc_w_d(f8, f4); |
| 2349 __ trunc_w_s(f10, f6); | 2349 __ trunc_w_s(f10, f6); |
| 2350 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); | 2350 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); |
| 2351 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); | 2351 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); |
| 2352 __ jr(ra); | 2352 __ jr(ra); |
| 2353 __ nop(); | 2353 __ nop(); |
| 2354 Test test; | 2354 Test test; |
| 2355 CodeDesc desc; | 2355 CodeDesc desc; |
| 2356 assm.GetCode(&desc); | 2356 assm.GetCode(isolate, &desc); |
| 2357 Handle<Code> code = isolate->factory()->NewCode( | 2357 Handle<Code> code = isolate->factory()->NewCode( |
| 2358 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2358 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2359 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2359 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2360 for (int i = 0; i < kTableLength; i++) { | 2360 for (int i = 0; i < kTableLength; i++) { |
| 2361 test.a = inputs_D[i]; | 2361 test.a = inputs_D[i]; |
| 2362 test.b = inputs_S[i]; | 2362 test.b = inputs_S[i]; |
| 2363 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2363 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2364 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { | 2364 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { |
| 2365 CHECK_EQ(test.c, outputsNaN2008[i]); | 2365 CHECK_EQ(test.c, outputsNaN2008[i]); |
| 2366 } else { | 2366 } else { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2415 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 2415 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 2416 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 2416 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 2417 __ round_w_d(f8, f4); | 2417 __ round_w_d(f8, f4); |
| 2418 __ round_w_s(f10, f6); | 2418 __ round_w_s(f10, f6); |
| 2419 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); | 2419 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); |
| 2420 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); | 2420 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); |
| 2421 __ jr(ra); | 2421 __ jr(ra); |
| 2422 __ nop(); | 2422 __ nop(); |
| 2423 Test test; | 2423 Test test; |
| 2424 CodeDesc desc; | 2424 CodeDesc desc; |
| 2425 assm.GetCode(&desc); | 2425 assm.GetCode(isolate, &desc); |
| 2426 Handle<Code> code = isolate->factory()->NewCode( | 2426 Handle<Code> code = isolate->factory()->NewCode( |
| 2427 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2427 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2428 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2428 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2429 for (int i = 0; i < kTableLength; i++) { | 2429 for (int i = 0; i < kTableLength; i++) { |
| 2430 test.a = inputs_D[i]; | 2430 test.a = inputs_D[i]; |
| 2431 test.b = inputs_S[i]; | 2431 test.b = inputs_S[i]; |
| 2432 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2432 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2433 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { | 2433 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { |
| 2434 CHECK_EQ(test.c, outputsNaN2008[i]); | 2434 CHECK_EQ(test.c, outputsNaN2008[i]); |
| 2435 } else { | 2435 } else { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2487 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 2487 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 2488 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 2488 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 2489 __ round_l_d(f8, f4); | 2489 __ round_l_d(f8, f4); |
| 2490 __ round_l_s(f10, f6); | 2490 __ round_l_s(f10, f6); |
| 2491 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); | 2491 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); |
| 2492 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); | 2492 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); |
| 2493 __ jr(ra); | 2493 __ jr(ra); |
| 2494 __ nop(); | 2494 __ nop(); |
| 2495 Test test; | 2495 Test test; |
| 2496 CodeDesc desc; | 2496 CodeDesc desc; |
| 2497 assm.GetCode(&desc); | 2497 assm.GetCode(isolate, &desc); |
| 2498 Handle<Code> code = isolate->factory()->NewCode( | 2498 Handle<Code> code = isolate->factory()->NewCode( |
| 2499 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2499 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2500 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2500 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2501 for (int i = 0; i < kTableLength; i++) { | 2501 for (int i = 0; i < kTableLength; i++) { |
| 2502 test.a = inputs_D[i]; | 2502 test.a = inputs_D[i]; |
| 2503 test.b = inputs_S[i]; | 2503 test.b = inputs_S[i]; |
| 2504 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2504 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2505 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && | 2505 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && |
| 2506 kArchVariant == kMips32r6) { | 2506 kArchVariant == kMips32r6) { |
| 2507 CHECK_EQ(test.c, outputsNaN2008[i]); | 2507 CHECK_EQ(test.c, outputsNaN2008[i]); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2560 __ Ldc1(f8, MemOperand(a0, offsetof(TestFloat, c))); | 2560 __ Ldc1(f8, MemOperand(a0, offsetof(TestFloat, c))); |
| 2561 __ Ldc1(f10, MemOperand(a0, offsetof(TestFloat, d))); | 2561 __ Ldc1(f10, MemOperand(a0, offsetof(TestFloat, d))); |
| 2562 __ sub_s(f6, f2, f4); | 2562 __ sub_s(f6, f2, f4); |
| 2563 __ sub_d(f12, f8, f10); | 2563 __ sub_d(f12, f8, f10); |
| 2564 __ swc1(f6, MemOperand(a0, offsetof(TestFloat, resultS)) ); | 2564 __ swc1(f6, MemOperand(a0, offsetof(TestFloat, resultS)) ); |
| 2565 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, resultD))); | 2565 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, resultD))); |
| 2566 __ jr(ra); | 2566 __ jr(ra); |
| 2567 __ nop(); | 2567 __ nop(); |
| 2568 | 2568 |
| 2569 CodeDesc desc; | 2569 CodeDesc desc; |
| 2570 assm.GetCode(&desc); | 2570 assm.GetCode(isolate, &desc); |
| 2571 Handle<Code> code = isolate->factory()->NewCode( | 2571 Handle<Code> code = isolate->factory()->NewCode( |
| 2572 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2572 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2573 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2573 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2574 for (int i = 0; i < kTableLength; i++) { | 2574 for (int i = 0; i < kTableLength; i++) { |
| 2575 test.a = inputfs_S[i]; | 2575 test.a = inputfs_S[i]; |
| 2576 test.b = inputft_S[i]; | 2576 test.b = inputft_S[i]; |
| 2577 test.c = inputfs_D[i]; | 2577 test.c = inputfs_D[i]; |
| 2578 test.d = inputft_D[i]; | 2578 test.d = inputft_D[i]; |
| 2579 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2579 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2580 CHECK_EQ(test.resultS, outputs_S[i]); | 2580 CHECK_EQ(test.resultS, outputs_S[i]); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2639 if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) { | 2639 if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) { |
| 2640 __ swc1(f16, MemOperand(a0, offsetof(TestFloat, resultS1)) ); | 2640 __ swc1(f16, MemOperand(a0, offsetof(TestFloat, resultS1)) ); |
| 2641 __ Sdc1(f14, MemOperand(a0, offsetof(TestFloat, resultD1))); | 2641 __ Sdc1(f14, MemOperand(a0, offsetof(TestFloat, resultD1))); |
| 2642 __ swc1(f4, MemOperand(a0, offsetof(TestFloat, resultS2)) ); | 2642 __ swc1(f4, MemOperand(a0, offsetof(TestFloat, resultS2)) ); |
| 2643 __ Sdc1(f18, MemOperand(a0, offsetof(TestFloat, resultD2))); | 2643 __ Sdc1(f18, MemOperand(a0, offsetof(TestFloat, resultD2))); |
| 2644 } | 2644 } |
| 2645 __ jr(ra); | 2645 __ jr(ra); |
| 2646 __ nop(); | 2646 __ nop(); |
| 2647 | 2647 |
| 2648 CodeDesc desc; | 2648 CodeDesc desc; |
| 2649 assm.GetCode(&desc); | 2649 assm.GetCode(isolate, &desc); |
| 2650 Handle<Code> code = isolate->factory()->NewCode( | 2650 Handle<Code> code = isolate->factory()->NewCode( |
| 2651 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2651 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2652 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2652 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2653 | 2653 |
| 2654 for (int i = 0; i < kTableLength; i++) { | 2654 for (int i = 0; i < kTableLength; i++) { |
| 2655 float f1; | 2655 float f1; |
| 2656 double d1; | 2656 double d1; |
| 2657 test.a = inputs_S[i]; | 2657 test.a = inputs_S[i]; |
| 2658 test.c = inputs_D[i]; | 2658 test.c = inputs_D[i]; |
| 2659 | 2659 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2719 __ lwc1(f2, MemOperand(a0, offsetof(TestFloat, a)) ); | 2719 __ lwc1(f2, MemOperand(a0, offsetof(TestFloat, a)) ); |
| 2720 __ Ldc1(f8, MemOperand(a0, offsetof(TestFloat, c))); | 2720 __ Ldc1(f8, MemOperand(a0, offsetof(TestFloat, c))); |
| 2721 __ neg_s(f6, f2); | 2721 __ neg_s(f6, f2); |
| 2722 __ neg_d(f12, f8); | 2722 __ neg_d(f12, f8); |
| 2723 __ swc1(f6, MemOperand(a0, offsetof(TestFloat, resultS)) ); | 2723 __ swc1(f6, MemOperand(a0, offsetof(TestFloat, resultS)) ); |
| 2724 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, resultD))); | 2724 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, resultD))); |
| 2725 __ jr(ra); | 2725 __ jr(ra); |
| 2726 __ nop(); | 2726 __ nop(); |
| 2727 | 2727 |
| 2728 CodeDesc desc; | 2728 CodeDesc desc; |
| 2729 assm.GetCode(&desc); | 2729 assm.GetCode(isolate, &desc); |
| 2730 Handle<Code> code = isolate->factory()->NewCode( | 2730 Handle<Code> code = isolate->factory()->NewCode( |
| 2731 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2731 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2732 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2732 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2733 for (int i = 0; i < kTableLength; i++) { | 2733 for (int i = 0; i < kTableLength; i++) { |
| 2734 test.a = inputs_S[i]; | 2734 test.a = inputs_S[i]; |
| 2735 test.c = inputs_D[i]; | 2735 test.c = inputs_D[i]; |
| 2736 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2736 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2737 CHECK_EQ(test.resultS, outputs_S[i]); | 2737 CHECK_EQ(test.resultS, outputs_S[i]); |
| 2738 CHECK_EQ(test.resultD, outputs_D[i]); | 2738 CHECK_EQ(test.resultD, outputs_D[i]); |
| 2739 } | 2739 } |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2776 __ Ldc1(f6, MemOperand(a0, offsetof(TestFloat, c))); | 2776 __ Ldc1(f6, MemOperand(a0, offsetof(TestFloat, c))); |
| 2777 __ Ldc1(f8, MemOperand(a0, offsetof(TestFloat, d))); | 2777 __ Ldc1(f8, MemOperand(a0, offsetof(TestFloat, d))); |
| 2778 __ mul_s(f10, f2, f4); | 2778 __ mul_s(f10, f2, f4); |
| 2779 __ mul_d(f12, f6, f8); | 2779 __ mul_d(f12, f6, f8); |
| 2780 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, resultS)) ); | 2780 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, resultS)) ); |
| 2781 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, resultD))); | 2781 __ Sdc1(f12, MemOperand(a0, offsetof(TestFloat, resultD))); |
| 2782 __ jr(ra); | 2782 __ jr(ra); |
| 2783 __ nop(); | 2783 __ nop(); |
| 2784 | 2784 |
| 2785 CodeDesc desc; | 2785 CodeDesc desc; |
| 2786 assm.GetCode(&desc); | 2786 assm.GetCode(isolate, &desc); |
| 2787 Handle<Code> code = isolate->factory()->NewCode( | 2787 Handle<Code> code = isolate->factory()->NewCode( |
| 2788 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2788 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2789 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2789 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2790 for (int i = 0; i < kTableLength; i++) { | 2790 for (int i = 0; i < kTableLength; i++) { |
| 2791 test.a = inputfs_S[i]; | 2791 test.a = inputfs_S[i]; |
| 2792 test.b = inputft_S[i]; | 2792 test.b = inputft_S[i]; |
| 2793 test.c = inputfs_D[i]; | 2793 test.c = inputfs_D[i]; |
| 2794 test.d = inputft_D[i]; | 2794 test.d = inputft_D[i]; |
| 2795 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2795 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2796 CHECK_EQ(test.resultS, inputfs_S[i]*inputft_S[i]); | 2796 CHECK_EQ(test.resultS, inputfs_S[i]*inputft_S[i]); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2832 __ lwc1(f6, MemOperand(a0, offsetof(TestFloat, c)) ); | 2832 __ lwc1(f6, MemOperand(a0, offsetof(TestFloat, c)) ); |
| 2833 __ mov_s(f8, f6); | 2833 __ mov_s(f8, f6); |
| 2834 __ mov_d(f10, f4); | 2834 __ mov_d(f10, f4); |
| 2835 __ swc1(f8, MemOperand(a0, offsetof(TestFloat, d)) ); | 2835 __ swc1(f8, MemOperand(a0, offsetof(TestFloat, d)) ); |
| 2836 __ Sdc1(f10, MemOperand(a0, offsetof(TestFloat, b))); | 2836 __ Sdc1(f10, MemOperand(a0, offsetof(TestFloat, b))); |
| 2837 | 2837 |
| 2838 __ jr(ra); | 2838 __ jr(ra); |
| 2839 __ nop(); | 2839 __ nop(); |
| 2840 | 2840 |
| 2841 CodeDesc desc; | 2841 CodeDesc desc; |
| 2842 assm.GetCode(&desc); | 2842 assm.GetCode(isolate, &desc); |
| 2843 Handle<Code> code = isolate->factory()->NewCode( | 2843 Handle<Code> code = isolate->factory()->NewCode( |
| 2844 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2844 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2845 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2845 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2846 for (int i = 0; i < kTableLength; i++) { | 2846 for (int i = 0; i < kTableLength; i++) { |
| 2847 test.a = inputs_D[i]; | 2847 test.a = inputs_D[i]; |
| 2848 test.c = inputs_S[i]; | 2848 test.c = inputs_S[i]; |
| 2849 | 2849 |
| 2850 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2850 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2851 CHECK_EQ(test.b, outputs_D[i]); | 2851 CHECK_EQ(test.b, outputs_D[i]); |
| 2852 CHECK_EQ(test.d, outputs_S[i]); | 2852 CHECK_EQ(test.d, outputs_S[i]); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2899 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 2899 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 2900 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 2900 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 2901 __ floor_w_d(f8, f4); | 2901 __ floor_w_d(f8, f4); |
| 2902 __ floor_w_s(f10, f6); | 2902 __ floor_w_s(f10, f6); |
| 2903 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); | 2903 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); |
| 2904 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); | 2904 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); |
| 2905 __ jr(ra); | 2905 __ jr(ra); |
| 2906 __ nop(); | 2906 __ nop(); |
| 2907 Test test; | 2907 Test test; |
| 2908 CodeDesc desc; | 2908 CodeDesc desc; |
| 2909 assm.GetCode(&desc); | 2909 assm.GetCode(isolate, &desc); |
| 2910 Handle<Code> code = isolate->factory()->NewCode( | 2910 Handle<Code> code = isolate->factory()->NewCode( |
| 2911 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2911 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2912 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2912 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2913 for (int i = 0; i < kTableLength; i++) { | 2913 for (int i = 0; i < kTableLength; i++) { |
| 2914 test.a = inputs_D[i]; | 2914 test.a = inputs_D[i]; |
| 2915 test.b = inputs_S[i]; | 2915 test.b = inputs_S[i]; |
| 2916 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2916 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2917 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { | 2917 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { |
| 2918 CHECK_EQ(test.c, outputsNaN2008[i]); | 2918 CHECK_EQ(test.c, outputsNaN2008[i]); |
| 2919 } else { | 2919 } else { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2971 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 2971 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 2972 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 2972 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 2973 __ floor_l_d(f8, f4); | 2973 __ floor_l_d(f8, f4); |
| 2974 __ floor_l_s(f10, f6); | 2974 __ floor_l_s(f10, f6); |
| 2975 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); | 2975 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); |
| 2976 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); | 2976 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); |
| 2977 __ jr(ra); | 2977 __ jr(ra); |
| 2978 __ nop(); | 2978 __ nop(); |
| 2979 Test test; | 2979 Test test; |
| 2980 CodeDesc desc; | 2980 CodeDesc desc; |
| 2981 assm.GetCode(&desc); | 2981 assm.GetCode(isolate, &desc); |
| 2982 Handle<Code> code = isolate->factory()->NewCode( | 2982 Handle<Code> code = isolate->factory()->NewCode( |
| 2983 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2983 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2984 F3 f = FUNCTION_CAST<F3>(code->entry()); | 2984 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 2985 for (int i = 0; i < kTableLength; i++) { | 2985 for (int i = 0; i < kTableLength; i++) { |
| 2986 test.a = inputs_D[i]; | 2986 test.a = inputs_D[i]; |
| 2987 test.b = inputs_S[i]; | 2987 test.b = inputs_S[i]; |
| 2988 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 2988 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 2989 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && | 2989 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && |
| 2990 kArchVariant == kMips32r6) { | 2990 kArchVariant == kMips32r6) { |
| 2991 CHECK_EQ(test.c, outputsNaN2008[i]); | 2991 CHECK_EQ(test.c, outputsNaN2008[i]); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3043 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 3043 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 3044 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 3044 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 3045 __ ceil_w_d(f8, f4); | 3045 __ ceil_w_d(f8, f4); |
| 3046 __ ceil_w_s(f10, f6); | 3046 __ ceil_w_s(f10, f6); |
| 3047 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); | 3047 __ swc1(f8, MemOperand(a0, offsetof(Test, c)) ); |
| 3048 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); | 3048 __ swc1(f10, MemOperand(a0, offsetof(Test, d)) ); |
| 3049 __ jr(ra); | 3049 __ jr(ra); |
| 3050 __ nop(); | 3050 __ nop(); |
| 3051 Test test; | 3051 Test test; |
| 3052 CodeDesc desc; | 3052 CodeDesc desc; |
| 3053 assm.GetCode(&desc); | 3053 assm.GetCode(isolate, &desc); |
| 3054 Handle<Code> code = isolate->factory()->NewCode( | 3054 Handle<Code> code = isolate->factory()->NewCode( |
| 3055 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3055 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3056 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3056 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3057 for (int i = 0; i < kTableLength; i++) { | 3057 for (int i = 0; i < kTableLength; i++) { |
| 3058 test.a = inputs_D[i]; | 3058 test.a = inputs_D[i]; |
| 3059 test.b = inputs_S[i]; | 3059 test.b = inputs_S[i]; |
| 3060 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 3060 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 3061 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { | 3061 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && kArchVariant == kMips32r6) { |
| 3062 CHECK_EQ(test.c, outputsNaN2008[i]); | 3062 CHECK_EQ(test.c, outputsNaN2008[i]); |
| 3063 } else { | 3063 } else { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3115 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); | 3115 __ Ldc1(f4, MemOperand(a0, offsetof(Test, a))); |
| 3116 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); | 3116 __ lwc1(f6, MemOperand(a0, offsetof(Test, b)) ); |
| 3117 __ ceil_l_d(f8, f4); | 3117 __ ceil_l_d(f8, f4); |
| 3118 __ ceil_l_s(f10, f6); | 3118 __ ceil_l_s(f10, f6); |
| 3119 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); | 3119 __ Sdc1(f8, MemOperand(a0, offsetof(Test, c))); |
| 3120 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); | 3120 __ Sdc1(f10, MemOperand(a0, offsetof(Test, d))); |
| 3121 __ jr(ra); | 3121 __ jr(ra); |
| 3122 __ nop(); | 3122 __ nop(); |
| 3123 Test test; | 3123 Test test; |
| 3124 CodeDesc desc; | 3124 CodeDesc desc; |
| 3125 assm.GetCode(&desc); | 3125 assm.GetCode(isolate, &desc); |
| 3126 Handle<Code> code = isolate->factory()->NewCode( | 3126 Handle<Code> code = isolate->factory()->NewCode( |
| 3127 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3127 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3128 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3128 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3129 for (int i = 0; i < kTableLength; i++) { | 3129 for (int i = 0; i < kTableLength; i++) { |
| 3130 test.a = inputs_D[i]; | 3130 test.a = inputs_D[i]; |
| 3131 test.b = inputs_S[i]; | 3131 test.b = inputs_S[i]; |
| 3132 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 3132 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 3133 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && | 3133 if ((test.isNaN2008 & kFCSRNaN2008FlagMask) && |
| 3134 kArchVariant == kMips32r6) { | 3134 kArchVariant == kMips32r6) { |
| 3135 CHECK_EQ(test.c, outputsNaN2008[i]); | 3135 CHECK_EQ(test.c, outputsNaN2008[i]); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3187 | 3187 |
| 3188 __ bind(&done); | 3188 __ bind(&done); |
| 3189 __ lw(ra, MemOperand(sp)); | 3189 __ lw(ra, MemOperand(sp)); |
| 3190 __ addiu(sp, sp, 4); | 3190 __ addiu(sp, sp, 4); |
| 3191 __ jr(ra); | 3191 __ jr(ra); |
| 3192 __ nop(); | 3192 __ nop(); |
| 3193 | 3193 |
| 3194 CHECK_EQ(0, assm.UnboundLabelsCount()); | 3194 CHECK_EQ(0, assm.UnboundLabelsCount()); |
| 3195 | 3195 |
| 3196 CodeDesc desc; | 3196 CodeDesc desc; |
| 3197 assm.GetCode(&desc); | 3197 assm.GetCode(isolate, &desc); |
| 3198 Handle<Code> code = isolate->factory()->NewCode( | 3198 Handle<Code> code = isolate->factory()->NewCode( |
| 3199 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3199 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3200 #ifdef OBJECT_PRINT | 3200 #ifdef OBJECT_PRINT |
| 3201 code->Print(std::cout); | 3201 code->Print(std::cout); |
| 3202 #endif | 3202 #endif |
| 3203 F1 f = FUNCTION_CAST<F1>(code->entry()); | 3203 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 3204 for (int i = 0; i < kNumCases; ++i) { | 3204 for (int i = 0; i < kNumCases; ++i) { |
| 3205 int res = reinterpret_cast<int>( | 3205 int res = reinterpret_cast<int>( |
| 3206 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); | 3206 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); |
| 3207 ::printf("f(%d) = %d\n", i, res); | 3207 ::printf("f(%d) = %d\n", i, res); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3257 } | 3257 } |
| 3258 } | 3258 } |
| 3259 | 3259 |
| 3260 __ bind(&done); | 3260 __ bind(&done); |
| 3261 __ lw(ra, MemOperand(sp)); | 3261 __ lw(ra, MemOperand(sp)); |
| 3262 __ addiu(sp, sp, 4); | 3262 __ addiu(sp, sp, 4); |
| 3263 __ jr(ra); | 3263 __ jr(ra); |
| 3264 __ nop(); | 3264 __ nop(); |
| 3265 | 3265 |
| 3266 CodeDesc desc; | 3266 CodeDesc desc; |
| 3267 assm.GetCode(&desc); | 3267 assm.GetCode(isolate, &desc); |
| 3268 Handle<Code> code = isolate->factory()->NewCode( | 3268 Handle<Code> code = isolate->factory()->NewCode( |
| 3269 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3269 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3270 #ifdef OBJECT_PRINT | 3270 #ifdef OBJECT_PRINT |
| 3271 code->Print(std::cout); | 3271 code->Print(std::cout); |
| 3272 #endif | 3272 #endif |
| 3273 F1 f = FUNCTION_CAST<F1>(code->entry()); | 3273 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 3274 for (int i = 0; i < kNumCases; ++i) { | 3274 for (int i = 0; i < kNumCases; ++i) { |
| 3275 int res = reinterpret_cast<int>( | 3275 int res = reinterpret_cast<int>( |
| 3276 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); | 3276 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); |
| 3277 ::printf("f(%d) = %d\n", i, res); | 3277 ::printf("f(%d) = %d\n", i, res); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3334 } | 3334 } |
| 3335 } | 3335 } |
| 3336 | 3336 |
| 3337 __ bind(&done); | 3337 __ bind(&done); |
| 3338 __ lw(ra, MemOperand(sp)); | 3338 __ lw(ra, MemOperand(sp)); |
| 3339 __ addiu(sp, sp, 4); | 3339 __ addiu(sp, sp, 4); |
| 3340 __ jr(ra); | 3340 __ jr(ra); |
| 3341 __ nop(); | 3341 __ nop(); |
| 3342 | 3342 |
| 3343 CodeDesc desc; | 3343 CodeDesc desc; |
| 3344 assm.GetCode(&desc); | 3344 assm.GetCode(isolate, &desc); |
| 3345 Handle<Code> code = isolate->factory()->NewCode( | 3345 Handle<Code> code = isolate->factory()->NewCode( |
| 3346 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3346 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3347 #ifdef OBJECT_PRINT | 3347 #ifdef OBJECT_PRINT |
| 3348 code->Print(std::cout); | 3348 code->Print(std::cout); |
| 3349 #endif | 3349 #endif |
| 3350 F1 f = FUNCTION_CAST<F1>(code->entry()); | 3350 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 3351 for (int i = 0; i < kNumCases; ++i) { | 3351 for (int i = 0; i < kNumCases; ++i) { |
| 3352 Handle<Object> result( | 3352 Handle<Object> result( |
| 3353 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0), isolate); | 3353 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0), isolate); |
| 3354 #ifdef OBJECT_PRINT | 3354 #ifdef OBJECT_PRINT |
| (...skipping 30 matching lines...) Expand all Loading... |
| 3385 | 3385 |
| 3386 __ lw(a2, MemOperand(a0, offsetof(T, r2))); | 3386 __ lw(a2, MemOperand(a0, offsetof(T, r2))); |
| 3387 __ nop(); | 3387 __ nop(); |
| 3388 __ bitswap(a1, a2); | 3388 __ bitswap(a1, a2); |
| 3389 __ sw(a1, MemOperand(a0, offsetof(T, r2))); | 3389 __ sw(a1, MemOperand(a0, offsetof(T, r2))); |
| 3390 | 3390 |
| 3391 __ jr(ra); | 3391 __ jr(ra); |
| 3392 __ nop(); | 3392 __ nop(); |
| 3393 | 3393 |
| 3394 CodeDesc desc; | 3394 CodeDesc desc; |
| 3395 assm.GetCode(&desc); | 3395 assm.GetCode(isolate, &desc); |
| 3396 Handle<Code> code = isolate->factory()->NewCode( | 3396 Handle<Code> code = isolate->factory()->NewCode( |
| 3397 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3397 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3398 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3398 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3399 t.r1 = 0x781A15C3; | 3399 t.r1 = 0x781A15C3; |
| 3400 t.r2 = 0x8B71FCDE; | 3400 t.r2 = 0x8B71FCDE; |
| 3401 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 3401 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 3402 USE(dummy); | 3402 USE(dummy); |
| 3403 | 3403 |
| 3404 CHECK_EQ(static_cast<int32_t>(0x1E58A8C3), t.r1); | 3404 CHECK_EQ(static_cast<int32_t>(0x1E58A8C3), t.r1); |
| 3405 CHECK_EQ(static_cast<int32_t>(0xD18E3F7B), t.r2); | 3405 CHECK_EQ(static_cast<int32_t>(0xD18E3F7B), t.r2); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3520 __ swc1(f6, MemOperand(a0, offsetof(T, fPosSubnorm))); | 3520 __ swc1(f6, MemOperand(a0, offsetof(T, fPosSubnorm))); |
| 3521 | 3521 |
| 3522 __ lwc1(f4, MemOperand(a0, offsetof(T, fPosZero))); | 3522 __ lwc1(f4, MemOperand(a0, offsetof(T, fPosZero))); |
| 3523 __ class_s(f6, f4); | 3523 __ class_s(f6, f4); |
| 3524 __ swc1(f6, MemOperand(a0, offsetof(T, fPosZero))); | 3524 __ swc1(f6, MemOperand(a0, offsetof(T, fPosZero))); |
| 3525 | 3525 |
| 3526 __ jr(ra); | 3526 __ jr(ra); |
| 3527 __ nop(); | 3527 __ nop(); |
| 3528 | 3528 |
| 3529 CodeDesc desc; | 3529 CodeDesc desc; |
| 3530 assm.GetCode(&desc); | 3530 assm.GetCode(isolate, &desc); |
| 3531 Handle<Code> code = isolate->factory()->NewCode( | 3531 Handle<Code> code = isolate->factory()->NewCode( |
| 3532 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3532 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3533 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3533 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3534 | 3534 |
| 3535 t.dSignalingNan = std::numeric_limits<double>::signaling_NaN(); | 3535 t.dSignalingNan = std::numeric_limits<double>::signaling_NaN(); |
| 3536 t.dQuietNan = std::numeric_limits<double>::quiet_NaN(); | 3536 t.dQuietNan = std::numeric_limits<double>::quiet_NaN(); |
| 3537 t.dNegInf = -1.0 / 0.0; | 3537 t.dNegInf = -1.0 / 0.0; |
| 3538 t.dNegNorm = -5.0; | 3538 t.dNegNorm = -5.0; |
| 3539 t.dNegSubnorm = -DBL_MIN / 2.0; | 3539 t.dNegSubnorm = -DBL_MIN / 2.0; |
| 3540 t.dNegZero = -0.0; | 3540 t.dNegZero = -0.0; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3612 __ abs_s(f10, f4); | 3612 __ abs_s(f10, f4); |
| 3613 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, b))); | 3613 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, b))); |
| 3614 | 3614 |
| 3615 // Restore FCSR. | 3615 // Restore FCSR. |
| 3616 __ ctc1(a1, FCSR); | 3616 __ ctc1(a1, FCSR); |
| 3617 | 3617 |
| 3618 __ jr(ra); | 3618 __ jr(ra); |
| 3619 __ nop(); | 3619 __ nop(); |
| 3620 | 3620 |
| 3621 CodeDesc desc; | 3621 CodeDesc desc; |
| 3622 assm.GetCode(&desc); | 3622 assm.GetCode(isolate, &desc); |
| 3623 Handle<Code> code = isolate->factory()->NewCode( | 3623 Handle<Code> code = isolate->factory()->NewCode( |
| 3624 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3624 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3625 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3625 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3626 test.a = -2.0; | 3626 test.a = -2.0; |
| 3627 test.b = -2.0; | 3627 test.b = -2.0; |
| 3628 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 3628 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 3629 CHECK_EQ(test.a, 2.0); | 3629 CHECK_EQ(test.a, 2.0); |
| 3630 CHECK_EQ(test.b, 2.0); | 3630 CHECK_EQ(test.b, 2.0); |
| 3631 | 3631 |
| 3632 test.a = 2.0; | 3632 test.a = 2.0; |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3705 | 3705 |
| 3706 __ lwc1(f4, MemOperand(a0, offsetof(TestFloat, fa))); | 3706 __ lwc1(f4, MemOperand(a0, offsetof(TestFloat, fa))); |
| 3707 __ lwc1(f8, MemOperand(a0, offsetof(TestFloat, fb))); | 3707 __ lwc1(f8, MemOperand(a0, offsetof(TestFloat, fb))); |
| 3708 __ add_s(f10, f8, f4); | 3708 __ add_s(f10, f8, f4); |
| 3709 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, fc))); | 3709 __ swc1(f10, MemOperand(a0, offsetof(TestFloat, fc))); |
| 3710 | 3710 |
| 3711 __ jr(ra); | 3711 __ jr(ra); |
| 3712 __ nop(); | 3712 __ nop(); |
| 3713 | 3713 |
| 3714 CodeDesc desc; | 3714 CodeDesc desc; |
| 3715 assm.GetCode(&desc); | 3715 assm.GetCode(isolate, &desc); |
| 3716 Handle<Code> code = isolate->factory()->NewCode( | 3716 Handle<Code> code = isolate->factory()->NewCode( |
| 3717 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3717 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3718 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3718 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3719 test.a = 2.0; | 3719 test.a = 2.0; |
| 3720 test.b = 3.0; | 3720 test.b = 3.0; |
| 3721 test.fa = 2.0; | 3721 test.fa = 2.0; |
| 3722 test.fb = 3.0; | 3722 test.fb = 3.0; |
| 3723 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 3723 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 3724 CHECK_EQ(test.c, 5.0); | 3724 CHECK_EQ(test.c, 5.0); |
| 3725 CHECK_EQ(test.fc, 5.0); | 3725 CHECK_EQ(test.fc, 5.0); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3860 __ c_s(ULE, f14, f16, 0); | 3860 __ c_s(ULE, f14, f16, 0); |
| 3861 __ movt(t2, t1, 6); | 3861 __ movt(t2, t1, 6); |
| 3862 __ movt(t3, t1, 0); | 3862 __ movt(t3, t1, 0); |
| 3863 __ sw(t2, MemOperand(a0, offsetof(TestFloat, dUle)) ); | 3863 __ sw(t2, MemOperand(a0, offsetof(TestFloat, dUle)) ); |
| 3864 __ sw(t3, MemOperand(a0, offsetof(TestFloat, fUle)) ); | 3864 __ sw(t3, MemOperand(a0, offsetof(TestFloat, fUle)) ); |
| 3865 | 3865 |
| 3866 __ jr(ra); | 3866 __ jr(ra); |
| 3867 __ nop(); | 3867 __ nop(); |
| 3868 | 3868 |
| 3869 CodeDesc desc; | 3869 CodeDesc desc; |
| 3870 assm.GetCode(&desc); | 3870 assm.GetCode(isolate, &desc); |
| 3871 Handle<Code> code = isolate->factory()->NewCode( | 3871 Handle<Code> code = isolate->factory()->NewCode( |
| 3872 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 3872 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 3873 F3 f = FUNCTION_CAST<F3>(code->entry()); | 3873 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 3874 test.dOp1 = 2.0; | 3874 test.dOp1 = 2.0; |
| 3875 test.dOp2 = 3.0; | 3875 test.dOp2 = 3.0; |
| 3876 test.fOp1 = 2.0; | 3876 test.fOp1 = 2.0; |
| 3877 test.fOp2 = 3.0; | 3877 test.fOp2 = 3.0; |
| 3878 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 3878 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 3879 CHECK_EQ(test.dF, 0U); | 3879 CHECK_EQ(test.dF, 0U); |
| 3880 CHECK_EQ(test.dUn, 0U); | 3880 CHECK_EQ(test.dUn, 0U); |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4061 | 4061 |
| 4062 __ cmp_d(NE, f2, f4, f6); | 4062 __ cmp_d(NE, f2, f4, f6); |
| 4063 __ cmp_s(NE, f12, f14, f16); | 4063 __ cmp_s(NE, f12, f14, f16); |
| 4064 __ Sdc1(f2, MemOperand(a0, offsetof(TestFloat, dNe))); | 4064 __ Sdc1(f2, MemOperand(a0, offsetof(TestFloat, dNe))); |
| 4065 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, fNe)) ); | 4065 __ swc1(f12, MemOperand(a0, offsetof(TestFloat, fNe)) ); |
| 4066 | 4066 |
| 4067 __ jr(ra); | 4067 __ jr(ra); |
| 4068 __ nop(); | 4068 __ nop(); |
| 4069 | 4069 |
| 4070 CodeDesc desc; | 4070 CodeDesc desc; |
| 4071 assm.GetCode(&desc); | 4071 assm.GetCode(isolate, &desc); |
| 4072 Handle<Code> code = isolate->factory()->NewCode( | 4072 Handle<Code> code = isolate->factory()->NewCode( |
| 4073 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4073 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4074 F3 f = FUNCTION_CAST<F3>(code->entry()); | 4074 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 4075 uint64_t dTrue = 0xFFFFFFFFFFFFFFFF; | 4075 uint64_t dTrue = 0xFFFFFFFFFFFFFFFF; |
| 4076 uint64_t dFalse = 0x0000000000000000; | 4076 uint64_t dFalse = 0x0000000000000000; |
| 4077 uint32_t fTrue = 0xFFFFFFFF; | 4077 uint32_t fTrue = 0xFFFFFFFF; |
| 4078 uint32_t fFalse = 0x00000000; | 4078 uint32_t fFalse = 0x00000000; |
| 4079 | 4079 |
| 4080 test.dOp1 = 2.0; | 4080 test.dOp1 = 2.0; |
| 4081 test.dOp2 = 3.0; | 4081 test.dOp2 = 3.0; |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4247 GENERATE_CVT_TEST(cvt_w_s, lw, sw) | 4247 GENERATE_CVT_TEST(cvt_w_s, lw, sw) |
| 4248 GENERATE_CVT_TEST(cvt_w_d, Ld, sw) | 4248 GENERATE_CVT_TEST(cvt_w_d, Ld, sw) |
| 4249 | 4249 |
| 4250 // Restore FCSR. | 4250 // Restore FCSR. |
| 4251 __ ctc1(a1, FCSR); | 4251 __ ctc1(a1, FCSR); |
| 4252 | 4252 |
| 4253 __ jr(ra); | 4253 __ jr(ra); |
| 4254 __ nop(); | 4254 __ nop(); |
| 4255 | 4255 |
| 4256 CodeDesc desc; | 4256 CodeDesc desc; |
| 4257 assm.GetCode(&desc); | 4257 assm.GetCode(isolate, &desc); |
| 4258 Handle<Code> code = isolate->factory()->NewCode( | 4258 Handle<Code> code = isolate->factory()->NewCode( |
| 4259 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4259 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4260 F3 f = FUNCTION_CAST<F3>(code->entry()); | 4260 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 4261 | 4261 |
| 4262 test.cvt_d_s_in = -0.51; | 4262 test.cvt_d_s_in = -0.51; |
| 4263 test.cvt_d_w_in = -1; | 4263 test.cvt_d_w_in = -1; |
| 4264 test.cvt_d_l_in = -1; | 4264 test.cvt_d_l_in = -1; |
| 4265 test.cvt_l_s_in = -0.51; | 4265 test.cvt_l_s_in = -0.51; |
| 4266 test.cvt_l_d_in = -0.51; | 4266 test.cvt_l_d_in = -0.51; |
| 4267 test.cvt_s_d_in = -0.51; | 4267 test.cvt_s_d_in = -0.51; |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4459 __ div_s(f6, f4, f2); | 4459 __ div_s(f6, f4, f2); |
| 4460 __ swc1(f6, MemOperand(a0, offsetof(Test, fRes)) ); | 4460 __ swc1(f6, MemOperand(a0, offsetof(Test, fRes)) ); |
| 4461 | 4461 |
| 4462 // Restore FCSR. | 4462 // Restore FCSR. |
| 4463 __ ctc1(a1, FCSR); | 4463 __ ctc1(a1, FCSR); |
| 4464 | 4464 |
| 4465 __ jr(ra); | 4465 __ jr(ra); |
| 4466 __ nop(); | 4466 __ nop(); |
| 4467 | 4467 |
| 4468 CodeDesc desc; | 4468 CodeDesc desc; |
| 4469 assm.GetCode(&desc); | 4469 assm.GetCode(isolate, &desc); |
| 4470 Handle<Code> code = isolate->factory()->NewCode( | 4470 Handle<Code> code = isolate->factory()->NewCode( |
| 4471 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4471 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4472 | 4472 |
| 4473 F3 f = FUNCTION_CAST<F3>(code->entry()); | 4473 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 4474 | 4474 |
| 4475 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); | 4475 (CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0)); |
| 4476 | 4476 |
| 4477 const int test_size = 3; | 4477 const int test_size = 3; |
| 4478 | 4478 |
| 4479 double dOp1[test_size] = { | 4479 double dOp1[test_size] = { |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4551 Isolate* isolate = CcTest::i_isolate(); | 4551 Isolate* isolate = CcTest::i_isolate(); |
| 4552 HandleScope scope(isolate); | 4552 HandleScope scope(isolate); |
| 4553 | 4553 |
| 4554 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); | 4554 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); |
| 4555 | 4555 |
| 4556 __ align(v0, a0, a1, bp); | 4556 __ align(v0, a0, a1, bp); |
| 4557 __ jr(ra); | 4557 __ jr(ra); |
| 4558 __ nop(); | 4558 __ nop(); |
| 4559 | 4559 |
| 4560 CodeDesc desc; | 4560 CodeDesc desc; |
| 4561 assm.GetCode(&desc); | 4561 assm.GetCode(isolate, &desc); |
| 4562 Handle<Code> code = isolate->factory()->NewCode( | 4562 Handle<Code> code = isolate->factory()->NewCode( |
| 4563 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4563 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4564 | 4564 |
| 4565 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4565 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4566 | 4566 |
| 4567 uint32_t res = reinterpret_cast<uint32_t>(CALL_GENERATED_CODE( | 4567 uint32_t res = reinterpret_cast<uint32_t>(CALL_GENERATED_CODE( |
| 4568 isolate, f, rs_value, rt_value, 0, 0, 0)); | 4568 isolate, f, rs_value, rt_value, 0, 0, 0)); |
| 4569 | 4569 |
| 4570 return res; | 4570 return res; |
| 4571 } | 4571 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4604 Isolate* isolate = CcTest::i_isolate(); | 4604 Isolate* isolate = CcTest::i_isolate(); |
| 4605 HandleScope scope(isolate); | 4605 HandleScope scope(isolate); |
| 4606 | 4606 |
| 4607 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); | 4607 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); |
| 4608 | 4608 |
| 4609 __ aluipc(v0, offset); | 4609 __ aluipc(v0, offset); |
| 4610 __ jr(ra); | 4610 __ jr(ra); |
| 4611 __ nop(); | 4611 __ nop(); |
| 4612 | 4612 |
| 4613 CodeDesc desc; | 4613 CodeDesc desc; |
| 4614 assm.GetCode(&desc); | 4614 assm.GetCode(isolate, &desc); |
| 4615 Handle<Code> code = isolate->factory()->NewCode( | 4615 Handle<Code> code = isolate->factory()->NewCode( |
| 4616 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4616 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4617 | 4617 |
| 4618 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4618 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4619 PC = (uint32_t) f; // Set the program counter. | 4619 PC = (uint32_t) f; // Set the program counter. |
| 4620 | 4620 |
| 4621 uint32_t res = reinterpret_cast<uint32_t>( | 4621 uint32_t res = reinterpret_cast<uint32_t>( |
| 4622 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 4622 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 4623 | 4623 |
| 4624 return res; | 4624 return res; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4658 Isolate* isolate = CcTest::i_isolate(); | 4658 Isolate* isolate = CcTest::i_isolate(); |
| 4659 HandleScope scope(isolate); | 4659 HandleScope scope(isolate); |
| 4660 | 4660 |
| 4661 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); | 4661 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); |
| 4662 | 4662 |
| 4663 __ auipc(v0, offset); | 4663 __ auipc(v0, offset); |
| 4664 __ jr(ra); | 4664 __ jr(ra); |
| 4665 __ nop(); | 4665 __ nop(); |
| 4666 | 4666 |
| 4667 CodeDesc desc; | 4667 CodeDesc desc; |
| 4668 assm.GetCode(&desc); | 4668 assm.GetCode(isolate, &desc); |
| 4669 Handle<Code> code = isolate->factory()->NewCode( | 4669 Handle<Code> code = isolate->factory()->NewCode( |
| 4670 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4670 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4671 | 4671 |
| 4672 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4672 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4673 PC = (uint32_t) f; // Set the program counter. | 4673 PC = (uint32_t) f; // Set the program counter. |
| 4674 | 4674 |
| 4675 uint32_t res = reinterpret_cast<uint32_t>( | 4675 uint32_t res = reinterpret_cast<uint32_t>( |
| 4676 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 4676 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 4677 | 4677 |
| 4678 return res; | 4678 return res; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4734 uint32_t addiu_start_2 = 0x25000000; | 4734 uint32_t addiu_start_2 = 0x25000000; |
| 4735 for (int32_t i = 0x80000; i <= 0xbffff; ++i) { | 4735 for (int32_t i = 0x80000; i <= 0xbffff; ++i) { |
| 4736 uint32_t addiu_new = addiu_start_2 + i; | 4736 uint32_t addiu_new = addiu_start_2 + i; |
| 4737 __ dd(addiu_new); | 4737 __ dd(addiu_new); |
| 4738 } | 4738 } |
| 4739 | 4739 |
| 4740 __ jr(ra); | 4740 __ jr(ra); |
| 4741 __ nop(); | 4741 __ nop(); |
| 4742 | 4742 |
| 4743 CodeDesc desc; | 4743 CodeDesc desc; |
| 4744 assm.GetCode(&desc); | 4744 assm.GetCode(isolate, &desc); |
| 4745 Handle<Code> code = isolate->factory()->NewCode( | 4745 Handle<Code> code = isolate->factory()->NewCode( |
| 4746 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4746 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4747 | 4747 |
| 4748 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4748 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4749 | 4749 |
| 4750 uint32_t res = reinterpret_cast<uint32_t>( | 4750 uint32_t res = reinterpret_cast<uint32_t>( |
| 4751 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 4751 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 4752 | 4752 |
| 4753 return res; | 4753 return res; |
| 4754 } | 4754 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4818 __ mov(t0, ra); | 4818 __ mov(t0, ra); |
| 4819 __ jr(ra); | 4819 __ jr(ra); |
| 4820 __ nop(); | 4820 __ nop(); |
| 4821 | 4821 |
| 4822 __ bind(&stop_execution); | 4822 __ bind(&stop_execution); |
| 4823 __ pop(ra); | 4823 __ pop(ra); |
| 4824 __ jr(ra); | 4824 __ jr(ra); |
| 4825 __ nop(); | 4825 __ nop(); |
| 4826 | 4826 |
| 4827 CodeDesc desc; | 4827 CodeDesc desc; |
| 4828 assm.GetCode(&desc); | 4828 assm.GetCode(isolate, &desc); |
| 4829 Handle<Code> code = isolate->factory()->NewCode( | 4829 Handle<Code> code = isolate->factory()->NewCode( |
| 4830 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4830 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4831 | 4831 |
| 4832 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4832 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4833 | 4833 |
| 4834 uint32_t res = reinterpret_cast<uint32_t>( | 4834 uint32_t res = reinterpret_cast<uint32_t>( |
| 4835 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 4835 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 4836 | 4836 |
| 4837 return res; | 4837 return res; |
| 4838 } | 4838 } |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4890 __ addiu(v0, v0, 0x1000); | 4890 __ addiu(v0, v0, 0x1000); |
| 4891 __ addiu(v0, v0, 0x2000); // <--- offset = 16 | 4891 __ addiu(v0, v0, 0x2000); // <--- offset = 16 |
| 4892 __ jr(ra); | 4892 __ jr(ra); |
| 4893 __ nop(); | 4893 __ nop(); |
| 4894 | 4894 |
| 4895 __ bind(&stop_execution); | 4895 __ bind(&stop_execution); |
| 4896 __ jr(ra); | 4896 __ jr(ra); |
| 4897 __ nop(); | 4897 __ nop(); |
| 4898 | 4898 |
| 4899 CodeDesc desc; | 4899 CodeDesc desc; |
| 4900 assm.GetCode(&desc); | 4900 assm.GetCode(isolate, &desc); |
| 4901 Handle<Code> code = isolate->factory()->NewCode( | 4901 Handle<Code> code = isolate->factory()->NewCode( |
| 4902 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4902 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4903 | 4903 |
| 4904 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4904 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4905 | 4905 |
| 4906 uint32_t res = reinterpret_cast<uint32_t>( | 4906 uint32_t res = reinterpret_cast<uint32_t>( |
| 4907 CALL_GENERATED_CODE(isolate, f, value, 0, 0, 0, 0)); | 4907 CALL_GENERATED_CODE(isolate, f, value, 0, 0, 0, 0)); |
| 4908 | 4908 |
| 4909 return res; | 4909 return res; |
| 4910 } | 4910 } |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4984 __ jr(ra); | 4984 __ jr(ra); |
| 4985 __ nop(); | 4985 __ nop(); |
| 4986 | 4986 |
| 4987 __ bind(&get_program_counter); | 4987 __ bind(&get_program_counter); |
| 4988 __ mov(t0, ra); | 4988 __ mov(t0, ra); |
| 4989 __ jr(ra); | 4989 __ jr(ra); |
| 4990 __ nop(); | 4990 __ nop(); |
| 4991 | 4991 |
| 4992 | 4992 |
| 4993 CodeDesc desc; | 4993 CodeDesc desc; |
| 4994 assm.GetCode(&desc); | 4994 assm.GetCode(isolate, &desc); |
| 4995 Handle<Code> code = isolate->factory()->NewCode( | 4995 Handle<Code> code = isolate->factory()->NewCode( |
| 4996 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 4996 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 4997 | 4997 |
| 4998 F2 f = FUNCTION_CAST<F2>(code->entry()); | 4998 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 4999 | 4999 |
| 5000 uint32_t res = reinterpret_cast<uint32_t>( | 5000 uint32_t res = reinterpret_cast<uint32_t>( |
| 5001 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 5001 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 5002 | 5002 |
| 5003 return res; | 5003 return res; |
| 5004 } | 5004 } |
| (...skipping 28 matching lines...) Expand all Loading... |
| 5033 Isolate* isolate = CcTest::i_isolate(); | 5033 Isolate* isolate = CcTest::i_isolate(); |
| 5034 HandleScope scope(isolate); | 5034 HandleScope scope(isolate); |
| 5035 | 5035 |
| 5036 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); | 5036 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); |
| 5037 | 5037 |
| 5038 __ addiupc(v0, imm19); | 5038 __ addiupc(v0, imm19); |
| 5039 __ jr(ra); | 5039 __ jr(ra); |
| 5040 __ nop(); | 5040 __ nop(); |
| 5041 | 5041 |
| 5042 CodeDesc desc; | 5042 CodeDesc desc; |
| 5043 assm.GetCode(&desc); | 5043 assm.GetCode(isolate, &desc); |
| 5044 Handle<Code> code = isolate->factory()->NewCode( | 5044 Handle<Code> code = isolate->factory()->NewCode( |
| 5045 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5045 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5046 | 5046 |
| 5047 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5047 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5048 PC = (uint32_t) f; // Set the program counter. | 5048 PC = (uint32_t) f; // Set the program counter. |
| 5049 | 5049 |
| 5050 uint32_t rs = reinterpret_cast<uint32_t>( | 5050 uint32_t rs = reinterpret_cast<uint32_t>( |
| 5051 CALL_GENERATED_CODE(isolate, f, imm19, 0, 0, 0, 0)); | 5051 CALL_GENERATED_CODE(isolate, f, imm19, 0, 0, 0, 0)); |
| 5052 | 5052 |
| 5053 return rs; | 5053 return rs; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5116 | 5116 |
| 5117 for (int32_t i = 0; i <= 99; ++i) { | 5117 for (int32_t i = 0; i <= 99; ++i) { |
| 5118 __ addiu(v0, v0, 1); | 5118 __ addiu(v0, v0, 1); |
| 5119 } | 5119 } |
| 5120 | 5120 |
| 5121 __ pop(ra); | 5121 __ pop(ra); |
| 5122 __ jr(ra); | 5122 __ jr(ra); |
| 5123 __ nop(); | 5123 __ nop(); |
| 5124 | 5124 |
| 5125 CodeDesc desc; | 5125 CodeDesc desc; |
| 5126 assm.GetCode(&desc); | 5126 assm.GetCode(isolate, &desc); |
| 5127 Handle<Code> code = isolate->factory()->NewCode( | 5127 Handle<Code> code = isolate->factory()->NewCode( |
| 5128 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5128 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5129 | 5129 |
| 5130 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5130 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5131 | 5131 |
| 5132 int32_t res = reinterpret_cast<int32_t>( | 5132 int32_t res = reinterpret_cast<int32_t>( |
| 5133 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 5133 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 5134 | 5134 |
| 5135 return res; | 5135 return res; |
| 5136 } | 5136 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5198 __ jr(ra); // 2 | 5198 __ jr(ra); // 2 |
| 5199 __ nop(); // 3 | 5199 __ nop(); // 3 |
| 5200 | 5200 |
| 5201 for (int32_t i = 4; i <= 44; ++i) { | 5201 for (int32_t i = 4; i <= 44; ++i) { |
| 5202 __ dd(instruction_addiu); | 5202 __ dd(instruction_addiu); |
| 5203 } | 5203 } |
| 5204 __ jr(ra); | 5204 __ jr(ra); |
| 5205 __ nop(); | 5205 __ nop(); |
| 5206 | 5206 |
| 5207 CodeDesc desc; | 5207 CodeDesc desc; |
| 5208 assm.GetCode(&desc); | 5208 assm.GetCode(isolate, &desc); |
| 5209 Handle<Code> code = isolate->factory()->NewCode( | 5209 Handle<Code> code = isolate->factory()->NewCode( |
| 5210 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5210 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5211 | 5211 |
| 5212 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5212 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5213 | 5213 |
| 5214 int32_t res = reinterpret_cast<int32_t>( | 5214 int32_t res = reinterpret_cast<int32_t>( |
| 5215 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 5215 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 5216 | 5216 |
| 5217 return res; | 5217 return res; |
| 5218 } | 5218 } |
| 5219 | 5219 |
| 5220 | 5220 |
| 5221 uint32_t run_aui(uint32_t rs, uint16_t offset) { | 5221 uint32_t run_aui(uint32_t rs, uint16_t offset) { |
| 5222 Isolate* isolate = CcTest::i_isolate(); | 5222 Isolate* isolate = CcTest::i_isolate(); |
| 5223 HandleScope scope(isolate); | 5223 HandleScope scope(isolate); |
| 5224 | 5224 |
| 5225 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); | 5225 MacroAssembler assm(isolate, NULL, 0, v8::internal::CodeObjectRequired::kYes); |
| 5226 | 5226 |
| 5227 __ li(t0, rs); | 5227 __ li(t0, rs); |
| 5228 __ aui(v0, t0, offset); | 5228 __ aui(v0, t0, offset); |
| 5229 __ jr(ra); | 5229 __ jr(ra); |
| 5230 __ nop(); | 5230 __ nop(); |
| 5231 | 5231 |
| 5232 CodeDesc desc; | 5232 CodeDesc desc; |
| 5233 assm.GetCode(&desc); | 5233 assm.GetCode(isolate, &desc); |
| 5234 Handle<Code> code = isolate->factory()->NewCode( | 5234 Handle<Code> code = isolate->factory()->NewCode( |
| 5235 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5235 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5236 | 5236 |
| 5237 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5237 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5238 | 5238 |
| 5239 uint32_t res = | 5239 uint32_t res = |
| 5240 reinterpret_cast<uint32_t> | 5240 reinterpret_cast<uint32_t> |
| 5241 (CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 5241 (CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 5242 | 5242 |
| 5243 return res; | 5243 return res; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5314 | 5314 |
| 5315 __ mov(ra, t0); | 5315 __ mov(ra, t0); |
| 5316 __ jr(ra); | 5316 __ jr(ra); |
| 5317 __ nop(); | 5317 __ nop(); |
| 5318 | 5318 |
| 5319 __ li(v0, 1); | 5319 __ li(v0, 1); |
| 5320 __ jr(ra); | 5320 __ jr(ra); |
| 5321 __ nop(); | 5321 __ nop(); |
| 5322 | 5322 |
| 5323 CodeDesc desc; | 5323 CodeDesc desc; |
| 5324 assm.GetCode(&desc); | 5324 assm.GetCode(isolate, &desc); |
| 5325 Handle<Code> code = isolate->factory()->NewCode( | 5325 Handle<Code> code = isolate->factory()->NewCode( |
| 5326 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5326 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5327 | 5327 |
| 5328 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5328 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5329 | 5329 |
| 5330 uint32_t res = reinterpret_cast<uint32_t>( | 5330 uint32_t res = reinterpret_cast<uint32_t>( |
| 5331 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 5331 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 5332 | 5332 |
| 5333 return res; | 5333 return res; |
| 5334 } | 5334 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5368 size_t nr_calls = kMaxBranchOffset / (2 * Instruction::kInstrSize) + 2; | 5368 size_t nr_calls = kMaxBranchOffset / (2 * Instruction::kInstrSize) + 2; |
| 5369 | 5369 |
| 5370 for (size_t i = 0; i < nr_calls; ++i) { | 5370 for (size_t i = 0; i < nr_calls; ++i) { |
| 5371 __ BranchShort(&done, eq, a0, Operand(a1)); | 5371 __ BranchShort(&done, eq, a0, Operand(a1)); |
| 5372 } | 5372 } |
| 5373 __ bind(&done); | 5373 __ bind(&done); |
| 5374 __ Ret(USE_DELAY_SLOT); | 5374 __ Ret(USE_DELAY_SLOT); |
| 5375 __ mov(v0, zero_reg); | 5375 __ mov(v0, zero_reg); |
| 5376 | 5376 |
| 5377 CodeDesc desc; | 5377 CodeDesc desc; |
| 5378 assm.GetCode(&desc); | 5378 assm.GetCode(isolate, &desc); |
| 5379 Handle<Code> code = isolate->factory()->NewCode( | 5379 Handle<Code> code = isolate->factory()->NewCode( |
| 5380 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5380 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5381 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5381 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5382 | 5382 |
| 5383 int32_t res = reinterpret_cast<int32_t>( | 5383 int32_t res = reinterpret_cast<int32_t>( |
| 5384 CALL_GENERATED_CODE(isolate, f, 42, 42, 0, 0, 0)); | 5384 CALL_GENERATED_CODE(isolate, f, 42, 42, 0, 0, 0)); |
| 5385 CHECK_EQ(0, res); | 5385 CHECK_EQ(0, res); |
| 5386 } | 5386 } |
| 5387 | 5387 |
| 5388 template <class T> | 5388 template <class T> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5435 } else { | 5435 } else { |
| 5436 UNREACHABLE(); | 5436 UNREACHABLE(); |
| 5437 } | 5437 } |
| 5438 | 5438 |
| 5439 func(assm); | 5439 func(assm); |
| 5440 | 5440 |
| 5441 __ jr(ra); | 5441 __ jr(ra); |
| 5442 __ nop(); | 5442 __ nop(); |
| 5443 | 5443 |
| 5444 CodeDesc desc; | 5444 CodeDesc desc; |
| 5445 assm.GetCode(&desc); | 5445 assm.GetCode(isolate, &desc); |
| 5446 Handle<Code> code = isolate->factory()->NewCode( | 5446 Handle<Code> code = isolate->factory()->NewCode( |
| 5447 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5447 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5448 F3 f = FUNCTION_CAST<F3>(code->entry()); | 5448 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 5449 | 5449 |
| 5450 const size_t kTableLength = sizeof(test_cases) / sizeof(TestCaseMaddMsub<T>); | 5450 const size_t kTableLength = sizeof(test_cases) / sizeof(TestCaseMaddMsub<T>); |
| 5451 TestCaseMaddMsub<T> tc; | 5451 TestCaseMaddMsub<T> tc; |
| 5452 for (size_t i = 0; i < kTableLength; i++) { | 5452 for (size_t i = 0; i < kTableLength; i++) { |
| 5453 tc.fr = test_cases[i].fr; | 5453 tc.fr = test_cases[i].fr; |
| 5454 tc.fs = test_cases[i].fs; | 5454 tc.fs = test_cases[i].fs; |
| 5455 tc.ft = test_cases[i].ft; | 5455 tc.ft = test_cases[i].ft; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5521 | 5521 |
| 5522 Label code_start; | 5522 Label code_start; |
| 5523 __ bind(&code_start); | 5523 __ bind(&code_start); |
| 5524 __ Subu(v0, zero_reg, imm); | 5524 __ Subu(v0, zero_reg, imm); |
| 5525 CHECK_EQ(assm.SizeOfCodeGeneratedSince(&code_start), | 5525 CHECK_EQ(assm.SizeOfCodeGeneratedSince(&code_start), |
| 5526 num_instr * Assembler::kInstrSize); | 5526 num_instr * Assembler::kInstrSize); |
| 5527 __ jr(ra); | 5527 __ jr(ra); |
| 5528 __ nop(); | 5528 __ nop(); |
| 5529 | 5529 |
| 5530 CodeDesc desc; | 5530 CodeDesc desc; |
| 5531 assm.GetCode(&desc); | 5531 assm.GetCode(isolate, &desc); |
| 5532 Handle<Code> code = isolate->factory()->NewCode( | 5532 Handle<Code> code = isolate->factory()->NewCode( |
| 5533 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5533 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5534 F2 f = FUNCTION_CAST<F2>(code->entry()); | 5534 F2 f = FUNCTION_CAST<F2>(code->entry()); |
| 5535 | 5535 |
| 5536 uint32_t res = reinterpret_cast<uint32_t>( | 5536 uint32_t res = reinterpret_cast<uint32_t>( |
| 5537 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 5537 CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 5538 | 5538 |
| 5539 return res; | 5539 return res; |
| 5540 } | 5540 } |
| 5541 | 5541 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5626 __ copy_s_h(t1, w2, 5); | 5626 __ copy_s_h(t1, w2, 5); |
| 5627 __ sw(t1, MemOperand(a0, offsetof(T, s16))); | 5627 __ sw(t1, MemOperand(a0, offsetof(T, s16))); |
| 5628 __ copy_s_w(t1, w4, 1); | 5628 __ copy_s_w(t1, w4, 1); |
| 5629 __ sw(t1, MemOperand(a0, offsetof(T, s32))); | 5629 __ sw(t1, MemOperand(a0, offsetof(T, s32))); |
| 5630 | 5630 |
| 5631 __ jr(ra); | 5631 __ jr(ra); |
| 5632 __ nop(); | 5632 __ nop(); |
| 5633 } | 5633 } |
| 5634 | 5634 |
| 5635 CodeDesc desc; | 5635 CodeDesc desc; |
| 5636 assm.GetCode(&desc); | 5636 assm.GetCode(isolate, &desc); |
| 5637 Handle<Code> code = isolate->factory()->NewCode( | 5637 Handle<Code> code = isolate->factory()->NewCode( |
| 5638 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5638 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5639 #ifdef OBJECT_PRINT | 5639 #ifdef OBJECT_PRINT |
| 5640 code->Print(std::cout); | 5640 code->Print(std::cout); |
| 5641 #endif | 5641 #endif |
| 5642 F3 f = FUNCTION_CAST<F3>(code->entry()); | 5642 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 5643 | 5643 |
| 5644 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); | 5644 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0); |
| 5645 USE(dummy); | 5645 USE(dummy); |
| 5646 | 5646 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5695 | 5695 |
| 5696 STORE_MSA_REG(w0, a0, t2) | 5696 STORE_MSA_REG(w0, a0, t2) |
| 5697 STORE_MSA_REG(w2, a1, t2) | 5697 STORE_MSA_REG(w2, a1, t2) |
| 5698 #undef STORE_MSA_REG | 5698 #undef STORE_MSA_REG |
| 5699 | 5699 |
| 5700 __ jr(ra); | 5700 __ jr(ra); |
| 5701 __ nop(); | 5701 __ nop(); |
| 5702 } | 5702 } |
| 5703 | 5703 |
| 5704 CodeDesc desc; | 5704 CodeDesc desc; |
| 5705 assm.GetCode(&desc); | 5705 assm.GetCode(isolate, &desc); |
| 5706 Handle<Code> code = isolate->factory()->NewCode( | 5706 Handle<Code> code = isolate->factory()->NewCode( |
| 5707 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5707 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5708 #ifdef OBJECT_PRINT | 5708 #ifdef OBJECT_PRINT |
| 5709 code->Print(std::cout); | 5709 code->Print(std::cout); |
| 5710 #endif | 5710 #endif |
| 5711 F4 f = FUNCTION_CAST<F4>(code->entry()); | 5711 F4 f = FUNCTION_CAST<F4>(code->entry()); |
| 5712 | 5712 |
| 5713 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t[0], &t[1], 0, 0, 0); | 5713 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t[0], &t[1], 0, 0, 0); |
| 5714 USE(dummy); | 5714 USE(dummy); |
| 5715 | 5715 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5753 __ fill_w(w2, t1); | 5753 __ fill_w(w2, t1); |
| 5754 | 5754 |
| 5755 __ Sdc1(f0, MemOperand(a0, offsetof(T, d0))); | 5755 __ Sdc1(f0, MemOperand(a0, offsetof(T, d0))); |
| 5756 __ Sdc1(f2, MemOperand(a1, offsetof(T, d0))); | 5756 __ Sdc1(f2, MemOperand(a1, offsetof(T, d0))); |
| 5757 | 5757 |
| 5758 __ jr(ra); | 5758 __ jr(ra); |
| 5759 __ nop(); | 5759 __ nop(); |
| 5760 } | 5760 } |
| 5761 | 5761 |
| 5762 CodeDesc desc; | 5762 CodeDesc desc; |
| 5763 assm.GetCode(&desc); | 5763 assm.GetCode(isolate, &desc); |
| 5764 Handle<Code> code = isolate->factory()->NewCode( | 5764 Handle<Code> code = isolate->factory()->NewCode( |
| 5765 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5765 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5766 #ifdef OBJECT_PRINT | 5766 #ifdef OBJECT_PRINT |
| 5767 code->Print(std::cout); | 5767 code->Print(std::cout); |
| 5768 #endif | 5768 #endif |
| 5769 F4 f = FUNCTION_CAST<F4>(code->entry()); | 5769 F4 f = FUNCTION_CAST<F4>(code->entry()); |
| 5770 | 5770 |
| 5771 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t[0], &t[1], 0, 0, 0); | 5771 Object* dummy = CALL_GENERATED_CODE(isolate, f, &t[0], &t[1], 0, 0, 0); |
| 5772 USE(dummy); | 5772 USE(dummy); |
| 5773 | 5773 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5813 __ sw(t2, MemOperand(a0, 4)); | 5813 __ sw(t2, MemOperand(a0, 4)); |
| 5814 __ copy_u_w(t2, w0, 2); | 5814 __ copy_u_w(t2, w0, 2); |
| 5815 __ sw(t2, MemOperand(a0, 8)); | 5815 __ sw(t2, MemOperand(a0, 8)); |
| 5816 __ copy_u_w(t2, w0, 3); | 5816 __ copy_u_w(t2, w0, 3); |
| 5817 __ sw(t2, MemOperand(a0, 12)); | 5817 __ sw(t2, MemOperand(a0, 12)); |
| 5818 | 5818 |
| 5819 __ jr(ra); | 5819 __ jr(ra); |
| 5820 __ nop(); | 5820 __ nop(); |
| 5821 | 5821 |
| 5822 CodeDesc desc; | 5822 CodeDesc desc; |
| 5823 assm.GetCode(&desc); | 5823 assm.GetCode(isolate, &desc); |
| 5824 Handle<Code> code = isolate->factory()->NewCode( | 5824 Handle<Code> code = isolate->factory()->NewCode( |
| 5825 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5825 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5826 #ifdef OBJECT_PRINT | 5826 #ifdef OBJECT_PRINT |
| 5827 code->Print(std::cout); | 5827 code->Print(std::cout); |
| 5828 #endif | 5828 #endif |
| 5829 F3 f = FUNCTION_CAST<F3>(code->entry()); | 5829 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 5830 | 5830 |
| 5831 (CALL_GENERATED_CODE(isolate, f, w, 0, 0, 0, 0)); | 5831 (CALL_GENERATED_CODE(isolate, f, w, 0, 0, 0, 0)); |
| 5832 } | 5832 } |
| 5833 | 5833 |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5962 __ sw(t2, MemOperand(a0, 8)); | 5962 __ sw(t2, MemOperand(a0, 8)); |
| 5963 __ copy_u_w(t2, w2, 3); | 5963 __ copy_u_w(t2, w2, 3); |
| 5964 __ sw(t2, MemOperand(a0, 12)); | 5964 __ sw(t2, MemOperand(a0, 12)); |
| 5965 | 5965 |
| 5966 __ jr(ra); | 5966 __ jr(ra); |
| 5967 __ nop(); | 5967 __ nop(); |
| 5968 | 5968 |
| 5969 #undef LOAD_W_REG | 5969 #undef LOAD_W_REG |
| 5970 | 5970 |
| 5971 CodeDesc desc; | 5971 CodeDesc desc; |
| 5972 assm.GetCode(&desc); | 5972 assm.GetCode(isolate, &desc); |
| 5973 Handle<Code> code = isolate->factory()->NewCode( | 5973 Handle<Code> code = isolate->factory()->NewCode( |
| 5974 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 5974 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 5975 #ifdef OBJECT_PRINT | 5975 #ifdef OBJECT_PRINT |
| 5976 code->Print(std::cout); | 5976 code->Print(std::cout); |
| 5977 #endif | 5977 #endif |
| 5978 F3 f = FUNCTION_CAST<F3>(code->entry()); | 5978 F3 f = FUNCTION_CAST<F3>(code->entry()); |
| 5979 | 5979 |
| 5980 (CALL_GENERATED_CODE(isolate, f, &res, 0, 0, 0, 0)); | 5980 (CALL_GENERATED_CODE(isolate, f, &res, 0, 0, 0, 0)); |
| 5981 | 5981 |
| 5982 uint64_t mask = i8 * 0x0101010101010101ull; | 5982 uint64_t mask = i8 * 0x0101010101010101ull; |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6128 }; | 6128 }; |
| 6129 | 6129 |
| 6130 for (size_t i = 0; i < sizeof(tc) / sizeof(TestCaseMsaI8); ++i) { | 6130 for (size_t i = 0; i < sizeof(tc) / sizeof(TestCaseMsaI8); ++i) { |
| 6131 run_msa_i8(SHF_B, tc[i].input_lo, tc[i].input_hi, tc[i].i8); | 6131 run_msa_i8(SHF_B, tc[i].input_lo, tc[i].input_hi, tc[i].i8); |
| 6132 run_msa_i8(SHF_H, tc[i].input_lo, tc[i].input_hi, tc[i].i8); | 6132 run_msa_i8(SHF_H, tc[i].input_lo, tc[i].input_hi, tc[i].i8); |
| 6133 run_msa_i8(SHF_W, tc[i].input_lo, tc[i].input_hi, tc[i].i8); | 6133 run_msa_i8(SHF_W, tc[i].input_lo, tc[i].input_hi, tc[i].i8); |
| 6134 } | 6134 } |
| 6135 } | 6135 } |
| 6136 | 6136 |
| 6137 #undef __ | 6137 #undef __ |
| OLD | NEW |