src/share/classes/com/sun/tools/javac/jvm/Code.java

changeset 267
e2722bd43f3a
parent 117
24a47c3062fe
child 308
03944ee4fac4
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/Code.java	Thu Apr 16 11:23:02 2009 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java	Mon May 04 21:04:04 2009 -0700
     1.3 @@ -456,6 +456,19 @@
     1.4          state.push(mtype.getReturnType());
     1.5      }
     1.6  
     1.7 +    /** Emit an invokedynamic instruction.
     1.8 +     */
     1.9 +    public void emitInvokedynamic(int desc, Type mtype) {
    1.10 +        // N.B. this format is under consideration by the JSR 292 EG
    1.11 +        int argsize = width(mtype.getParameterTypes());
    1.12 +        emitop(invokedynamic);
    1.13 +        if (!alive) return;
    1.14 +        emit2(desc);
    1.15 +        emit2(0);
    1.16 +        state.pop(argsize);
    1.17 +        state.push(mtype.getReturnType());
    1.18 +    }
    1.19 +
    1.20      /** Emit an opcode with no operand field.
    1.21       */
    1.22      public void emitop0(int op) {
    1.23 @@ -2156,7 +2169,7 @@
    1.24              mnem[invokespecial] = "invokespecial";
    1.25              mnem[invokestatic] = "invokestatic";
    1.26              mnem[invokeinterface] = "invokeinterface";
    1.27 -            // mnem[___unused___] = "___unused___";
    1.28 +            mnem[invokedynamic] = "invokedynamic";
    1.29              mnem[new_] = "new_";
    1.30              mnem[newarray] = "newarray";
    1.31              mnem[anewarray] = "anewarray";

mercurial