| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 100 |
| 101 __ Ld(a4, MemOperand(a0, offsetof(T, r7))); | 101 __ Ld(a4, MemOperand(a0, offsetof(T, r7))); |
| 102 __ nop(); | 102 __ nop(); |
| 103 __ ByteSwapUnsigned(a4, a4, 4); | 103 __ ByteSwapUnsigned(a4, a4, 4); |
| 104 __ Sd(a4, MemOperand(a0, offsetof(T, r7))); | 104 __ Sd(a4, MemOperand(a0, offsetof(T, r7))); |
| 105 | 105 |
| 106 __ jr(ra); | 106 __ jr(ra); |
| 107 __ nop(); | 107 __ nop(); |
| 108 | 108 |
| 109 CodeDesc desc; | 109 CodeDesc desc; |
| 110 masm->GetCode(&desc); | 110 masm->GetCode(isolate, &desc); |
| 111 Handle<Code> code = isolate->factory()->NewCode( | 111 Handle<Code> code = isolate->factory()->NewCode( |
| 112 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 112 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 113 ::F3 f = FUNCTION_CAST<::F3>(code->entry()); | 113 ::F3 f = FUNCTION_CAST<::F3>(code->entry()); |
| 114 t.r1 = 0x5612FFCD9D327ACC; | 114 t.r1 = 0x5612FFCD9D327ACC; |
| 115 t.r2 = 0x781A15C3; | 115 t.r2 = 0x781A15C3; |
| 116 t.r3 = 0xFCDE; | 116 t.r3 = 0xFCDE; |
| 117 t.r4 = 0x9F; | 117 t.r4 = 0x9F; |
| 118 t.r5 = 0x9F; | 118 t.r5 = 0x9F; |
| 119 t.r6 = 0xFCDE; | 119 t.r6 = 0xFCDE; |
| 120 t.r7 = 0xC81A15C3; | 120 t.r7 = 0xC81A15C3; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 // Load constant. | 152 // Load constant. |
| 153 __ li(a5, Operand(refConstants[i])); | 153 __ li(a5, Operand(refConstants[i])); |
| 154 __ Sd(a5, MemOperand(a4)); | 154 __ Sd(a5, MemOperand(a4)); |
| 155 __ Daddu(a4, a4, Operand(kPointerSize)); | 155 __ Daddu(a4, a4, Operand(kPointerSize)); |
| 156 } | 156 } |
| 157 | 157 |
| 158 __ jr(ra); | 158 __ jr(ra); |
| 159 __ nop(); | 159 __ nop(); |
| 160 | 160 |
| 161 CodeDesc desc; | 161 CodeDesc desc; |
| 162 masm->GetCode(&desc); | 162 masm->GetCode(isolate, &desc); |
| 163 Handle<Code> code = isolate->factory()->NewCode( | 163 Handle<Code> code = isolate->factory()->NewCode( |
| 164 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 164 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 165 | 165 |
| 166 ::F f = FUNCTION_CAST< ::F>(code->entry()); | 166 ::F f = FUNCTION_CAST< ::F>(code->entry()); |
| 167 (void)CALL_GENERATED_CODE(isolate, f, reinterpret_cast<int64_t>(result), 0, 0, | 167 (void)CALL_GENERATED_CODE(isolate, f, reinterpret_cast<int64_t>(result), 0, 0, |
| 168 0, 0); | 168 0, 0); |
| 169 // Check results. | 169 // Check results. |
| 170 for (int i = 0; i < 64; i++) { | 170 for (int i = 0; i < 64; i++) { |
| 171 CHECK(refConstants[i] == result[i]); | 171 CHECK(refConstants[i] == result[i]); |
| 172 } | 172 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 197 __ jr(a4); | 197 __ jr(a4); |
| 198 __ nop(); | 198 __ nop(); |
| 199 __ stop("invalid"); | 199 __ stop("invalid"); |
| 200 __ stop("invalid"); | 200 __ stop("invalid"); |
| 201 __ stop("invalid"); | 201 __ stop("invalid"); |
| 202 __ stop("invalid"); | 202 __ stop("invalid"); |
| 203 __ stop("invalid"); | 203 __ stop("invalid"); |
| 204 | 204 |
| 205 | 205 |
| 206 CodeDesc desc; | 206 CodeDesc desc; |
| 207 masm->GetCode(&desc); | 207 masm->GetCode(isolate, &desc); |
| 208 Handle<Code> code = isolate->factory()->NewCode( | 208 Handle<Code> code = isolate->factory()->NewCode( |
| 209 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 209 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 210 | 210 |
| 211 ::F f = FUNCTION_CAST< ::F>(code->entry()); | 211 ::F f = FUNCTION_CAST< ::F>(code->entry()); |
| 212 (void)CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0); | 212 (void)CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0); |
| 213 // Check results. | 213 // Check results. |
| 214 } | 214 } |
| 215 | 215 |
| 216 | 216 |
| 217 TEST(jump_tables4) { | 217 TEST(jump_tables4) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 | 255 |
| 256 __ bind(&done); | 256 __ bind(&done); |
| 257 __ Pop(ra); | 257 __ Pop(ra); |
| 258 __ jr(ra); | 258 __ jr(ra); |
| 259 __ nop(); | 259 __ nop(); |
| 260 | 260 |
| 261 __ bind(&end); | 261 __ bind(&end); |
| 262 __ Branch(&near_start); | 262 __ Branch(&near_start); |
| 263 | 263 |
| 264 CodeDesc desc; | 264 CodeDesc desc; |
| 265 masm->GetCode(&desc); | 265 masm->GetCode(isolate, &desc); |
| 266 Handle<Code> code = isolate->factory()->NewCode( | 266 Handle<Code> code = isolate->factory()->NewCode( |
| 267 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 267 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 268 #ifdef OBJECT_PRINT | 268 #ifdef OBJECT_PRINT |
| 269 code->Print(std::cout); | 269 code->Print(std::cout); |
| 270 #endif | 270 #endif |
| 271 F1 f = FUNCTION_CAST<F1>(code->entry()); | 271 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 272 for (int i = 0; i < kNumCases; ++i) { | 272 for (int i = 0; i < kNumCases; ++i) { |
| 273 int64_t res = reinterpret_cast<int64_t>( | 273 int64_t res = reinterpret_cast<int64_t>( |
| 274 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); | 274 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); |
| 275 ::printf("f(%d) = %" PRId64 "\n", i, res); | 275 ::printf("f(%d) = %" PRId64 "\n", i, res); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 __ jr(ra); | 329 __ jr(ra); |
| 330 __ nop(); | 330 __ nop(); |
| 331 } | 331 } |
| 332 | 332 |
| 333 __ bind(&done); | 333 __ bind(&done); |
| 334 __ Pop(ra); | 334 __ Pop(ra); |
| 335 __ jr(ra); | 335 __ jr(ra); |
| 336 __ nop(); | 336 __ nop(); |
| 337 | 337 |
| 338 CodeDesc desc; | 338 CodeDesc desc; |
| 339 masm->GetCode(&desc); | 339 masm->GetCode(isolate, &desc); |
| 340 Handle<Code> code = isolate->factory()->NewCode( | 340 Handle<Code> code = isolate->factory()->NewCode( |
| 341 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 341 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 342 #ifdef OBJECT_PRINT | 342 #ifdef OBJECT_PRINT |
| 343 code->Print(std::cout); | 343 code->Print(std::cout); |
| 344 #endif | 344 #endif |
| 345 F1 f = FUNCTION_CAST<F1>(code->entry()); | 345 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 346 for (int i = 0; i < kNumCases; ++i) { | 346 for (int i = 0; i < kNumCases; ++i) { |
| 347 int64_t res = reinterpret_cast<int64_t>( | 347 int64_t res = reinterpret_cast<int64_t>( |
| 348 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); | 348 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); |
| 349 ::printf("f(%d) = %" PRId64 "\n", i, res); | 349 ::printf("f(%d) = %" PRId64 "\n", i, res); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 | 421 |
| 422 __ bind(&done); | 422 __ bind(&done); |
| 423 __ Pop(ra); | 423 __ Pop(ra); |
| 424 __ jr(ra); | 424 __ jr(ra); |
| 425 __ nop(); | 425 __ nop(); |
| 426 | 426 |
| 427 __ bind(&end); | 427 __ bind(&end); |
| 428 __ Branch(&near_start); | 428 __ Branch(&near_start); |
| 429 | 429 |
| 430 CodeDesc desc; | 430 CodeDesc desc; |
| 431 masm->GetCode(&desc); | 431 masm->GetCode(isolate, &desc); |
| 432 Handle<Code> code = isolate->factory()->NewCode( | 432 Handle<Code> code = isolate->factory()->NewCode( |
| 433 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 433 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 434 #ifdef OBJECT_PRINT | 434 #ifdef OBJECT_PRINT |
| 435 code->Print(std::cout); | 435 code->Print(std::cout); |
| 436 #endif | 436 #endif |
| 437 F1 f = FUNCTION_CAST<F1>(code->entry()); | 437 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 438 for (int i = 0; i < kSwitchTableCases; ++i) { | 438 for (int i = 0; i < kSwitchTableCases; ++i) { |
| 439 int64_t res = reinterpret_cast<int64_t>( | 439 int64_t res = reinterpret_cast<int64_t>( |
| 440 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); | 440 CALL_GENERATED_CODE(isolate, f, i, 0, 0, 0, 0)); |
| 441 ::printf("f(%d) = %" PRId64 "\n", i, res); | 441 ::printf("f(%d) = %" PRId64 "\n", i, res); |
| 442 CHECK_EQ(values[i], res); | 442 CHECK_EQ(values[i], res); |
| 443 } | 443 } |
| 444 } | 444 } |
| 445 | 445 |
| 446 static uint64_t run_lsa(uint32_t rt, uint32_t rs, int8_t sa) { | 446 static uint64_t run_lsa(uint32_t rt, uint32_t rs, int8_t sa) { |
| 447 Isolate* isolate = CcTest::i_isolate(); | 447 Isolate* isolate = CcTest::i_isolate(); |
| 448 HandleScope scope(isolate); | 448 HandleScope scope(isolate); |
| 449 MacroAssembler assembler(isolate, nullptr, 0, | 449 MacroAssembler assembler(isolate, nullptr, 0, |
| 450 v8::internal::CodeObjectRequired::kYes); | 450 v8::internal::CodeObjectRequired::kYes); |
| 451 MacroAssembler* masm = &assembler; | 451 MacroAssembler* masm = &assembler; |
| 452 | 452 |
| 453 __ Lsa(v0, a0, a1, sa); | 453 __ Lsa(v0, a0, a1, sa); |
| 454 __ jr(ra); | 454 __ jr(ra); |
| 455 __ nop(); | 455 __ nop(); |
| 456 | 456 |
| 457 CodeDesc desc; | 457 CodeDesc desc; |
| 458 assembler.GetCode(&desc); | 458 assembler.GetCode(isolate, &desc); |
| 459 Handle<Code> code = isolate->factory()->NewCode( | 459 Handle<Code> code = isolate->factory()->NewCode( |
| 460 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 460 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 461 | 461 |
| 462 F1 f = FUNCTION_CAST<F1>(code->entry()); | 462 F1 f = FUNCTION_CAST<F1>(code->entry()); |
| 463 | 463 |
| 464 uint64_t res = reinterpret_cast<uint64_t>( | 464 uint64_t res = reinterpret_cast<uint64_t>( |
| 465 CALL_GENERATED_CODE(isolate, f, rt, rs, 0, 0, 0)); | 465 CALL_GENERATED_CODE(isolate, f, rt, rs, 0, 0, 0)); |
| 466 | 466 |
| 467 return res; | 467 return res; |
| 468 } | 468 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 HandleScope scope(isolate); | 530 HandleScope scope(isolate); |
| 531 MacroAssembler assembler(isolate, nullptr, 0, | 531 MacroAssembler assembler(isolate, nullptr, 0, |
| 532 v8::internal::CodeObjectRequired::kYes); | 532 v8::internal::CodeObjectRequired::kYes); |
| 533 MacroAssembler* masm = &assembler; | 533 MacroAssembler* masm = &assembler; |
| 534 | 534 |
| 535 __ Dlsa(v0, a0, a1, sa); | 535 __ Dlsa(v0, a0, a1, sa); |
| 536 __ jr(ra); | 536 __ jr(ra); |
| 537 __ nop(); | 537 __ nop(); |
| 538 | 538 |
| 539 CodeDesc desc; | 539 CodeDesc desc; |
| 540 assembler.GetCode(&desc); | 540 assembler.GetCode(isolate, &desc); |
| 541 Handle<Code> code = isolate->factory()->NewCode( | 541 Handle<Code> code = isolate->factory()->NewCode( |
| 542 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 542 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 543 | 543 |
| 544 ::F f = FUNCTION_CAST<::F>(code->entry()); | 544 ::F f = FUNCTION_CAST<::F>(code->entry()); |
| 545 | 545 |
| 546 uint64_t res = reinterpret_cast<uint64_t>( | 546 uint64_t res = reinterpret_cast<uint64_t>( |
| 547 CALL_GENERATED_CODE(isolate, f, rt, rs, 0, 0, 0)); | 547 CALL_GENERATED_CODE(isolate, f, rt, rs, 0, 0, 0)); |
| 548 | 548 |
| 549 return res; | 549 return res; |
| 550 } | 550 } |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 MacroAssembler assm(isolate, nullptr, 0, | 682 MacroAssembler assm(isolate, nullptr, 0, |
| 683 v8::internal::CodeObjectRequired::kYes); | 683 v8::internal::CodeObjectRequired::kYes); |
| 684 MacroAssembler* masm = &assm; | 684 MacroAssembler* masm = &assm; |
| 685 | 685 |
| 686 GenerateConvertInstructionFunc(masm); | 686 GenerateConvertInstructionFunc(masm); |
| 687 __ dmfc1(v0, f2); | 687 __ dmfc1(v0, f2); |
| 688 __ jr(ra); | 688 __ jr(ra); |
| 689 __ nop(); | 689 __ nop(); |
| 690 | 690 |
| 691 CodeDesc desc; | 691 CodeDesc desc; |
| 692 assm.GetCode(&desc); | 692 assm.GetCode(isolate, &desc); |
| 693 Handle<Code> code = isolate->factory()->NewCode( | 693 Handle<Code> code = isolate->factory()->NewCode( |
| 694 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 694 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 695 | 695 |
| 696 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); | 696 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); |
| 697 | 697 |
| 698 return reinterpret_cast<RET_TYPE>( | 698 return reinterpret_cast<RET_TYPE>( |
| 699 CALL_GENERATED_CODE(isolate, f, x, 0, 0, 0, 0)); | 699 CALL_GENERATED_CODE(isolate, f, x, 0, 0, 0, 0)); |
| 700 } | 700 } |
| 701 | 701 |
| 702 TEST(Cvt_s_uw_Trunc_uw_s) { | 702 TEST(Cvt_s_uw_Trunc_uw_s) { |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 855 HandleScope scope(isolate); | 855 HandleScope scope(isolate); |
| 856 MacroAssembler assm(isolate, nullptr, 0, | 856 MacroAssembler assm(isolate, nullptr, 0, |
| 857 v8::internal::CodeObjectRequired::kYes); | 857 v8::internal::CodeObjectRequired::kYes); |
| 858 MacroAssembler* masm = &assm; | 858 MacroAssembler* masm = &assm; |
| 859 | 859 |
| 860 GenerateOverflowInstructions(masm, valLeft, valRight); | 860 GenerateOverflowInstructions(masm, valLeft, valRight); |
| 861 __ jr(ra); | 861 __ jr(ra); |
| 862 __ nop(); | 862 __ nop(); |
| 863 | 863 |
| 864 CodeDesc desc; | 864 CodeDesc desc; |
| 865 assm.GetCode(&desc); | 865 assm.GetCode(isolate, &desc); |
| 866 Handle<Code> code = isolate->factory()->NewCode( | 866 Handle<Code> code = isolate->factory()->NewCode( |
| 867 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 867 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 868 | 868 |
| 869 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); | 869 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); |
| 870 | 870 |
| 871 int64_t r = | 871 int64_t r = |
| 872 reinterpret_cast<int64_t>(CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); | 872 reinterpret_cast<int64_t>(CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0)); |
| 873 | 873 |
| 874 DCHECK(r == 0 || r == 1); | 874 DCHECK(r == 0 || r == 1); |
| 875 return r; | 875 return r; |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1536 __ pop(s6); | 1536 __ pop(s6); |
| 1537 __ jr(ra); | 1537 __ jr(ra); |
| 1538 __ nop(); | 1538 __ nop(); |
| 1539 | 1539 |
| 1540 handle_dnan(f10, &handle_mind_nan, &back_mind_nan); | 1540 handle_dnan(f10, &handle_mind_nan, &back_mind_nan); |
| 1541 handle_dnan(f12, &handle_maxd_nan, &back_maxd_nan); | 1541 handle_dnan(f12, &handle_maxd_nan, &back_maxd_nan); |
| 1542 handle_snan(f14, &handle_mins_nan, &back_mins_nan); | 1542 handle_snan(f14, &handle_mins_nan, &back_mins_nan); |
| 1543 handle_snan(f16, &handle_maxs_nan, &back_maxs_nan); | 1543 handle_snan(f16, &handle_maxs_nan, &back_maxs_nan); |
| 1544 | 1544 |
| 1545 CodeDesc desc; | 1545 CodeDesc desc; |
| 1546 masm->GetCode(&desc); | 1546 masm->GetCode(isolate, &desc); |
| 1547 Handle<Code> code = isolate->factory()->NewCode( | 1547 Handle<Code> code = isolate->factory()->NewCode( |
| 1548 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1548 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1549 ::F3 f = FUNCTION_CAST<::F3>(code->entry()); | 1549 ::F3 f = FUNCTION_CAST<::F3>(code->entry()); |
| 1550 for (int i = 0; i < kTableLength; i++) { | 1550 for (int i = 0; i < kTableLength; i++) { |
| 1551 test.a = inputsa[i]; | 1551 test.a = inputsa[i]; |
| 1552 test.b = inputsb[i]; | 1552 test.b = inputsb[i]; |
| 1553 test.e = inputse[i]; | 1553 test.e = inputse[i]; |
| 1554 test.f = inputsf[i]; | 1554 test.f = inputsf[i]; |
| 1555 | 1555 |
| 1556 CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0); | 1556 CALL_GENERATED_CODE(isolate, f, &test, 0, 0, 0, 0); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1572 MacroAssembler assm(isolate, nullptr, 0, | 1572 MacroAssembler assm(isolate, nullptr, 0, |
| 1573 v8::internal::CodeObjectRequired::kYes); | 1573 v8::internal::CodeObjectRequired::kYes); |
| 1574 MacroAssembler* masm = &assm; | 1574 MacroAssembler* masm = &assm; |
| 1575 IN_TYPE res; | 1575 IN_TYPE res; |
| 1576 | 1576 |
| 1577 GenerateUnalignedInstructionFunc(masm, in_offset, out_offset); | 1577 GenerateUnalignedInstructionFunc(masm, in_offset, out_offset); |
| 1578 __ jr(ra); | 1578 __ jr(ra); |
| 1579 __ nop(); | 1579 __ nop(); |
| 1580 | 1580 |
| 1581 CodeDesc desc; | 1581 CodeDesc desc; |
| 1582 assm.GetCode(&desc); | 1582 assm.GetCode(isolate, &desc); |
| 1583 Handle<Code> code = isolate->factory()->NewCode( | 1583 Handle<Code> code = isolate->factory()->NewCode( |
| 1584 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1584 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1585 | 1585 |
| 1586 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); | 1586 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); |
| 1587 | 1587 |
| 1588 MemCopy(memory_buffer + in_offset, &value, sizeof(IN_TYPE)); | 1588 MemCopy(memory_buffer + in_offset, &value, sizeof(IN_TYPE)); |
| 1589 CALL_GENERATED_CODE(isolate, f, memory_buffer, 0, 0, 0, 0); | 1589 CALL_GENERATED_CODE(isolate, f, memory_buffer, 0, 0, 0, 0); |
| 1590 MemCopy(&res, memory_buffer + out_offset, sizeof(IN_TYPE)); | 1590 MemCopy(&res, memory_buffer + out_offset, sizeof(IN_TYPE)); |
| 1591 | 1591 |
| 1592 return res == value; | 1592 return res == value; |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1937 HandleScope scope(isolate); | 1937 HandleScope scope(isolate); |
| 1938 MacroAssembler assm(isolate, nullptr, 0, | 1938 MacroAssembler assm(isolate, nullptr, 0, |
| 1939 v8::internal::CodeObjectRequired::kYes); | 1939 v8::internal::CodeObjectRequired::kYes); |
| 1940 MacroAssembler* masm = &assm; | 1940 MacroAssembler* masm = &assm; |
| 1941 | 1941 |
| 1942 GenerateSltuInstructionFunc(masm, rd); | 1942 GenerateSltuInstructionFunc(masm, rd); |
| 1943 __ jr(ra); | 1943 __ jr(ra); |
| 1944 __ nop(); | 1944 __ nop(); |
| 1945 | 1945 |
| 1946 CodeDesc desc; | 1946 CodeDesc desc; |
| 1947 assm.GetCode(&desc); | 1947 assm.GetCode(isolate, &desc); |
| 1948 Handle<Code> code = isolate->factory()->NewCode( | 1948 Handle<Code> code = isolate->factory()->NewCode( |
| 1949 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 1949 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 1950 | 1950 |
| 1951 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); | 1951 F_CVT f = FUNCTION_CAST<F_CVT>(code->entry()); |
| 1952 int64_t res = reinterpret_cast<int64_t>( | 1952 int64_t res = reinterpret_cast<int64_t>( |
| 1953 CALL_GENERATED_CODE(isolate, f, rs, rd, 0, 0, 0)); | 1953 CALL_GENERATED_CODE(isolate, f, rs, rd, 0, 0, 0)); |
| 1954 return res == 1; | 1954 return res == 1; |
| 1955 } | 1955 } |
| 1956 | 1956 |
| 1957 TEST(Sltu) { | 1957 TEST(Sltu) { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2032 | 2032 |
| 2033 __ bind(&ool_max_aab); | 2033 __ bind(&ool_max_aab); |
| 2034 __ Float32MaxOutOfLine(a, a, b); | 2034 __ Float32MaxOutOfLine(a, a, b); |
| 2035 __ Branch(&done_max_aab); | 2035 __ Branch(&done_max_aab); |
| 2036 | 2036 |
| 2037 __ bind(&ool_max_aba); | 2037 __ bind(&ool_max_aba); |
| 2038 __ Float32MaxOutOfLine(a, b, a); | 2038 __ Float32MaxOutOfLine(a, b, a); |
| 2039 __ Branch(&done_max_aba); | 2039 __ Branch(&done_max_aba); |
| 2040 | 2040 |
| 2041 CodeDesc desc; | 2041 CodeDesc desc; |
| 2042 masm->GetCode(&desc); | 2042 masm->GetCode(masm->isolate(), &desc); |
| 2043 Handle<Code> code = masm->isolate()->factory()->NewCode( | 2043 Handle<Code> code = masm->isolate()->factory()->NewCode( |
| 2044 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2044 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2045 #ifdef DEBUG | 2045 #ifdef DEBUG |
| 2046 OFStream os(stdout); | 2046 OFStream os(stdout); |
| 2047 code->Print(os); | 2047 code->Print(os); |
| 2048 #endif | 2048 #endif |
| 2049 return FUNCTION_CAST<::F4>(code->entry()); | 2049 return FUNCTION_CAST<::F4>(code->entry()); |
| 2050 } | 2050 } |
| 2051 | 2051 |
| 2052 TEST(macro_float_minmax_f32) { | 2052 TEST(macro_float_minmax_f32) { |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2175 | 2175 |
| 2176 __ bind(&ool_max_aab); | 2176 __ bind(&ool_max_aab); |
| 2177 __ Float64MaxOutOfLine(a, a, b); | 2177 __ Float64MaxOutOfLine(a, a, b); |
| 2178 __ Branch(&done_max_aab); | 2178 __ Branch(&done_max_aab); |
| 2179 | 2179 |
| 2180 __ bind(&ool_max_aba); | 2180 __ bind(&ool_max_aba); |
| 2181 __ Float64MaxOutOfLine(a, b, a); | 2181 __ Float64MaxOutOfLine(a, b, a); |
| 2182 __ Branch(&done_max_aba); | 2182 __ Branch(&done_max_aba); |
| 2183 | 2183 |
| 2184 CodeDesc desc; | 2184 CodeDesc desc; |
| 2185 masm->GetCode(&desc); | 2185 masm->GetCode(masm->isolate(), &desc); |
| 2186 Handle<Code> code = masm->isolate()->factory()->NewCode( | 2186 Handle<Code> code = masm->isolate()->factory()->NewCode( |
| 2187 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); | 2187 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); |
| 2188 #ifdef DEBUG | 2188 #ifdef DEBUG |
| 2189 OFStream os(stdout); | 2189 OFStream os(stdout); |
| 2190 code->Print(os); | 2190 code->Print(os); |
| 2191 #endif | 2191 #endif |
| 2192 return FUNCTION_CAST<::F4>(code->entry()); | 2192 return FUNCTION_CAST<::F4>(code->entry()); |
| 2193 } | 2193 } |
| 2194 | 2194 |
| 2195 TEST(macro_float_minmax_f64) { | 2195 TEST(macro_float_minmax_f64) { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2255 | 2255 |
| 2256 CHECK_MINMAX(0.0, nan_a, nan_a, nan_a); | 2256 CHECK_MINMAX(0.0, nan_a, nan_a, nan_a); |
| 2257 CHECK_MINMAX(nan_a, 0.0, nan_a, nan_a); | 2257 CHECK_MINMAX(nan_a, 0.0, nan_a, nan_a); |
| 2258 CHECK_MINMAX(nan_a, nan_b, nan_a, nan_a); | 2258 CHECK_MINMAX(nan_a, nan_b, nan_a, nan_a); |
| 2259 CHECK_MINMAX(nan_b, nan_a, nan_b, nan_b); | 2259 CHECK_MINMAX(nan_b, nan_a, nan_b, nan_b); |
| 2260 | 2260 |
| 2261 #undef CHECK_MINMAX | 2261 #undef CHECK_MINMAX |
| 2262 } | 2262 } |
| 2263 | 2263 |
| 2264 #undef __ | 2264 #undef __ |
| OLD | NEW |