[lworld] RFR: object methods in VM for lworld value type (original) (raw)
David Simms david.simms at oracle.com
Thu Apr 26 15:20:46 UTC 2018
- Previous message (by thread): hg: valhalla/valhalla: Fix stack map creation in byte code API
- Next message (by thread): [lworld] RFR: object methods in VM for lworld value type
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Greetings,
Here is a patch that for the most part ensures Object methods implemented by the JVM do not crash (as some do today):
http://cr.openjdk.java.net/~dsimms/valhalla/object_methods/webrev0/
Summary of changes, interpreter only (-Xint):
- "Object.getClass()": sanity test
- "Object.hashCode()" / "System.identityHashCode()": simply return 0 o should be revisited for "System.identityHashCode()", once we have BSM hashCode generation in place
- "Object.clone()": disallow "Cloneable" value types, throws ClassFormatError o implicit cloning via "pass by value" does not allow user code (as clone does), so no clone
- "Object.wait()", "notify()" and monitorenter byte-code: throw IllegalMonitorStateException o missing test for monitorexit (whoops)
This change is primarily to enable further prototyping with -Xint, giving JIT implementation further time to adjust to lworld, and ignoring JDK methods whom may or may not provide alternative implementations for lworld "objectification" of value types.
Cheers
/David Simms
- Previous message (by thread): hg: valhalla/valhalla: Fix stack map creation in byte code API
- Next message (by thread): [lworld] RFR: object methods in VM for lworld value type
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]