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 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 void JumpToExternalReference(const ExternalReference& ext); | 543 void JumpToExternalReference(const ExternalReference& ext); |
544 | 544 |
545 MaybeObject* TryJumpToExternalReference(const ExternalReference& ext); | 545 MaybeObject* TryJumpToExternalReference(const ExternalReference& ext); |
546 | 546 |
547 | 547 |
548 // --------------------------------------------------------------------------- | 548 // --------------------------------------------------------------------------- |
549 // Utilities | 549 // Utilities |
550 | 550 |
551 void Ret(); | 551 void Ret(); |
552 | 552 |
| 553 // Return and drop arguments from stack, where the number of arguments |
| 554 // may be bigger than 2^16 - 1. Requires a scratch register. |
| 555 void LargeRet(int bytes_dropped, Register scratch); |
| 556 |
553 // Emit code to discard a non-negative number of pointer-sized elements | 557 // Emit code to discard a non-negative number of pointer-sized elements |
554 // from the stack, clobbering only the esp register. | 558 // from the stack, clobbering only the esp register. |
555 void Drop(int element_count); | 559 void Drop(int element_count); |
556 | 560 |
557 void Call(Label* target) { call(target); } | 561 void Call(Label* target) { call(target); } |
558 | 562 |
559 // Emit call to the code we are currently generating. | 563 // Emit call to the code we are currently generating. |
560 void CallSelf() { | 564 void CallSelf() { |
561 Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location())); | 565 Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location())); |
562 call(self, RelocInfo::CODE_TARGET); | 566 call(self, RelocInfo::CODE_TARGET); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 } \ | 771 } \ |
768 masm-> | 772 masm-> |
769 #else | 773 #else |
770 #define ACCESS_MASM(masm) masm-> | 774 #define ACCESS_MASM(masm) masm-> |
771 #endif | 775 #endif |
772 | 776 |
773 | 777 |
774 } } // namespace v8::internal | 778 } } // namespace v8::internal |
775 | 779 |
776 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ | 780 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ |
OLD | NEW |