Description[interpreter] Wide register support.
This increases the size of register operands to be 16-bit.
Not all bytecodes have wide register variants, so when they are
needed a register translator will copy them into a small area
reserved at the top of the 8-bit register range and these registers
are supplied as arguments to the bytecode with 8-bit operands.
This is non-intrusive for typical bytecode where the number of
registers is less than 120. For bytecodes with wide register
operands (above the window) their index needs to be translated
to avoid the reserved translation window.
Enables splay.js to run in Octane and a handful of mjsunit tests.
BUG=v8:4280, v8:4675
LOG=NO
Committed: https://crrev.com/19df7a20f0d50e3b6a8db39c39ee1cd157c56d25
Cr-Commit-Position: refs/heads/master@{#33516}
Patch Set 1 #Patch Set 2 : A pair of tests. #Patch Set 3 : Added tests, fixed off-by-one error in register indicies. #
Total comments: 20
Patch Set 4 : Compilation fix. #Patch Set 5 : nit. #Patch Set 6 : Bump start of translation window by 1. #Patch Set 7 : Back to implicit register translation. #Patch Set 8 : Rebase #Patch Set 9 : Compilation fixes for gcc/msvc. #
Total comments: 16
Patch Set 10 : Incorporate patch set 9 comments. #Patch Set 11 : Incorporate missed comment. #Patch Set 12 : Unbreak tests. #
Total comments: 20
Patch Set 13 : Rebase and apply new formatting rules. #Patch Set 14 : Incorporate comments on patch set 12. #Patch Set 15 : Rebase #Messages
Total messages: 18 (6 generated)
|