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 |