Index: runtime/vm/stack_frame_x64.h |
=================================================================== |
--- runtime/vm/stack_frame_x64.h (revision 22714) |
+++ runtime/vm/stack_frame_x64.h (working copy) |
@@ -11,7 +11,8 @@ |
| | <- TOS |
Callee frame | ... | |
- | current ret addr | (PC of current frame) |
+ | saved RBP | (RBP of current frame) |
+ | saved PC | (PC of current frame) |
+--------------------+ |
Current frame | ... | <- RSP of current frame |
| first local | |
@@ -23,13 +24,18 @@ |
| ... | |
*/ |
+static const int kDartFrameFixedSize = 3; // PC marker, RBP, PC. |
static const int kSavedPcSlotFromSp = -1; |
static const int kFirstLocalSlotFromFp = -2; |
static const int kPcMarkerSlotFromFp = -1; |
static const int kSavedCallerFpSlotFromFp = 0; |
-static const int kParamEndSlotFromFp = 1; // Same slot as caller's ret addr. |
+static const int kSavedCallerPcSlotFromFp = 1; |
+static const int kParamEndSlotFromFp = 1; // One slot past last parameter. |
static const int kCallerSpSlotFromFp = 2; |
+// No pool pointer on X64 (indicated by aliasing saved fp). |
+static const int kSavedCallerPpSlotFromFp = kSavedCallerFpSlotFromFp; |
+ |
// Entry and exit frame layout. |
static const int kSavedContextSlotFromEntryFp = -9; |
static const int kExitLinkSlotFromEntryFp = -8; |