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 |
11 | 11 |
12 #include "platform/assert.h" | 12 #include "platform/assert.h" |
13 #include "platform/utils.h" | 13 #include "platform/utils.h" |
14 #include "vm/constants_arm.h" | 14 #include "vm/constants_arm.h" |
| 15 #include "vm/cpu.h" |
15 #include "vm/object.h" | 16 #include "vm/object.h" |
16 #include "vm/simulator.h" | 17 #include "vm/simulator.h" |
17 | 18 |
18 namespace dart { | 19 namespace dart { |
19 | 20 |
20 // Forward declarations. | 21 // Forward declarations. |
21 class RuntimeEntry; | 22 class RuntimeEntry; |
22 | 23 |
23 class Label : public ValueObject { | 24 class Label : public ValueObject { |
24 public: | 25 public: |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 void EnterOsrFrame(intptr_t extra_size); | 768 void EnterOsrFrame(intptr_t extra_size); |
768 | 769 |
769 // Set up a stub frame so that the stack traversal code can easily identify | 770 // Set up a stub frame so that the stack traversal code can easily identify |
770 // a stub frame. | 771 // a stub frame. |
771 void EnterStubFrame(bool load_pp = false); | 772 void EnterStubFrame(bool load_pp = false); |
772 void LeaveStubFrame(); | 773 void LeaveStubFrame(); |
773 | 774 |
774 // Instruction pattern from entrypoint is used in Dart frame prologs | 775 // Instruction pattern from entrypoint is used in Dart frame prologs |
775 // to set up the frame and save a PC which can be used to figure out the | 776 // to set up the frame and save a PC which can be used to figure out the |
776 // RawInstruction object corresponding to the code running in the frame. | 777 // RawInstruction object corresponding to the code running in the frame. |
777 static const intptr_t kEntryPointToPcMarkerOffset = Instr::kPCReadOffset; | 778 static intptr_t EntryPointToPcMarkerOffset() { |
| 779 return TargetCPUFeatures::store_pc_read_offset(); |
| 780 } |
778 | 781 |
779 void UpdateAllocationStats(intptr_t cid, | 782 void UpdateAllocationStats(intptr_t cid, |
780 Register temp_reg, | 783 Register temp_reg, |
781 Heap::Space space = Heap::kNew); | 784 Heap::Space space = Heap::kNew); |
782 | 785 |
783 void UpdateAllocationStatsWithSize(intptr_t cid, | 786 void UpdateAllocationStatsWithSize(intptr_t cid, |
784 Register size_reg, | 787 Register size_reg, |
785 Register temp_reg, | 788 Register temp_reg, |
786 Heap::Space space = Heap::kNew); | 789 Heap::Space space = Heap::kNew); |
787 | 790 |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
963 Register value, | 966 Register value, |
964 Label* no_update); | 967 Label* no_update); |
965 | 968 |
966 DISALLOW_ALLOCATION(); | 969 DISALLOW_ALLOCATION(); |
967 DISALLOW_COPY_AND_ASSIGN(Assembler); | 970 DISALLOW_COPY_AND_ASSIGN(Assembler); |
968 }; | 971 }; |
969 | 972 |
970 } // namespace dart | 973 } // namespace dart |
971 | 974 |
972 #endif // VM_ASSEMBLER_ARM_H_ | 975 #endif // VM_ASSEMBLER_ARM_H_ |
OLD | NEW |