src/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java

Print this page




  58  */
  59 package jdk.internal.org.objectweb.asm;
  60 
  61 /**
  62  * Defines the JVM opcodes, access flags and array type codes. This interface
  63  * does not define all the JVM opcodes because some opcodes are automatically
  64  * handled. For example, the xLOAD and xSTORE opcodes are automatically replaced
  65  * by xLOAD_n and xSTORE_n opcodes when possible. The xLOAD_n and xSTORE_n
  66  * opcodes are therefore not defined in this interface. Likewise for LDC,
  67  * automatically replaced by LDC_W or LDC2_W when necessary, WIDE, GOTO_W and
  68  * JSR_W.
  69  *
  70  * @author Eric Bruneton
  71  * @author Eugene Kuleshov
  72  */
  73 public interface Opcodes {
  74 
  75     // ASM API versions
  76 
  77     int ASM4 = 4 << 16 | 0 << 8 | 0;

  78 
  79     // versions
  80 
  81     int V1_1 = 3 << 16 | 45;
  82     int V1_2 = 0 << 16 | 46;
  83     int V1_3 = 0 << 16 | 47;
  84     int V1_4 = 0 << 16 | 48;
  85     int V1_5 = 0 << 16 | 49;
  86     int V1_6 = 0 << 16 | 50;
  87     int V1_7 = 0 << 16 | 51;

  88 
  89     // access flags
  90 
  91     int ACC_PUBLIC = 0x0001; // class, field, method
  92     int ACC_PRIVATE = 0x0002; // class, field, method
  93     int ACC_PROTECTED = 0x0004; // class, field, method
  94     int ACC_STATIC = 0x0008; // field, method
  95     int ACC_FINAL = 0x0010; // class, field, method
  96     int ACC_SUPER = 0x0020; // class
  97     int ACC_SYNCHRONIZED = 0x0020; // method
  98     int ACC_VOLATILE = 0x0040; // field
  99     int ACC_BRIDGE = 0x0040; // method
 100     int ACC_VARARGS = 0x0080; // method
 101     int ACC_TRANSIENT = 0x0080; // field
 102     int ACC_NATIVE = 0x0100; // method
 103     int ACC_INTERFACE = 0x0200; // class
 104     int ACC_ABSTRACT = 0x0400; // class, method
 105     int ACC_STRICT = 0x0800; // method
 106     int ACC_SYNTHETIC = 0x1000; // class, field, method
 107     int ACC_ANNOTATION = 0x2000; // class
 108     int ACC_ENUM = 0x4000; // class(?) field inner

 109 
 110     // ASM specific pseudo access flags
 111 
 112     int ACC_DEPRECATED = 0x20000; // class, field, method
 113 
 114     // types for NEWARRAY
 115 
 116     int T_BOOLEAN = 4;
 117     int T_CHAR = 5;
 118     int T_FLOAT = 6;
 119     int T_DOUBLE = 7;
 120     int T_BYTE = 8;
 121     int T_SHORT = 9;
 122     int T_INT = 10;
 123     int T_LONG = 11;
 124 
 125     // tags for Handle
 126 
 127     int H_GETFIELD = 1;
 128     int H_GETSTATIC = 2;




  58  */
  59 package jdk.internal.org.objectweb.asm;
  60 
  61 /**
  62  * Defines the JVM opcodes, access flags and array type codes. This interface
  63  * does not define all the JVM opcodes because some opcodes are automatically
  64  * handled. For example, the xLOAD and xSTORE opcodes are automatically replaced
  65  * by xLOAD_n and xSTORE_n opcodes when possible. The xLOAD_n and xSTORE_n
  66  * opcodes are therefore not defined in this interface. Likewise for LDC,
  67  * automatically replaced by LDC_W or LDC2_W when necessary, WIDE, GOTO_W and
  68  * JSR_W.
  69  *
  70  * @author Eric Bruneton
  71  * @author Eugene Kuleshov
  72  */
  73 public interface Opcodes {
  74 
  75     // ASM API versions
  76 
  77     int ASM4 = 4 << 16 | 0 << 8 | 0;
  78     int ASM5 = 5 << 16 | 0 << 8 | 0;
  79 
  80     // versions
  81 
  82     int V1_1 = 3 << 16 | 45;
  83     int V1_2 = 0 << 16 | 46;
  84     int V1_3 = 0 << 16 | 47;
  85     int V1_4 = 0 << 16 | 48;
  86     int V1_5 = 0 << 16 | 49;
  87     int V1_6 = 0 << 16 | 50;
  88     int V1_7 = 0 << 16 | 51;
  89     int V1_8 = 0 << 16 | 52;
  90 
  91     // access flags
  92 
  93     int ACC_PUBLIC = 0x0001; // class, field, method
  94     int ACC_PRIVATE = 0x0002; // class, field, method
  95     int ACC_PROTECTED = 0x0004; // class, field, method
  96     int ACC_STATIC = 0x0008; // field, method
  97     int ACC_FINAL = 0x0010; // class, field, method, parameter
  98     int ACC_SUPER = 0x0020; // class
  99     int ACC_SYNCHRONIZED = 0x0020; // method
 100     int ACC_VOLATILE = 0x0040; // field
 101     int ACC_BRIDGE = 0x0040; // method
 102     int ACC_VARARGS = 0x0080; // method
 103     int ACC_TRANSIENT = 0x0080; // field
 104     int ACC_NATIVE = 0x0100; // method
 105     int ACC_INTERFACE = 0x0200; // class
 106     int ACC_ABSTRACT = 0x0400; // class, method
 107     int ACC_STRICT = 0x0800; // method
 108     int ACC_SYNTHETIC = 0x1000; // class, field, method, parameter
 109     int ACC_ANNOTATION = 0x2000; // class
 110     int ACC_ENUM = 0x4000; // class(?) field inner
 111     int ACC_MANDATED = 0x8000; // parameter
 112 
 113     // ASM specific pseudo access flags
 114 
 115     int ACC_DEPRECATED = 0x20000; // class, field, method
 116 
 117     // types for NEWARRAY
 118 
 119     int T_BOOLEAN = 4;
 120     int T_CHAR = 5;
 121     int T_FLOAT = 6;
 122     int T_DOUBLE = 7;
 123     int T_BYTE = 8;
 124     int T_SHORT = 9;
 125     int T_INT = 10;
 126     int T_LONG = 11;
 127 
 128     // tags for Handle
 129 
 130     int H_GETFIELD = 1;
 131     int H_GETSTATIC = 2;