JavaScript:SpiderMonkey:Context Threading: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Mark as Outdated) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{OutdatedSpiderMonkey}} | |||
== Warning == | |||
[mailto:brendan@mozilla.org | This project-stub is probably obsolete in view of [[JavaScript:ActionMonkey]]. | ||
== Blurb == | |||
[http://citeseer.ist.psu.edu/berndl05context.html 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 [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. | |||
* Dealing with <code>goto out;</code> and any other such jumps in the interpreter. | |||
[mailto:brendan@mozilla.org /be] |
Latest revision as of 21:22, 27 April 2021
Warning
This project-stub is probably obsolete in view of JavaScript:ActionMonkey.
Blurb
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.