Add Transactional/Commit abort interpreter optimisation
parent
06e56ce3fc
commit
bd3c6aad1e
|
@ -20,6 +20,7 @@ Target audience is Nimbus developers.
|
|||
* Paper by author of ANTLR introducing dynamic replication: Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreter - [link](https://www.scss.tcd.ie/David.Gregg/papers/toplas05.pdf)
|
||||
* Benchmarking VM Dispatch strategies in Rust: Switch vs unrolled switch vs tail call dispatch vs Computed Gotos - [link](https://pliniker.github.io/post/dispatchers/)
|
||||
* Computed Gotos for fast dispatching in the official CPython codebase - [link](https://github.com/python/cpython/blob/9d6171ded5c56679bc295bacffc718472bcb706b/Python/ceval.c#L571-L608)
|
||||
* Fast Microcode Interpretation with Transactional Commit/Abort - [link](http://www.emulators.com/docs/amas-bt2011.pdf), [Abstract DOI 10.1.1.367.581](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.367.581), by Intel and Bosch x86 emulator author
|
||||
|
||||
## JIT / Dynamic recompilation
|
||||
|
||||
|
@ -57,6 +58,13 @@ But direct threaded code / computed goto only makes use of indirect branches (go
|
|||
cache misses by up to 95% by exploiting all those predictors. However it requires assembly as there is no way to generate
|
||||
arbitrary call and ret instructions.
|
||||
|
||||
## Transactional Commit/Abort
|
||||
|
||||
- [Paper Doi 10.1.1.367.581](http://www.emulators.com/docs/amas-bt2011.pdf) by Intel and Bosch x86 emulator author.
|
||||
|
||||
The technique is similar to context threading but can be implemented in pure C.
|
||||
TODO - desc
|
||||
|
||||
## Codebases
|
||||
|
||||
- [Bochs x86 emulator](https://sourceforge.net/projects/bochs/)
|
||||
|
|
Loading…
Reference in New Issue