OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 } | 586 } |
587 } | 587 } |
588 | 588 |
589 | 589 |
590 void LCodeGen::DoParameter(LParameter* instr) { | 590 void LCodeGen::DoParameter(LParameter* instr) { |
591 // Nothing to do. | 591 // Nothing to do. |
592 } | 592 } |
593 | 593 |
594 | 594 |
595 void LCodeGen::DoCallStub(LCallStub* instr) { | 595 void LCodeGen::DoCallStub(LCallStub* instr) { |
596 Abort("Unimplemented: %s", "DoCallStub"); | 596 ASSERT(ToRegister(instr->result()).is(rax)); |
| 597 switch (instr->hydrogen()->major_key()) { |
| 598 case CodeStub::RegExpConstructResult: { |
| 599 RegExpConstructResultStub stub; |
| 600 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 601 break; |
| 602 } |
| 603 case CodeStub::RegExpExec: { |
| 604 RegExpExecStub stub; |
| 605 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 606 break; |
| 607 } |
| 608 case CodeStub::SubString: { |
| 609 SubStringStub stub; |
| 610 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 611 break; |
| 612 } |
| 613 case CodeStub::StringCharAt: { |
| 614 // TODO(1116): Add StringCharAt stub to x64. |
| 615 Abort("Unimplemented: %s", "StringCharAt Stub"); |
| 616 break; |
| 617 } |
| 618 case CodeStub::MathPow: { |
| 619 // TODO(1115): Add MathPow stub to x64. |
| 620 Abort("Unimplemented: %s", "MathPow Stub"); |
| 621 break; |
| 622 } |
| 623 case CodeStub::NumberToString: { |
| 624 NumberToStringStub stub; |
| 625 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 626 break; |
| 627 } |
| 628 case CodeStub::StringAdd: { |
| 629 StringAddStub stub(NO_STRING_ADD_FLAGS); |
| 630 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 631 break; |
| 632 } |
| 633 case CodeStub::StringCompare: { |
| 634 StringCompareStub stub; |
| 635 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 636 break; |
| 637 } |
| 638 case CodeStub::TranscendentalCache: { |
| 639 TranscendentalCacheStub stub(instr->transcendental_type()); |
| 640 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 641 break; |
| 642 } |
| 643 default: |
| 644 UNREACHABLE(); |
| 645 } |
597 } | 646 } |
598 | 647 |
599 | 648 |
600 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { | 649 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { |
601 // Nothing to do. | 650 // Nothing to do. |
602 } | 651 } |
603 | 652 |
604 | 653 |
605 void LCodeGen::DoModI(LModI* instr) { | 654 void LCodeGen::DoModI(LModI* instr) { |
606 Abort("Unimplemented: %s", "DoModI"); | 655 Abort("Unimplemented: %s", "DoModI"); |
(...skipping 1787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2394 | 2443 |
2395 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { | 2444 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { |
2396 Abort("Unimplemented: %s", "DoOsrEntry"); | 2445 Abort("Unimplemented: %s", "DoOsrEntry"); |
2397 } | 2446 } |
2398 | 2447 |
2399 #undef __ | 2448 #undef __ |
2400 | 2449 |
2401 } } // namespace v8::internal | 2450 } } // namespace v8::internal |
2402 | 2451 |
2403 #endif // V8_TARGET_ARCH_X64 | 2452 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |