langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java
changeset 2723 b659ca23d5f5
parent 1264 076a3cde30d5
child 3149 0cd06d598d6f
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java	Wed Jul 05 16:51:35 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java	Mon May 04 21:04:04 2009 -0700
@@ -456,6 +456,19 @@
         state.push(mtype.getReturnType());
     }
 
+    /** Emit an invokedynamic instruction.
+     */
+    public void emitInvokedynamic(int desc, Type mtype) {
+        // N.B. this format is under consideration by the JSR 292 EG
+        int argsize = width(mtype.getParameterTypes());
+        emitop(invokedynamic);
+        if (!alive) return;
+        emit2(desc);
+        emit2(0);
+        state.pop(argsize);
+        state.push(mtype.getReturnType());
+    }
+
     /** Emit an opcode with no operand field.
      */
     public void emitop0(int op) {
@@ -2156,7 +2169,7 @@
             mnem[invokespecial] = "invokespecial";
             mnem[invokestatic] = "invokestatic";
             mnem[invokeinterface] = "invokeinterface";
-            // mnem[___unused___] = "___unused___";
+            mnem[invokedynamic] = "invokedynamic";
             mnem[new_] = "new_";
             mnem[newarray] = "newarray";
             mnem[anewarray] = "anewarray";