From 6c24a9830cfbf32fbbb6fbfd6f2b7354cb994605 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 19 Oct 2017 00:22:47 -0400 Subject: - Compilation for method invocation. --- new-luxc/source/luxc/generator/host/jvm/inst.lux | 32 +++++++++++------------- 1 file changed, 14 insertions(+), 18 deletions(-) (limited to 'new-luxc/source/luxc/generator/host/jvm/inst.lux') 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 @@ (declare T_BOOLEAN T_CHAR T_FLOAT T_DOUBLE T_BYTE T_SHORT T_INT T_LONG) (declare CHECKCAST NEW INSTANCEOF) + (declare GETSTATIC PUTSTATIC GETFIELD PUTFIELD + INVOKESTATIC INVOKESPECIAL INVOKEVIRTUAL INVOKEINTERFACE) (declare DUP DUP2 DUP2_X1 DUP2_X2 POP POP2 SWAP) @@ -37,10 +39,10 @@ GOTO) (declare ILOAD LLOAD DLOAD ALOAD ISTORE LSTORE ASTORE) - (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) + (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) (declare IAND IOR IXOR ISHL ISHR IUSHR LAND LOR LXOR LSHL LSHR LUSHR) (declare ARRAYLENGTH NEWARRAY ANEWARRAY @@ -69,19 +71,12 @@ - + - (#static GETSTATIC int) - (#static PUTSTATIC int) - (#static GETFIELD int) - (#static PUTFIELD int) - - (#static INVOKESTATIC int) - (#static INVOKESPECIAL int) - (#static INVOKEVIRTUAL int) + (#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 [ ($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 [] -- cgit v1.2.3