| 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_X64_H_ | 5 #ifndef VM_ASSEMBLER_X64_H_ |
| 6 #define VM_ASSEMBLER_X64_H_ | 6 #define VM_ASSEMBLER_X64_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_x64.h directly; use assembler.h instead. | 9 #error Do not include assembler_x64.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 728 // locals space <=== RSP | 728 // locals space <=== RSP |
| 729 // ..... | 729 // ..... |
| 730 // This code sets this up with the sequence: | 730 // This code sets this up with the sequence: |
| 731 // pushq rbp | 731 // pushq rbp |
| 732 // movq rbp, rsp | 732 // movq rbp, rsp |
| 733 // call L | 733 // call L |
| 734 // L: <code to adjust saved pc if there is any intrinsification code> | 734 // L: <code to adjust saved pc if there is any intrinsification code> |
| 735 // ..... | 735 // ..... |
| 736 void EnterDartFrame(intptr_t frame_size); | 736 void EnterDartFrame(intptr_t frame_size); |
| 737 | 737 |
| 738 // Set up a Dart frame for a function compiled for on-stack replacement. |
| 739 // The frame layout is a normal Dart frame, but the frame is partially set |
| 740 // up on entry (it is the frame of the unoptimized code). |
| 741 void EnterOsrFrame(intptr_t extra_size); |
| 742 |
| 738 // Set up a stub frame so that the stack traversal code can easily identify | 743 // Set up a stub frame so that the stack traversal code can easily identify |
| 739 // a stub frame. | 744 // a stub frame. |
| 740 // The stub frame layout is as follows: | 745 // The stub frame layout is as follows: |
| 741 // .... | 746 // .... |
| 742 // ret PC | 747 // ret PC |
| 743 // saved RBP | 748 // saved RBP |
| 744 // pc (used to derive the RawInstruction Object of the stub) | 749 // pc (used to derive the RawInstruction Object of the stub) |
| 745 // ..... | 750 // ..... |
| 746 // This code sets this up with the sequence: | 751 // This code sets this up with the sequence: |
| 747 // pushq rbp | 752 // pushq rbp |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 918 } | 923 } |
| 919 | 924 |
| 920 | 925 |
| 921 inline void Assembler::EmitOperandSizeOverride() { | 926 inline void Assembler::EmitOperandSizeOverride() { |
| 922 EmitUint8(0x66); | 927 EmitUint8(0x66); |
| 923 } | 928 } |
| 924 | 929 |
| 925 } // namespace dart | 930 } // namespace dart |
| 926 | 931 |
| 927 #endif // VM_ASSEMBLER_X64_H_ | 932 #endif // VM_ASSEMBLER_X64_H_ |
| OLD | NEW |