JavaScript:SpiderMonkey:Context Threading: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
* Preserving the SpiderMonkey [http://lxr.mozilla.org/mozilla/source/js/src/jsdbgapi.h Debugger API]. | * Preserving the SpiderMonkey [http://lxr.mozilla.org/mozilla/source/js/src/jsdbgapi.h Debugger API]. | ||
* Preserving the [http://lxr.mozilla.org/mozilla/search?string=JS_SetBranchCallback JS_SetBranchCallback API]. | |||
* Recoding [http://lxr.mozilla.org/mozilla/source/js/src/jsopcode.tbl bytecodes] as necessary to improve icache utilization. | * Recoding [http://lxr.mozilla.org/mozilla/source/js/src/jsopcode.tbl bytecodes] as necessary to improve icache utilization. | ||
* Dealing with <code>goto out;</code> and other such jumps in the interpreter. | * Dealing with <code>goto out;</code> and any other such jumps in the interpreter. | ||
[mailto:brendan@mozilla.org /be] | [mailto:brendan@mozilla.org /be] |
Revision as of 22:23, 10 January 2006
Context threading is an interpreter implementation technique that aligns the interpreter's virtual PC with the real PC, to optimize branch prediction. SpiderMonkey needs it. Challenges:
- Preserving the SpiderMonkey Debugger API.
- Preserving the JS_SetBranchCallback API.
- Recoding bytecodes as necessary to improve icache utilization.
- Dealing with
goto out;
and any other such jumps in the interpreter.