Chromium Code Reviews| Index: runtime/vm/stack_frame_arm.h |
| =================================================================== |
| --- runtime/vm/stack_frame_arm.h (revision 29988) |
| +++ runtime/vm/stack_frame_arm.h (working copy) |
| @@ -16,19 +16,24 @@ |
| | saved LR | (PC of current frame) |
| | callee's PC marker | |
| +--------------------+ |
| -Current frame | ... | <- SP of current frame |
| - | first local | |
| - | caller's PP | |
| +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 |
| | ... | |
| + |
| + * against a slot indicates it needs to be traversed during GC. |
|
regis
2013/11/07 19:53:11
For clarity, I would place * in all frames, not ju
siva
2013/11/07 23:08:19
I am interested in what needs to be traversed in a
|
| */ |
| static const int kDartFrameFixedSize = 4; // PP, FP, LR, PC marker. |
| static const int kSavedPcSlotFromSp = -2; |
| + |
| +static const int kFirstObjectSlotFromFp = -2; // Used by GC to traverse stack. |
| + |
| static const int kFirstLocalSlotFromFp = -2; |
| static const int kSavedCallerPpSlotFromFp = -1; |
| static const int kSavedCallerFpSlotFromFp = 0; |
| @@ -44,4 +49,3 @@ |
| } // namespace dart |
| #endif // VM_STACK_FRAME_ARM_H_ |
| - |