Skip to main content

rust_asm/
opcodes.rs

1pub const ILLEGAL: i16 = -1;
2
3pub const NOP: u8 = 0x00;
4pub const ACONST_NULL: u8 = 0x01;
5pub const ICONST_M1: u8 = 0x02;
6pub const ICONST_0: u8 = 0x03;
7pub const ICONST_1: u8 = 0x04;
8pub const ICONST_2: u8 = 0x05;
9pub const ICONST_3: u8 = 0x06;
10pub const ICONST_4: u8 = 0x07;
11pub const ICONST_5: u8 = 0x08;
12pub const LCONST_0: u8 = 0x09;
13pub const LCONST_1: u8 = 0x0A;
14pub const FCONST_0: u8 = 0x0B;
15pub const FCONST_1: u8 = 0x0C;
16pub const FCONST_2: u8 = 0x0D;
17pub const DCONST_0: u8 = 0x0E;
18pub const DCONST_1: u8 = 0x0F;
19pub const BIPUSH: u8 = 0x10;
20pub const SIPUSH: u8 = 0x11;
21pub const LDC: u8 = 0x12;
22pub const LDC_W: u8 = 0x13;
23pub const LDC2_W: u8 = 0x14;
24pub const ILOAD: u8 = 0x15;
25pub const LLOAD: u8 = 0x16;
26pub const FLOAD: u8 = 0x17;
27pub const DLOAD: u8 = 0x18;
28pub const ALOAD: u8 = 0x19;
29pub const ILOAD_0: u8 = 0x1A;
30pub const ILOAD_1: u8 = 0x1B;
31pub const ILOAD_2: u8 = 0x1C;
32pub const ILOAD_3: u8 = 0x1D;
33pub const LLOAD_0: u8 = 0x1E;
34pub const LLOAD_1: u8 = 0x1F;
35pub const LLOAD_2: u8 = 0x20;
36pub const LLOAD_3: u8 = 0x21;
37pub const FLOAD_0: u8 = 0x22;
38pub const FLOAD_1: u8 = 0x23;
39pub const FLOAD_2: u8 = 0x24;
40pub const FLOAD_3: u8 = 0x25;
41pub const DLOAD_0: u8 = 0x26;
42pub const DLOAD_1: u8 = 0x27;
43pub const DLOAD_2: u8 = 0x28;
44pub const DLOAD_3: u8 = 0x29;
45pub const ALOAD_0: u8 = 0x2A;
46pub const ALOAD_1: u8 = 0x2B;
47pub const ALOAD_2: u8 = 0x2C;
48pub const ALOAD_3: u8 = 0x2D;
49pub const IALOAD: u8 = 0x2E;
50pub const LALOAD: u8 = 0x2F;
51pub const FALOAD: u8 = 0x30;
52pub const DALOAD: u8 = 0x31;
53pub const AALOAD: u8 = 0x32;
54pub const BALOAD: u8 = 0x33;
55pub const CALOAD: u8 = 0x34;
56pub const SALOAD: u8 = 0x35;
57pub const ISTORE: u8 = 0x36;
58pub const LSTORE: u8 = 0x37;
59pub const FSTORE: u8 = 0x38;
60pub const DSTORE: u8 = 0x39;
61pub const ASTORE: u8 = 0x3A;
62pub const ISTORE_0: u8 = 0x3B;
63pub const ISTORE_1: u8 = 0x3C;
64pub const ISTORE_2: u8 = 0x3D;
65pub const ISTORE_3: u8 = 0x3E;
66pub const LSTORE_0: u8 = 0x3F;
67pub const LSTORE_1: u8 = 0x40;
68pub const LSTORE_2: u8 = 0x41;
69pub const LSTORE_3: u8 = 0x42;
70pub const FSTORE_0: u8 = 0x43;
71pub const FSTORE_1: u8 = 0x44;
72pub const FSTORE_2: u8 = 0x45;
73pub const FSTORE_3: u8 = 0x46;
74pub const DSTORE_0: u8 = 0x47;
75pub const DSTORE_1: u8 = 0x48;
76pub const DSTORE_2: u8 = 0x49;
77pub const DSTORE_3: u8 = 0x4A;
78pub const ASTORE_0: u8 = 0x4B;
79pub const ASTORE_1: u8 = 0x4C;
80pub const ASTORE_2: u8 = 0x4D;
81pub const ASTORE_3: u8 = 0x4E;
82pub const IASTORE: u8 = 0x4F;
83pub const LASTORE: u8 = 0x50;
84pub const FASTORE: u8 = 0x51;
85pub const DASTORE: u8 = 0x52;
86pub const AASTORE: u8 = 0x53;
87pub const BASTORE: u8 = 0x54;
88pub const CASTORE: u8 = 0x55;
89pub const SASTORE: u8 = 0x56;
90pub const POP: u8 = 0x57;
91pub const POP2: u8 = 0x58;
92pub const DUP: u8 = 0x59;
93pub const DUP_X1: u8 = 0x5A;
94pub const DUP_X2: u8 = 0x5B;
95pub const DUP2: u8 = 0x5C;
96pub const DUP2_X1: u8 = 0x5D;
97pub const DUP2_X2: u8 = 0x5E;
98pub const SWAP: u8 = 0x5F;
99pub const IADD: u8 = 0x60;
100pub const LADD: u8 = 0x61;
101pub const FADD: u8 = 0x62;
102pub const DADD: u8 = 0x63;
103pub const ISUB: u8 = 0x64;
104pub const LSUB: u8 = 0x65;
105pub const FSUB: u8 = 0x66;
106pub const DSUB: u8 = 0x67;
107pub const IMUL: u8 = 0x68;
108pub const LMUL: u8 = 0x69;
109pub const FMUL: u8 = 0x6A;
110pub const DMUL: u8 = 0x6B;
111pub const IDIV: u8 = 0x6C;
112pub const LDIV: u8 = 0x6D;
113pub const FDIV: u8 = 0x6E;
114pub const DDIV: u8 = 0x6F;
115pub const IREM: u8 = 0x70;
116pub const LREM: u8 = 0x71;
117pub const FREM: u8 = 0x72;
118pub const DREM: u8 = 0x73;
119pub const INEG: u8 = 0x74;
120pub const LNEG: u8 = 0x75;
121pub const FNEG: u8 = 0x76;
122pub const DNEG: u8 = 0x77;
123pub const ISHL: u8 = 0x78;
124pub const LSHL: u8 = 0x79;
125pub const ISHR: u8 = 0x7A;
126pub const LSHR: u8 = 0x7B;
127pub const IUSHR: u8 = 0x7C;
128pub const LUSHR: u8 = 0x7D;
129pub const IAND: u8 = 0x7E;
130pub const LAND: u8 = 0x7F;
131pub const IOR: u8 = 0x80;
132pub const LOR: u8 = 0x81;
133pub const IXOR: u8 = 0x82;
134pub const LXOR: u8 = 0x83;
135pub const IINC: u8 = 0x84;
136pub const I2L: u8 = 0x85;
137pub const I2F: u8 = 0x86;
138pub const I2D: u8 = 0x87;
139pub const L2I: u8 = 0x88;
140pub const L2F: u8 = 0x89;
141pub const L2D: u8 = 0x8A;
142pub const F2I: u8 = 0x8B;
143pub const F2L: u8 = 0x8C;
144pub const F2D: u8 = 0x8D;
145pub const D2I: u8 = 0x8E;
146pub const D2L: u8 = 0x8F;
147pub const D2F: u8 = 0x90;
148pub const I2B: u8 = 0x91;
149pub const I2C: u8 = 0x92;
150pub const I2S: u8 = 0x93;
151pub const LCMP: u8 = 0x94;
152pub const FCMPL: u8 = 0x95;
153pub const FCMPG: u8 = 0x96;
154pub const DCMPL: u8 = 0x97;
155pub const DCMPG: u8 = 0x98;
156pub const IFEQ: u8 = 0x99;
157pub const IFNE: u8 = 0x9A;
158pub const IFLT: u8 = 0x9B;
159pub const IFGE: u8 = 0x9C;
160pub const IFGT: u8 = 0x9D;
161pub const IFLE: u8 = 0x9E;
162pub const IF_ICMPEQ: u8 = 0x9F;
163pub const IF_ICMPNE: u8 = 0xA0;
164pub const IF_ICMPLT: u8 = 0xA1;
165pub const IF_ICMPGE: u8 = 0xA2;
166pub const IF_ICMPGT: u8 = 0xA3;
167pub const IF_ICMPLE: u8 = 0xA4;
168pub const IF_ACMPEQ: u8 = 0xA5;
169pub const IF_ACMPNE: u8 = 0xA6;
170pub const GOTO: u8 = 0xA7;
171pub const JSR: u8 = 0xA8;
172pub const RET: u8 = 0xA9;
173pub const TABLESWITCH: u8 = 0xAA;
174pub const LOOKUPSWITCH: u8 = 0xAB;
175pub const IRETURN: u8 = 0xAC;
176pub const LRETURN: u8 = 0xAD;
177pub const FRETURN: u8 = 0xAE;
178pub const DRETURN: u8 = 0xAF;
179pub const ARETURN: u8 = 0xB0;
180pub const RETURN: u8 = 0xB1;
181pub const GETSTATIC: u8 = 0xB2;
182pub const PUTSTATIC: u8 = 0xB3;
183pub const GETFIELD: u8 = 0xB4;
184pub const PUTFIELD: u8 = 0xB5;
185pub const INVOKEVIRTUAL: u8 = 0xB6;
186pub const INVOKESPECIAL: u8 = 0xB7;
187pub const INVOKESTATIC: u8 = 0xB8;
188pub const INVOKEINTERFACE: u8 = 0xB9;
189pub const INVOKEDYNAMIC: u8 = 0xBA;
190pub const NEW: u8 = 0xBB;
191pub const NEWARRAY: u8 = 0xBC;
192pub const ANEWARRAY: u8 = 0xBD;
193pub const ARRAYLENGTH: u8 = 0xBE;
194pub const ATHROW: u8 = 0xBF;
195pub const CHECKCAST: u8 = 0xC0;
196pub const INSTANCEOF: u8 = 0xC1;
197pub const MONITORENTER: u8 = 0xC2;
198pub const MONITOREXIT: u8 = 0xC3;
199pub const WIDE: u8 = 0xC4;
200pub const MULTIANEWARRAY: u8 = 0xC5;
201pub const IFNULL: u8 = 0xC6;
202pub const IFNONNULL: u8 = 0xC7;
203pub const GOTO_W: u8 = 0xC8;
204pub const JSR_W: u8 = 0xC9;
205pub const BREAKPOINT: u8 = 0xCA;
206pub const IMPDEP1: u8 = 0xFE;
207pub const IMPDEP2: u8 = 0xFF;
208pub const NUMBER_OF_JAVA_CODES: u8 = BREAKPOINT + 1;
209
210// Internal hotspot opcode
211// https://github.com/openjdk/jdk/blob/759fe58877ac75a9157e831cc5e54aaa70250223/src/hotspot/share/interpreter/bytecodes.hpp#L250
212pub const FAST_AGETFIELD: u8 = NUMBER_OF_JAVA_CODES;
213pub const FAST_BGETFIELD: u8 = FAST_AGETFIELD + 1;
214pub const FAST_CGETFIELD: u8 = FAST_BGETFIELD + 1;
215pub const FAST_DGETFIELD: u8 = FAST_CGETFIELD + 1;
216pub const FAST_FGETFIELD: u8 = FAST_DGETFIELD + 1;
217pub const FAST_IGETFIELD: u8 = FAST_FGETFIELD + 1;
218pub const FAST_LGETFIELD: u8 = FAST_IGETFIELD + 1;
219pub const FAST_SGETFIELD: u8 = FAST_LGETFIELD + 1;
220
221pub const FAST_APUTFIELD: u8 = FAST_SGETFIELD + 1;
222pub const FAST_BPUTFIELD: u8 = FAST_APUTFIELD + 1;
223pub const FAST_ZPUTFIELD: u8 = FAST_BPUTFIELD + 1;
224pub const FAST_CPUTFIELD: u8 = FAST_ZPUTFIELD + 1;
225pub const FAST_DPUTFIELD: u8 = FAST_CPUTFIELD + 1;
226pub const FAST_FPUTFIELD: u8 = FAST_DPUTFIELD + 1;
227pub const FAST_IPUTFIELD: u8 = FAST_FPUTFIELD + 1;
228pub const FAST_LPUTFIELD: u8 = FAST_IPUTFIELD + 1;
229pub const FAST_SPUTFIELD: u8 = FAST_LPUTFIELD + 1;
230
231pub const FAST_ALOAD_0: u8 = FAST_SPUTFIELD + 1;
232pub const FAST_IACCESS_0: u8 = FAST_ALOAD_0 + 1;
233pub const FAST_AACCESS_0: u8 = FAST_IACCESS_0 + 1;
234pub const FAST_FACCESS_0: u8 = FAST_AACCESS_0 + 1;
235
236pub const FAST_ILOAD: u8 = FAST_FACCESS_0 + 1;
237pub const FAST_ILOAD2: u8 = FAST_ILOAD + 1;
238pub const FAST_ICALOAD: u8 = FAST_ILOAD2 + 1;
239
240pub const FAST_INVOKEVFINAL: u8 = FAST_ICALOAD + 1;
241pub const FAST_LINEARSWITCH: u8 = FAST_INVOKEVFINAL + 1;
242pub const FAST_BINARYSWITCH: u8 = FAST_LINEARSWITCH + 1;
243
244pub const FAST_ALDC: u8 = FAST_BINARYSWITCH + 1;
245pub const FAST_ALDC_W: u8 = FAST_ALDC + 1;
246
247pub const RETURN_REGISTER_FINALIZER: u8 = FAST_ALDC_W + 1;
248pub const INVOKEHANDLE: u8 = RETURN_REGISTER_FINALIZER + 1;
249
250pub const NOFAST_GETFIELD: u8 = INVOKEHANDLE + 1;
251pub const NOFAST_PUTFIELD: u8 = NOFAST_GETFIELD + 1;
252pub const NOFAST_ALOAD_0: u8 = NOFAST_PUTFIELD + 1;
253pub const NOFAST_ILOAD: u8 = NOFAST_ALOAD_0 + 1;
254
255pub const SHOULDNOTREACHHERE: u8 = NOFAST_ILOAD + 1;
256pub const NUMBER_OF_CODES: u8 = SHOULDNOTREACHHERE + 1;
257
258#[must_use]
259pub const fn to_name(opcode: u8) -> &'static str {
260    match opcode {
261        NOP => "NOP",
262        ACONST_NULL => "ACONST_NULL",
263        ICONST_M1 => "ICONST_M1",
264        ICONST_0 => "ICONST_0",
265        ICONST_1 => "ICONST_1",
266        ICONST_2 => "ICONST_2",
267        ICONST_3 => "ICONST_3",
268        ICONST_4 => "ICONST_4",
269        ICONST_5 => "ICONST_5",
270        LCONST_0 => "LCONST_0",
271        LCONST_1 => "LCONST_1",
272        FCONST_0 => "FCONST_0",
273        FCONST_1 => "FCONST_1",
274        FCONST_2 => "FCONST_2",
275        DCONST_0 => "DCONST_0",
276        DCONST_1 => "DCONST_1",
277        BIPUSH => "BIPUSH",
278        SIPUSH => "SIPUSH",
279        LDC => "LDC",
280        LDC_W => "LDC_W",
281        LDC2_W => "LDC2_W",
282        ILOAD => "ILOAD",
283        LLOAD => "LLOAD",
284        FLOAD => "FLOAD",
285        DLOAD => "DLOAD",
286        ALOAD => "ALOAD",
287        ILOAD_0 => "ILOAD_0",
288        ILOAD_1 => "ILOAD_1",
289        ILOAD_2 => "ILOAD_2",
290        ILOAD_3 => "ILOAD_3",
291        LLOAD_0 => "LLOAD_0",
292        LLOAD_1 => "LLOAD_1",
293        LLOAD_2 => "LLOAD_2",
294        LLOAD_3 => "LLOAD_3",
295        FLOAD_0 => "FLOAD_0",
296        FLOAD_1 => "FLOAD_1",
297        FLOAD_2 => "FLOAD_2",
298        FLOAD_3 => "FLOAD_3",
299        DLOAD_0 => "DLOAD_0",
300        DLOAD_1 => "DLOAD_1",
301        DLOAD_2 => "DLOAD_2",
302        DLOAD_3 => "DLOAD_3",
303        ALOAD_0 => "ALOAD_0",
304        ALOAD_1 => "ALOAD_1",
305        ALOAD_2 => "ALOAD_2",
306        ALOAD_3 => "ALOAD_3",
307        IALOAD => "IALOAD",
308        LALOAD => "LALOAD",
309        FALOAD => "FALOAD",
310        DALOAD => "DALOAD",
311        AALOAD => "AALOAD",
312        BALOAD => "BALOAD",
313        CALOAD => "CALOAD",
314        SALOAD => "SALOAD",
315        ISTORE => "ISTORE",
316        LSTORE => "LSTORE",
317        FSTORE => "FSTORE",
318        DSTORE => "DSTORE",
319        ASTORE => "ASTORE",
320        ISTORE_0 => "ISTORE_0",
321        ISTORE_1 => "ISTORE_1",
322        ISTORE_2 => "ISTORE_2",
323        ISTORE_3 => "ISTORE_3",
324        LSTORE_0 => "LSTORE_0",
325        LSTORE_1 => "LSTORE_1",
326        LSTORE_2 => "LSTORE_2",
327        LSTORE_3 => "LSTORE_3",
328        FSTORE_0 => "FSTORE_0",
329        FSTORE_1 => "FSTORE_1",
330        FSTORE_2 => "FSTORE_2",
331        FSTORE_3 => "FSTORE_3",
332        DSTORE_0 => "DSTORE_0",
333        DSTORE_1 => "DSTORE_1",
334        DSTORE_2 => "DSTORE_2",
335        DSTORE_3 => "DSTORE_3",
336        ASTORE_0 => "ASTORE_0",
337        ASTORE_1 => "ASTORE_1",
338        ASTORE_2 => "ASTORE_2",
339        ASTORE_3 => "ASTORE_3",
340        IASTORE => "IASTORE",
341        LASTORE => "LASTORE",
342        FASTORE => "FASTORE",
343        DASTORE => "DASTORE",
344        AASTORE => "AASTORE",
345        BASTORE => "BASTORE",
346        CASTORE => "CASTORE",
347        SASTORE => "SASTORE",
348        POP => "POP",
349        POP2 => "POP2",
350        DUP => "DUP",
351        DUP_X1 => "DUP_X1",
352        DUP_X2 => "DUP_X2",
353        DUP2 => "DUP2",
354        DUP2_X1 => "DUP2_X1",
355        DUP2_X2 => "DUP2_X2",
356        SWAP => "SWAP",
357        IADD => "IADD",
358        LADD => "LADD",
359        FADD => "FADD",
360        DADD => "DADD",
361        ISUB => "ISUB",
362        LSUB => "LSUB",
363        FSUB => "FSUB",
364        DSUB => "DSUB",
365        IMUL => "IMUL",
366        LMUL => "LMUL",
367        FMUL => "FMUL",
368        DMUL => "DMUL",
369        IDIV => "IDIV",
370        LDIV => "LDIV",
371        FDIV => "FDIV",
372        DDIV => "DDIV",
373        IREM => "IREM",
374        LREM => "LREM",
375        FREM => "FREM",
376        DREM => "DREM",
377        INEG => "INEG",
378        LNEG => "LNEG",
379        FNEG => "FNEG",
380        DNEG => "DNEG",
381        ISHL => "ISHL",
382        LSHL => "LSHL",
383        ISHR => "ISHR",
384        LSHR => "LSHR",
385        IUSHR => "IUSHR",
386        LUSHR => "LUSHR",
387        IAND => "IAND",
388        LAND => "LAND",
389        IOR => "IOR",
390        LOR => "LOR",
391        IXOR => "IXOR",
392        LXOR => "LXOR",
393        IINC => "IINC",
394        I2L => "I2L",
395        I2F => "I2F",
396        I2D => "I2D",
397        L2I => "L2I",
398        L2F => "L2F",
399        L2D => "L2D",
400        F2I => "F2I",
401        F2L => "F2L",
402        F2D => "F2D",
403        D2I => "D2I",
404        D2L => "D2L",
405        D2F => "D2F",
406        I2B => "I2B",
407        I2C => "I2C",
408        I2S => "I2S",
409        LCMP => "LCMP",
410        FCMPL => "FCMPL",
411        FCMPG => "FCMPG",
412        DCMPL => "DCMPL",
413        DCMPG => "DCMPG",
414        IFEQ => "IFEQ",
415        IFNE => "IFNE",
416        IFLT => "IFLT",
417        IFGE => "IFGE",
418        IFGT => "IFGT",
419        IFLE => "IFLE",
420        IF_ICMPEQ => "IF_ICMPEQ",
421        IF_ICMPNE => "IF_ICMPNE",
422        IF_ICMPLT => "IF_ICMPLT",
423        IF_ICMPGE => "IF_ICMPGE",
424        IF_ICMPGT => "IF_ICMPGT",
425        IF_ICMPLE => "IF_ICMPLE",
426        IF_ACMPEQ => "IF_ACMPEQ",
427        IF_ACMPNE => "IF_ACMPNE",
428        GOTO => "GOTO",
429        JSR => "JSR",
430        RET => "RET",
431        TABLESWITCH => "TABLESWITCH",
432        LOOKUPSWITCH => "LOOKUPSWITCH",
433        IRETURN => "IRETURN",
434        LRETURN => "LRETURN",
435        FRETURN => "FRETURN",
436        DRETURN => "DRETURN",
437        ARETURN => "ARETURN",
438        RETURN => "RETURN",
439        GETSTATIC => "GETSTATIC",
440        PUTSTATIC => "PUTSTATIC",
441        GETFIELD => "GETFIELD",
442        PUTFIELD => "PUTFIELD",
443        INVOKEVIRTUAL => "INVOKEVIRTUAL",
444        INVOKESPECIAL => "INVOKESPECIAL",
445        INVOKESTATIC => "INVOKESTATIC",
446        INVOKEINTERFACE => "INVOKEINTERFACE",
447        INVOKEDYNAMIC => "INVOKEDYNAMIC",
448        NEW => "NEW",
449        NEWARRAY => "NEWARRAY",
450        ANEWARRAY => "ANEWARRAY",
451        ARRAYLENGTH => "ARRAYLENGTH",
452        ATHROW => "ATHROW",
453        CHECKCAST => "CHECKCAST",
454        INSTANCEOF => "INSTANCEOF",
455        MONITORENTER => "MONITORENTER",
456        MONITOREXIT => "MONITOREXIT",
457        WIDE => "WIDE",
458        MULTIANEWARRAY => "MULTIANEWARRAY",
459        IFNULL => "IFNULL",
460        IFNONNULL => "IFNONNULL",
461        GOTO_W => "GOTO_W",
462        JSR_W => "JSR_W",
463        BREAKPOINT => "BREAKPOINT",
464        IMPDEP1 => "IMPDEP1",
465        IMPDEP2 => "IMPDEP2",
466        FAST_AGETFIELD => "FAST_AGETFIELD",
467        FAST_BGETFIELD => "FAST_BGETFIELD",
468        FAST_CGETFIELD => "FAST_CGETFIELD",
469        FAST_DGETFIELD => "FAST_DGETFIELD",
470        FAST_FGETFIELD => "FAST_FGETFIELD",
471        FAST_IGETFIELD => "FAST_IGETFIELD",
472        FAST_LGETFIELD => "FAST_LGETFIELD",
473        FAST_SGETFIELD => "FAST_SGETFIELD",
474        FAST_APUTFIELD => "FAST_APUTFIELD",
475        FAST_BPUTFIELD => "FAST_BPUTFIELD",
476        FAST_ZPUTFIELD => "FAST_ZPUTFIELD",
477        FAST_CPUTFIELD => "FAST_CPUTFIELD",
478        FAST_DPUTFIELD => "FAST_DPUTFIELD",
479        FAST_FPUTFIELD => "FAST_FPUTFIELD",
480        FAST_IPUTFIELD => "FAST_IPUTFIELD",
481        FAST_LPUTFIELD => "FAST_LPUTFIELD",
482        FAST_SPUTFIELD => "FAST_SPUTFIELD",
483        FAST_ALOAD_0 => "FAST_ALOAD_0",
484        FAST_IACCESS_0 => "FAST_IACCESS_0",
485        FAST_AACCESS_0 => "FAST_AACCESS_0",
486        FAST_FACCESS_0 => "FAST_FACCESS_0",
487        FAST_ILOAD => "FAST_ILOAD",
488        FAST_ILOAD2 => "FAST_ILOAD2",
489        FAST_ICALOAD => "FAST_ICALOAD",
490        FAST_INVOKEVFINAL => "FAST_INVOKEVFINAL",
491        FAST_LINEARSWITCH => "FAST_LINEARSWITCH",
492        FAST_BINARYSWITCH => "FAST_BINARYSWITCH",
493        FAST_ALDC => "FAST_ALDC",
494        FAST_ALDC_W => "FAST_ALDC_W",
495        RETURN_REGISTER_FINALIZER => "RETURN_REGISTER_FINALIZER",
496        INVOKEHANDLE => "INVOKEHANDLE",
497        NOFAST_GETFIELD => "NOFAST_GETFIELD",
498        NOFAST_PUTFIELD => "NOFAST_PUTFIELD",
499        NOFAST_ALOAD_0 => "NOFAST_ALOAD_0",
500        NOFAST_ILOAD => "NOFAST_ILOAD",
501        SHOULDNOTREACHHERE => "SHOULDNOTREACHHERE",
502        _ => "UNKNOWN",
503    }
504}