OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 void JumpToExternalReference(const ExternalReference& ext); | 532 void JumpToExternalReference(const ExternalReference& ext); |
533 | 533 |
534 MaybeObject* TryJumpToExternalReference(const ExternalReference& ext); | 534 MaybeObject* TryJumpToExternalReference(const ExternalReference& ext); |
535 | 535 |
536 | 536 |
537 // --------------------------------------------------------------------------- | 537 // --------------------------------------------------------------------------- |
538 // Utilities | 538 // Utilities |
539 | 539 |
540 void Ret(); | 540 void Ret(); |
541 | 541 |
| 542 // Return and drop arguments from stack, where the number of arguments |
| 543 // may be bigger than 2^16 - 1. Requires a scratch register. |
| 544 void Ret(int bytes_dropped, Register scratch); |
| 545 |
542 // Emit code to discard a non-negative number of pointer-sized elements | 546 // Emit code to discard a non-negative number of pointer-sized elements |
543 // from the stack, clobbering only the esp register. | 547 // from the stack, clobbering only the esp register. |
544 void Drop(int element_count); | 548 void Drop(int element_count); |
545 | 549 |
546 void Call(Label* target) { call(target); } | 550 void Call(Label* target) { call(target); } |
547 | 551 |
548 // Emit call to the code we are currently generating. | 552 // Emit call to the code we are currently generating. |
549 void CallSelf() { | 553 void CallSelf() { |
550 Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location())); | 554 Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location())); |
551 call(self, RelocInfo::CODE_TARGET); | 555 call(self, RelocInfo::CODE_TARGET); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 } \ | 760 } \ |
757 masm-> | 761 masm-> |
758 #else | 762 #else |
759 #define ACCESS_MASM(masm) masm-> | 763 #define ACCESS_MASM(masm) masm-> |
760 #endif | 764 #endif |
761 | 765 |
762 | 766 |
763 } } // namespace v8::internal | 767 } } // namespace v8::internal |
764 | 768 |
765 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ | 769 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ |
OLD | NEW |