| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_ASSEMBLER_IA32_H_ | 5 #ifndef VM_ASSEMBLER_IA32_H_ |
| 6 #define VM_ASSEMBLER_IA32_H_ | 6 #define VM_ASSEMBLER_IA32_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_ia32.h directly; use assembler.h instead. | 9 #error Do not include assembler_ia32.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 707 // locals space <=== ESP | 707 // locals space <=== ESP |
| 708 // ..... | 708 // ..... |
| 709 // This code sets this up with the sequence: | 709 // This code sets this up with the sequence: |
| 710 // pushl ebp | 710 // pushl ebp |
| 711 // movl ebp, esp | 711 // movl ebp, esp |
| 712 // call L | 712 // call L |
| 713 // L: <code to adjust saved pc if there is any intrinsification code> | 713 // L: <code to adjust saved pc if there is any intrinsification code> |
| 714 // ..... | 714 // ..... |
| 715 void EnterDartFrame(intptr_t frame_size); | 715 void EnterDartFrame(intptr_t frame_size); |
| 716 | 716 |
| 717 // Set up a Dart frame for a function compiled for on-stack replacement. |
| 718 // The frame layout is a normal Dart frame, but the frame is partially set |
| 719 // up on entry (it is the frame of the unoptimized code). |
| 720 void EnterOsrFrame(intptr_t extra_size); |
| 721 |
| 717 // Set up a stub frame so that the stack traversal code can easily identify | 722 // Set up a stub frame so that the stack traversal code can easily identify |
| 718 // a stub frame. | 723 // a stub frame. |
| 719 // The stub frame layout is as follows: | 724 // The stub frame layout is as follows: |
| 720 // .... | 725 // .... |
| 721 // ret PC | 726 // ret PC |
| 722 // saved EBP | 727 // saved EBP |
| 723 // 0 (used to indicate frame is a stub frame) | 728 // 0 (used to indicate frame is a stub frame) |
| 724 // ..... | 729 // ..... |
| 725 // This code sets this up with the sequence: | 730 // This code sets this up with the sequence: |
| 726 // pushl ebp | 731 // pushl ebp |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 839 } | 844 } |
| 840 | 845 |
| 841 | 846 |
| 842 inline void Assembler::EmitOperandSizeOverride() { | 847 inline void Assembler::EmitOperandSizeOverride() { |
| 843 EmitUint8(0x66); | 848 EmitUint8(0x66); |
| 844 } | 849 } |
| 845 | 850 |
| 846 } // namespace dart | 851 } // namespace dart |
| 847 | 852 |
| 848 #endif // VM_ASSEMBLER_IA32_H_ | 853 #endif // VM_ASSEMBLER_IA32_H_ |
| OLD | NEW |