OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
638 // Call a code stub. | 638 // Call a code stub. |
639 void CallStub(CodeStub* stub); | 639 void CallStub(CodeStub* stub); |
640 | 640 |
641 // Tail call a code stub (jump). | 641 // Tail call a code stub (jump). |
642 void TailCallStub(CodeStub* stub); | 642 void TailCallStub(CodeStub* stub); |
643 | 643 |
644 // Return from a code stub after popping its arguments. | 644 // Return from a code stub after popping its arguments. |
645 void StubReturn(int argc); | 645 void StubReturn(int argc); |
646 | 646 |
647 // Call a runtime routine. | 647 // Call a runtime routine. |
648 // Eventually this should be used for all C calls. | |
649 void CallRuntime(Runtime::Function* f, int num_arguments); | 648 void CallRuntime(Runtime::Function* f, int num_arguments); |
650 | 649 |
651 // Convenience function: Same as above, but takes the fid instead. | 650 // Convenience function: Same as above, but takes the fid instead. |
652 void CallRuntime(Runtime::FunctionId id, int num_arguments); | 651 void CallRuntime(Runtime::FunctionId id, int num_arguments); |
653 | 652 |
654 // Convenience function: call an external reference. | 653 // Convenience function: call an external reference. |
655 void CallExternalReference(const ExternalReference& ext, | 654 void CallExternalReference(const ExternalReference& ext, |
656 int num_arguments); | 655 int num_arguments); |
657 | 656 |
658 // Tail call of a runtime routine (jump). | 657 // Tail call of a runtime routine (jump). |
659 // Like JumpToRuntime, but also takes care of passing the number | 658 // Like JumpToExternalReference, but also takes care of passing the number |
660 // of arguments. | 659 // of parameters. |
661 void TailCallRuntime(const ExternalReference& ext, | 660 void TailCallExternalReference(const ExternalReference& ext, |
| 661 int num_arguments, |
| 662 int result_size); |
| 663 |
| 664 // Convenience function: tail call a runtime routine (jump). |
| 665 void TailCallRuntime(Runtime::FunctionId fid, |
662 int num_arguments, | 666 int num_arguments, |
663 int result_size); | 667 int result_size); |
664 | 668 |
665 // Jump to a runtime routine. | 669 // Jump to a runtime routine. |
666 void JumpToRuntime(const ExternalReference& ext, int result_size); | 670 void JumpToExternalReference(const ExternalReference& ext, int result_size); |
667 | 671 |
668 // Before calling a C-function from generated code, align arguments on stack. | 672 // Before calling a C-function from generated code, align arguments on stack. |
669 // After aligning the frame, arguments must be stored in esp[0], esp[4], | 673 // After aligning the frame, arguments must be stored in esp[0], esp[4], |
670 // etc., not pushed. The argument count assumes all arguments are word sized. | 674 // etc., not pushed. The argument count assumes all arguments are word sized. |
671 // The number of slots reserved for arguments depends on platform. On Windows | 675 // The number of slots reserved for arguments depends on platform. On Windows |
672 // stack slots are reserved for the arguments passed in registers. On other | 676 // stack slots are reserved for the arguments passed in registers. On other |
673 // platforms stack slots are only reserved for the arguments actually passed | 677 // platforms stack slots are only reserved for the arguments actually passed |
674 // on the stack. | 678 // on the stack. |
675 void PrepareCallCFunction(int num_arguments); | 679 void PrepareCallCFunction(int num_arguments); |
676 | 680 |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
804 } \ | 808 } \ |
805 masm-> | 809 masm-> |
806 #else | 810 #else |
807 #define ACCESS_MASM(masm) masm-> | 811 #define ACCESS_MASM(masm) masm-> |
808 #endif | 812 #endif |
809 | 813 |
810 | 814 |
811 } } // namespace v8::internal | 815 } } // namespace v8::internal |
812 | 816 |
813 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 817 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |