RFR: typed bytecodes - first push
frederic.parain at oracle.com
Mon Dec 12 17:58:29 UTC 2016
Here's what the typed bytecodes look like today:
- the framework to declare and implement typed bytecodes is
- typed bytecodes can be implemented either by aliasing an
existing bytecode or by providing a template to generate
the interpreter Codelet (re-using existing templates is
- the 'typed' opcode currently takes an UTF8 argument
(will be changed in the future)
- the two arguments currently recognized by the 'typed'
opcode are 'I' and 'F', respectively for int and float
- the list of bytecodes supporting the 'typed' prefix is:
aload, aload_0, aload_1, aload_2, aload_3, astore,
astore_0, astore_1, astore_2, astore_3, aaload, aastore,
areturn, anewarray, aconst_null
- the unit tests are using the bytecodes API
- no JIT support
The last missing part is the comparison opcodes, if_acmp<cond>.
The problem is the non-orthogonality of comparisons opcodes
between references, integers values and floating point values.
Maurizio has a patch ready to generate typed if_acmp<cond>
sequences, the support in the JVM should be added soon.
More information about the valhalla-dev