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 |