001: /*
002: * @(#)Opcode.java 1.3 05/06/15
003: *
004: * Copyright (c) 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
005: *
006: * See the file "LICENSE.txt" for information on usage and redistribution
007: * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
008: */
009: package pnuts.compiler;
010:
011: public interface Opcode {
012:
013: byte NOP = 0x00;
014: byte ACONST_NULL = 0x01;
015: byte ICONST_M1 = 0x02;
016: byte ICONST_0 = 0x03;
017: byte ICONST_1 = 0x04;
018: byte ICONST_2 = 0x05;
019: byte ICONST_3 = 0x06;
020: byte ICONST_4 = 0x07;
021: byte ICONST_5 = 0x08;
022: byte LCONST_0 = 0x09;
023: byte LCONST_1 = 0x0A;
024: byte FCONST_0 = 0x0B;
025: byte FCONST_1 = 0x0C;
026: byte FCONST_2 = 0x0D;
027: byte DCONST_0 = 0x0E;
028: byte DCONST_1 = 0x0F;
029: byte BIPUSH = 0x10;
030: byte SIPUSH = 0x11;
031: byte LDC = 0x12;
032: byte LDC_W = 0x13;
033: byte LDC2_W = 0x14;
034: byte ILOAD = 0x15;
035: byte LLOAD = 0x16;
036: byte FLOAD = 0x17;
037: byte DLOAD = 0x18;
038: byte ALOAD = 0x19;
039: byte ILOAD_0 = 0x1A;
040: byte ILOAD_1 = 0x1B;
041: byte ILOAD_2 = 0x1C;
042: byte ILOAD_3 = 0x1D;
043: byte LLOAD_0 = 0x1E;
044: byte LLOAD_1 = 0x1F;
045: byte LLOAD_2 = 0x20;
046: byte LLOAD_3 = 0x21;
047: byte FLOAD_0 = 0x22;
048: byte FLOAD_1 = 0x23;
049: byte FLOAD_2 = 0x24;
050: byte FLOAD_3 = 0x25;
051: byte DLOAD_0 = 0x26;
052: byte DLOAD_1 = 0x27;
053: byte DLOAD_2 = 0x28;
054: byte DLOAD_3 = 0x29;
055: byte ALOAD_0 = 0x2A;
056: byte ALOAD_1 = 0x2B;
057: byte ALOAD_2 = 0x2C;
058: byte ALOAD_3 = 0x2D;
059: byte IALOAD = 0x2E;
060: byte LALOAD = 0x2F;
061: byte FALOAD = 0x30;
062: byte DALOAD = 0x31;
063: byte AALOAD = 0x32;
064: byte BALOAD = 0x33;
065: byte CALOAD = 0x34;
066: byte SALOAD = 0x35;
067: byte ISTORE = 0x36;
068: byte LSTORE = 0x37;
069: byte FSTORE = 0x38;
070: byte DSTORE = 0x39;
071: byte ASTORE = 0x3A;
072: byte ISTORE_0 = 0x3B;
073: byte ISTORE_1 = 0x3C;
074: byte ISTORE_2 = 0x3D;
075: byte ISTORE_3 = 0x3E;
076: byte LSTORE_0 = 0x3F;
077: byte LSTORE_1 = 0x40;
078: byte LSTORE_2 = 0x41;
079: byte LSTORE_3 = 0x42;
080: byte FSTORE_0 = 0x43;
081: byte FSTORE_1 = 0x44;
082: byte FSTORE_2 = 0x45;
083: byte FSTORE_3 = 0x46;
084: byte DSTORE_0 = 0x47;
085: byte DSTORE_1 = 0x48;
086: byte DSTORE_2 = 0x49;
087: byte DSTORE_3 = 0x4A;
088: byte ASTORE_0 = 0x4B;
089: byte ASTORE_1 = 0x4C;
090: byte ASTORE_2 = 0x4D;
091: byte ASTORE_3 = 0x4E;
092: byte IASTORE = 0x4F;
093: byte LASTORE = 0x50;
094: byte FASTORE = 0x51;
095: byte DASTORE = 0x52;
096: byte AASTORE = 0x53;
097: byte BASTORE = 0x54;
098: byte CASTORE = 0x55;
099: byte SASTORE = 0x56;
100: byte POP = 0x57;
101: byte POP2 = 0x58;
102: byte DUP = 0x59;
103: byte DUP_X1 = 0x5A;
104: byte DUP_X2 = 0x5B;
105: byte DUP2 = 0x5C;
106: byte DUP2_X1 = 0x5D;
107: byte DUP2_X2 = 0x5E;
108: byte SWAP = 0x5F;
109: byte IADD = 0x60;
110: byte LADD = 0x61;
111: byte FADD = 0x62;
112: byte DADD = 0x63;
113: byte ISUB = 0x64;
114: byte LSUB = 0x65;
115: byte FSUB = 0x66;
116: byte DSUB = 0x67;
117: byte IMUL = 0x68;
118: byte LMUL = 0x69;
119: byte FMUL = 0x6A;
120: byte DMUL = 0x6B;
121: byte IDIV = 0x6C;
122: byte LDIV = 0x6D;
123: byte FDIV = 0x6E;
124: byte DDIV = 0x6F;
125: byte IREM = 0x70;
126: byte LREM = 0x71;
127: byte FREM = 0x72;
128: byte DREM = 0x73;
129: byte INEG = 0x74;
130: byte LNEG = 0x75;
131: byte FNEG = 0x76;
132: byte DNEG = 0x77;
133: byte ISHL = 0x78;
134: byte LSHL = 0x79;
135: byte ISHR = 0x7A;
136: byte LSHR = 0x7B;
137: byte IUSHR = 0x7C;
138: byte LUSHR = 0x7D;
139: byte IAND = 0x7E;
140: byte LAND = 0x7F;
141: byte IOR = (byte) 0x80;
142: byte LOR = (byte) 0x81;
143: byte IXOR = (byte) 0x82;
144: byte LXOR = (byte) 0x83;
145: byte IINC = (byte) 0x84;
146: byte I2L = (byte) 0x85;
147: byte I2F = (byte) 0x86;
148: byte I2D = (byte) 0x87;
149: byte L2I = (byte) 0x88;
150: byte L2F = (byte) 0x89;
151: byte L2D = (byte) 0x8A;
152: byte F2I = (byte) 0x8B;
153: byte F2L = (byte) 0x8C;
154: byte F2D = (byte) 0x8D;
155: byte D2I = (byte) 0x8E;
156: byte D2L = (byte) 0x8F;
157: byte D2F = (byte) 0x90;
158: byte I2B = (byte) 0x91;
159: byte I2C = (byte) 0x92;
160: byte I2S = (byte) 0x93;
161: byte LCMP = (byte) 0x94;
162: byte FCMPL = (byte) 0x95;
163: byte FCMPG = (byte) 0x96;
164: byte DCMPL = (byte) 0x97;
165: byte DCMPG = (byte) 0x98;
166: byte IFEQ = (byte) 0x99;
167: byte IFNE = (byte) 0x9A;
168: byte IFLT = (byte) 0x9B;
169: byte IFGE = (byte) 0x9C;
170: byte IFGT = (byte) 0x9D;
171: byte IFLE = (byte) 0x9E;
172: byte IF_ICMPEQ = (byte) 0x9F;
173: byte IF_ICMPNE = (byte) 0xA0;
174: byte IF_ICMPLT = (byte) 0xA1;
175: byte IF_ICMPGE = (byte) 0xA2;
176: byte IF_ICMPGT = (byte) 0xA3;
177: byte IF_ICMPLE = (byte) 0xA4;
178: byte IF_ACMPEQ = (byte) 0xA5;
179: byte IF_ACMPNE = (byte) 0xA6;
180: byte GOTO = (byte) 0xA7;
181: byte JSR = (byte) 0xA8;
182: byte RET = (byte) 0xA9;
183: byte TABLESWITCH = (byte) 0xAA;
184: byte LOOKUPSWITCH = (byte) 0xAB;
185: byte IRETURN = (byte) 0xAC;
186: byte LRETURN = (byte) 0xAD;
187: byte FRETURN = (byte) 0xAE;
188: byte DRETURN = (byte) 0xAF;
189: byte ARETURN = (byte) 0xB0;
190: byte RETURN = (byte) 0xB1;
191: byte GETSTATIC = (byte) 0xB2;
192: byte PUTSTATIC = (byte) 0xB3;
193: byte GETFIELD = (byte) 0xB4;
194: byte PUTFIELD = (byte) 0xB5;
195: byte INVOKEVIRTUAL = (byte) 0xB6;
196: byte INVOKESPECIAL = (byte) 0xB7;
197: byte INVOKESTATIC = (byte) 0xB8;
198: byte INVOKEINTERFACE = (byte) 0xB9;
199:
200: byte NEW = (byte) 0xBB;
201: byte NEWARRAY = (byte) 0xBC;
202: byte ANEWARRAY = (byte) 0xBD;
203: byte ARRAYLENGTH = (byte) 0xBE;
204: byte ATHROW = (byte) 0xBF;
205: byte CHECKCAST = (byte) 0xC0;
206: byte INSTANCEOF = (byte) 0xC1;
207: byte MONITORENTER = (byte) 0xC2;
208: byte MONITOREXIT = (byte) 0xC3;
209: byte WIDE = (byte) 0xC4;
210: byte MULTIANEWARRAY = (byte) 0xC5;
211: byte IFNULL = (byte) 0xC6;
212: byte IFNONNULL = (byte) 0xC7;
213: byte GOTO_W = (byte) 0xC8;
214: byte JSR_W = (byte) 0xC9;
215: byte BREAKPOINT = (byte) 0xCA;
216: byte LDC_QUICK = (byte) 0xCB;
217: byte LDC_W_QUICK = (byte) 0xCC;
218: byte LDC2_W_QUICK = (byte) 0xCD;
219: byte GETFIELD_QUICK = (byte) 0xCE;
220: byte PUTFIELD_QUICK = (byte) 0xCF;
221: byte GETFIELD2_QUICK = (byte) 0xD0;
222: byte PUTFIELD2_QUICK = (byte) 0xD1;
223: byte GETSTATIC_QUICK = (byte) 0xD2;
224: byte PUTSTATIC_QUICK = (byte) 0xD3;
225: byte GETSTATIC2_QUICK = (byte) 0xD4;
226: byte PUTSTATIC2_QUICK = (byte) 0xD5;
227: byte INVOKEVIRTUAL_QUICK = (byte) 0xD6;
228: byte INVOKENONVIRTUAL_QUICK = (byte) 0xD7;
229: byte INVOKESUPER_QUICK = (byte) 0xD8;
230: byte INVOKESTATIC_QUICK = (byte) 0xD9;
231: byte INVOKEINTERFACE_QUICK = (byte) 0xDA;
232: byte INVOKEVIRTUALOBJECT_QUICK = (byte) 0xDB;
233:
234: byte NEW_QUICK = (byte) 0xDD;
235: byte ANEWARRAY_QUICK = (byte) 0xDE;
236: byte MULTIANEWARRAY_QUICK = (byte) 0xDF;
237: byte CHECKCAST_QUICK = (byte) 0xE0;
238: byte INSTANCEOF_QUICK = (byte) 0xE1;
239: byte INVOKEVIRTUAL_QUICK_W = (byte) 0xE2;
240: byte GETFIELD_QUICK_W = (byte) 0xE3;
241: byte PUTFIELD_QUICK_W = (byte) 0xE4;
242: byte IMPDEP1 = (byte) 0xFE;
243: byte IMPDEP2 = (byte) 0xFF;
244:
245: /**
246: * Types for the NEWARRAY opcode.
247: */
248: byte T_BOOLEAN = 4;
249: byte T_CHAR = 5;
250: byte T_FLOAT = 6;
251: byte T_DOUBLE = 7;
252: byte T_BYTE = 8;
253: byte T_SHORT = 9;
254: byte T_INT = 10;
255: byte T_LONG = 11;
256: }
|