mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-20 15:09:42 +00:00
This commit adds a register allocator, with 8 available "register" slots. In testing with various random blobs, this moves anywhere from 30% to 74% of value accesses into predefined slots, and is about a ~20% perf increase end-to-end. To actually make this usable, a few structural changes were also made: - we no longer do one instruction per interpret call - trapping is an (unlikely) exit condition - the label and frame stacks are replaced with linked lists with a huge node cache size, as we only need to touch the last element and push/pop is very frequent. |
||
---|---|---|
.. | ||
AbstractMachine.cpp | ||
AbstractMachine.h | ||
BytecodeInterpreter.cpp | ||
BytecodeInterpreter.h | ||
Configuration.cpp | ||
Configuration.h | ||
Interpreter.h | ||
Operators.h | ||
Validator.cpp | ||
Validator.h |