| 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_ARM_H_ | 5 #ifndef VM_ASSEMBLER_ARM_H_ |
| 6 #define VM_ASSEMBLER_ARM_H_ | 6 #define VM_ASSEMBLER_ARM_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_arm.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 void LeaveCallRuntimeFrame(); | 658 void LeaveCallRuntimeFrame(); |
| 659 | 659 |
| 660 void CallRuntime(const RuntimeEntry& entry); | 660 void CallRuntime(const RuntimeEntry& entry); |
| 661 | 661 |
| 662 // Set up a Dart frame on entry with a frame pointer and PC information to | 662 // Set up a Dart frame on entry with a frame pointer and PC information to |
| 663 // enable easy access to the RawInstruction object of code corresponding | 663 // enable easy access to the RawInstruction object of code corresponding |
| 664 // to this frame. | 664 // to this frame. |
| 665 void EnterDartFrame(intptr_t frame_size); | 665 void EnterDartFrame(intptr_t frame_size); |
| 666 void LeaveDartFrame(); | 666 void LeaveDartFrame(); |
| 667 | 667 |
| 668 // Set up a Dart frame for a function compiled for on-stack replacement. |
| 669 // The frame layout is a normal Dart frame, but the frame is partially set |
| 670 // up on entry (it is the frame of the unoptimized code). |
| 671 void EnterOsrFrame(intptr_t extra_size); |
| 672 |
| 668 // Set up a stub frame so that the stack traversal code can easily identify | 673 // Set up a stub frame so that the stack traversal code can easily identify |
| 669 // a stub frame. | 674 // a stub frame. |
| 670 void EnterStubFrame(bool uses_pp = false); | 675 void EnterStubFrame(bool uses_pp = false); |
| 671 void LeaveStubFrame(bool uses_pp = false); | 676 void LeaveStubFrame(bool uses_pp = false); |
| 672 | 677 |
| 673 // Instruction pattern from entrypoint is used in Dart frame prologs | 678 // Instruction pattern from entrypoint is used in Dart frame prologs |
| 674 // to set up the frame and save a PC which can be used to figure out the | 679 // to set up the frame and save a PC which can be used to figure out the |
| 675 // RawInstruction object corresponding to the code running in the frame. | 680 // RawInstruction object corresponding to the code running in the frame. |
| 676 static const intptr_t kEntryPointToPcMarkerOffset = Instr::kPCReadOffset; | 681 static const intptr_t kEntryPointToPcMarkerOffset = Instr::kPCReadOffset; |
| 677 | 682 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 Register value, | 817 Register value, |
| 813 Label* no_update); | 818 Label* no_update); |
| 814 | 819 |
| 815 DISALLOW_ALLOCATION(); | 820 DISALLOW_ALLOCATION(); |
| 816 DISALLOW_COPY_AND_ASSIGN(Assembler); | 821 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 817 }; | 822 }; |
| 818 | 823 |
| 819 } // namespace dart | 824 } // namespace dart |
| 820 | 825 |
| 821 #endif // VM_ASSEMBLER_ARM_H_ | 826 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |