Index: runtime/vm/stack_frame_arm.h |
=================================================================== |
--- runtime/vm/stack_frame_arm.h (revision 22469) |
+++ runtime/vm/stack_frame_arm.h (working copy) |
@@ -9,26 +9,33 @@ |
/* ARM Dart Frame Layout |
- | | <- TOS |
-Callee frame | ... | |
- | current LR | (PC of current frame) |
- | PC Marker | (callee's frame code entry) |
- +-------------------+ |
-Current frame | ... | <- SP of current frame |
- | first local | |
- | caller's PP | |
- | caller's FP | <- FP of current frame |
- | caller's LR | (PC of caller frame) |
- | PC Marker | (current frame's code entry) |
- +-------------------+ |
-Caller frame | last parameter | |
- | ... | |
+ | | <- TOS |
+Callee frame | ... | |
+ | current LR | (PC of current frame) |
+ | callee's PC marker | |
+ +--------------------+ |
+Current frame | ... | <- SP of current frame |
+ | first local | |
+ | caller's PP | |
+ | caller's FP | <- FP of current frame |
+ | caller's LR | (PC of caller frame) |
+ | PC marker | (current frame's code entry + offset) |
+ +--------------------+ |
+Caller frame | last parameter | <- SP of caller frame |
+ | ... | |
*/ |
-static const int kLastParamSlotIndex = 3; // From fp. |
-static const int kFirstLocalSlotIndex = -2; // From fp. |
-static const int kPcSlotIndexFromSp = -2; |
+static const int kSavedPcSlotFromSp = -2; |
+static const int kFirstLocalSlotFromFp = -2; |
+static const int kSavedCallerFpSlotFromFp = 0; |
+static const int kPcMarkerSlotFromFp = 2; |
+static const int kParamEndSlotFromFp = 2; // Same slot as current pc marker. |
+static const int kCallerSpSlotFromFp = 3; |
+// Entry and exit frame layout. |
+static const int kSavedContextSlotFromEntryFp = -10; |
+static const int kExitLinkSlotFromEntryFp = -9; |
+ |
} // namespace dart |
#endif // VM_STACK_FRAME_ARM_H_ |