diff options
author | Eduardo Julian | 2017-10-19 00:22:47 -0400 |
---|---|---|
committer | Eduardo Julian | 2017-10-19 00:22:47 -0400 |
commit | 6c24a9830cfbf32fbbb6fbfd6f2b7354cb994605 (patch) | |
tree | 3a374d8b90aec63c46fda35917048e702f1fde84 /new-luxc/source/luxc/generator/host | |
parent | 7c521f1e042a723be225457fa2b5e42f3a681ada (diff) |
- Compilation for method invocation.
Diffstat (limited to 'new-luxc/source/luxc/generator/host')
-rw-r--r-- | new-luxc/source/luxc/generator/host/jvm/inst.lux | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/new-luxc/source/luxc/generator/host/jvm/inst.lux b/new-luxc/source/luxc/generator/host/jvm/inst.lux index 1951076c3..f515e86ac 100644 --- a/new-luxc/source/luxc/generator/host/jvm/inst.lux +++ b/new-luxc/source/luxc/generator/host/jvm/inst.lux @@ -9,7 +9,7 @@ [host #+ do-to] [meta] (meta [code] - ["s" syntax #+ syntax:])) + ["s" syntax #+ syntax:])) ["$" ..] (.. ["$t" type])) @@ -29,6 +29,8 @@ <primitive> (declare T_BOOLEAN T_CHAR T_FLOAT T_DOUBLE T_BYTE T_SHORT T_INT T_LONG) <class> (declare CHECKCAST NEW INSTANCEOF) + <member> (declare GETSTATIC PUTSTATIC GETFIELD PUTFIELD + INVOKESTATIC INVOKESPECIAL INVOKEVIRTUAL INVOKEINTERFACE) <stack> (declare DUP DUP2 DUP2_X1 DUP2_X2 POP POP2 SWAP) @@ -37,10 +39,10 @@ GOTO) <var> (declare ILOAD LLOAD DLOAD ALOAD ISTORE LSTORE ASTORE) - <arithmethic> (declare IADD ISUB IMUL IDIV IREM - LADD LSUB LMUL LDIV LREM LCMP - FADD FSUB FMUL FDIV FREM FCMPG FCMPL - DADD DSUB DMUL DDIV DREM DCMPG DCMPL) + <arithmetic> (declare IADD ISUB IMUL IDIV IREM + LADD LSUB LMUL LDIV LREM LCMP + FADD FSUB FMUL FDIV FREM FCMPG FCMPL + DADD DSUB DMUL DDIV DREM DCMPG DCMPL) <bit-wise> (declare IAND IOR IXOR ISHL ISHR IUSHR LAND LOR LXOR LSHL LSHR LUSHR) <array> (declare ARRAYLENGTH NEWARRAY ANEWARRAY @@ -69,19 +71,12 @@ <var> - <arithmethic> + <arithmetic> <bit-wise> <array> - (#static GETSTATIC int) - (#static PUTSTATIC int) - (#static GETFIELD int) - (#static PUTFIELD int) - - (#static INVOKESTATIC int) - (#static INVOKESPECIAL int) - (#static INVOKEVIRTUAL int) + <member> (#static ATHROW int) @@ -171,7 +166,7 @@ ## Integer bitwise [IAND] [IOR] [IXOR] [ISHL] [ISHR] [IUSHR] - ## Long arithmethic + ## Long arithmetic [LADD] [LSUB] [LMUL] [LDIV] [LREM] [LCMP] @@ -265,9 +260,10 @@ (do-to visitor (MethodVisitor.visitMethodInsn [<inst> ($t;binary-name class) method-name ($t;method-descriptor method-signature) interface?]))))] - [INVOKESTATIC Opcodes.INVOKESTATIC] - [INVOKEVIRTUAL Opcodes.INVOKEVIRTUAL] - [INVOKESPECIAL Opcodes.INVOKESPECIAL] + [INVOKESTATIC Opcodes.INVOKESTATIC] + [INVOKEVIRTUAL Opcodes.INVOKEVIRTUAL] + [INVOKESPECIAL Opcodes.INVOKESPECIAL] + [INVOKEINTERFACE Opcodes.INVOKEINTERFACE] ) (do-template [<name>] |