Because I keep getting this wrong, here is where the pointers in an interpreterState
should point. This is a PPC32 frame with a four-word stack with one item pushed onto it and no monitors:
…680 | Back chain | |
…684 | LR save word | |
…688 | Padding | |
…68c | ||
…690 | Slop | |
…694 | ← _stack_limit |
|
…698 | ||
…69c | Stack | |
…6a0 | ← _stack |
|
…6a4 | ||
…6a8 | Interpreter state | ← _stack_base , _monitor_base |
. | ||
. | ||
. | ||
…6ec |
This is the same frame with a monitor allocated:
…680 | Back chain | |
…684 | LR save word | |
…688 | Slop | |
…68c | ← _stack_limit |
|
…690 | ||
…694 | Stack | |
…698 | ← _stack |
|
…69c | ||
…6a0 | Monitor | ← _stack_base |
…6a4 | ||
…6a8 | Interpreter state | ← _monitor_base |
. | ||
. | ||
. | ||
…6ec |