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; |