aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/generator/host
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/generator/host')
-rw-r--r--new-luxc/source/luxc/generator/host/jvm/inst.lux17
1 files changed, 12 insertions, 5 deletions
diff --git a/new-luxc/source/luxc/generator/host/jvm/inst.lux b/new-luxc/source/luxc/generator/host/jvm/inst.lux
index efc66f130..d5df6a9f7 100644
--- a/new-luxc/source/luxc/generator/host/jvm/inst.lux
+++ b/new-luxc/source/luxc/generator/host/jvm/inst.lux
@@ -28,6 +28,7 @@
L2D L2F L2I)
<primitive> (declare T_BOOLEAN T_CHAR T_FLOAT T_DOUBLE
T_BYTE T_SHORT T_INT T_LONG)
+ <class> (declare CHECKCAST NEW INSTANCEOF)
<stack> (declare DUP DUP2 DUP2_X1 DUP2_X2
POP POP2
SWAP)
@@ -51,6 +52,7 @@
FALOAD FASTORE
DALOAD DASTORE
CALOAD CASTORE)
+ <concurrency> (declare MONITORENTER MONITOREXIT)
<return> (declare RETURN IRETURN LRETURN DRETURN ARETURN)]
(host;import org.objectweb.asm.Opcodes
(#static NOP int)
@@ -58,8 +60,7 @@
<conversion>
<primitive>
- (#static CHECKCAST int)
- (#static NEW int)
+ <class>
<stack>
<jump>
@@ -84,6 +85,8 @@
(#static ATHROW int)
+ <concurrency>
+
<return>
))
@@ -196,6 +199,9 @@
## Exceptions
[ATHROW]
+ ## Concurrency
+ [MONITORENTER] [MONITOREXIT]
+
## Return
[RETURN] [IRETURN] [LRETURN] [DRETURN] [ARETURN]
)
@@ -232,9 +238,10 @@
(do-to visitor
(MethodVisitor.visitTypeInsn [<inst> ($t;binary-name class)]))))]
- [CHECKCAST Opcodes.CHECKCAST]
- [NEW Opcodes.NEW]
- [ANEWARRAY Opcodes.ANEWARRAY]
+ [CHECKCAST Opcodes.CHECKCAST]
+ [NEW Opcodes.NEW]
+ [INSTANCEOF Opcodes.INSTANCEOF]
+ [ANEWARRAY Opcodes.ANEWARRAY]
)
(def: #export (NEWARRAY type)