JSStackFrame Evisceration
Jump to navigation
Jump to search
This would leave sizeof(JSStackFrame) == 6 words. Sorted in estimated order of benefit / difficulty:
| Task | Size (wks) | Assignee | ||||
| argc/argv | 1 | lw | ||||
| thisv (depends on argv) | .5 | lw | ||||
| fun, script (depend on thisv) | .5 | lw | ||||
| ncode (merge with savedPC) | .1 | dvander | ||||
| displaySave - remove display optimization | 1 | cdleary | ||||
| hookData (just use js::Invoke and use a local variable) | .5 | |||||
| callerVersion | .5 | - | blockChain | 1 | ||
| rval | 1 | |||||
| annotation | ? (0, once we can drop the callers of JS_{Get,Set}FrameAnnotation in nsScriptSecurityManager.cpp) | |||||
| imacpc (use some side stack, or push a jsval (like JSOP_GOSUB) | 1 |
Remove from call path
- PIC for fast natives calls
- PIC/fast path for interpreted inline call
- Remove empty script check (not just a predictable branch)