< prev index next >

jdk/src/java.base/share/classes/jdk/experimental/bytecode/CodeBuilder.java

Print this page
rev 14083 : vwithfield class/field access

@@ -80,10 +80,16 @@
         emitOp(Opcode.PUTFIELD, type);
         code.writeChar(poolHelper.putFieldRef(owner, name, type));
         return thisBuilder();
     }
 
+    public C vwithfield(S owner, CharSequence name, T type) {
+        emitOp(Opcode.VWITHFIELD, type);
+        code.writeChar(poolHelper.putFieldRef(owner, name, type));
+        return thisBuilder();
+    }
+
     public C invokevirtual(S owner, CharSequence name, T type, boolean isInterface) {
         emitOp(Opcode.INVOKEVIRTUAL, type);
         code.writeChar(poolHelper.putMethodRef(owner, name, type, isInterface));
         return thisBuilder();
     }

@@ -127,10 +133,16 @@
         emitOp(Opcode.VNEW, clazz);
         code.writeChar(poolHelper.putMethodRef(clazz, name, desc, false));
         return thisBuilder();
     }
 
+    public C vdefault(S target) {
+        emitOp(Opcode.VDEFAULT, target);
+        code.writeChar(poolHelper.putClass(target));
+        return thisBuilder();
+    }
+
     public C newarray(TypeTag tag) {
         emitOp(Opcode.NEWARRAY, tag);
         int newarraycode = tag.newarraycode;
         if (newarraycode == -1) {
             throw new IllegalStateException("Bad tag " + tag);
< prev index next >