1b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato/*
2b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * ProGuard -- shrinking, optimization, obfuscation, and preverification
3b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *             of Java bytecode.
4b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
52270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
6b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
7b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * This program is free software; you can redistribute it and/or modify it
8b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * under the terms of the GNU General Public License as published by the Free
9b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * Software Foundation; either version 2 of the License, or (at your option)
10b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * any later version.
11b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
12b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * This program is distributed in the hope that it will be useful, but WITHOUT
13b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * more details.
16b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
17b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * You should have received a copy of the GNU General Public License along
18b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * with this program; if not, write to the Free Software Foundation, Inc.,
19b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato */
21b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratopackage proguard.optimize.peephole;
22b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
23b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wangimport proguard.classfile.*;
24b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport proguard.classfile.constant.*;
25b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoimport proguard.classfile.instruction.*;
26b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wangimport proguard.classfile.visitor.ClassPrinter;
27b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
28b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato/**
29b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * This class contains a set of instruction sequences and their suggested
30b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * replacements.
31b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato *
32b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * @see InstructionSequencesReplacer
33b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang * @see InstructionSequenceReplacer
34b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato * @author Eric Lafortune
35b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato */
36b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratopublic class InstructionSequenceConstants
37b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato{
38b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int X = InstructionSequenceReplacer.X;
39b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int Y = InstructionSequenceReplacer.Y;
40b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int Z = InstructionSequenceReplacer.Z;
41b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
42b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int A = InstructionSequenceReplacer.A;
43b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int B = InstructionSequenceReplacer.B;
44b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int C = InstructionSequenceReplacer.C;
45b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int D = InstructionSequenceReplacer.D;
46b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
47b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int STRING_A_LENGTH  = InstructionSequenceReplacer.STRING_A_LENGTH;
48b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int BOOLEAN_A_STRING = InstructionSequenceReplacer.BOOLEAN_A_STRING;
49b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int CHAR_A_STRING    = InstructionSequenceReplacer.CHAR_A_STRING;
50b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int INT_A_STRING     = InstructionSequenceReplacer.INT_A_STRING;
51b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int LONG_A_STRING    = InstructionSequenceReplacer.LONG_A_STRING;
52b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int FLOAT_A_STRING   = InstructionSequenceReplacer.FLOAT_A_STRING;
53b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int DOUBLE_A_STRING  = InstructionSequenceReplacer.DOUBLE_A_STRING;
54b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int STRING_A_STRING  = InstructionSequenceReplacer.STRING_A_STRING;
55b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int BOOLEAN_B_STRING = InstructionSequenceReplacer.BOOLEAN_B_STRING;
56b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int CHAR_B_STRING    = InstructionSequenceReplacer.CHAR_B_STRING;
57b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int INT_B_STRING     = InstructionSequenceReplacer.INT_B_STRING;
58b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int LONG_B_STRING    = InstructionSequenceReplacer.LONG_B_STRING;
59b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int FLOAT_B_STRING   = InstructionSequenceReplacer.FLOAT_B_STRING;
60b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int DOUBLE_B_STRING  = InstructionSequenceReplacer.DOUBLE_B_STRING;
61b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int STRING_B_STRING  = InstructionSequenceReplacer.STRING_B_STRING;
62b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
63b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_32768                                   =   0;
64b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_65536                                   =   1;
65b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_16777216                                =   2;
66b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
67b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//  private static final int I_0x000000ff
68b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_0x0000ff00                              =   3;
69b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_0x00ff0000                              =   4;
70b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_0xff000000                              =   5;
71b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_0x0000ffff                              =   6;
72b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int I_0xffff0000                              =   7;
73b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
74b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_M1                                      =   8;
75b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_2                                       =   9;
76b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_4                                       =  10;
77b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_8                                       =  11;
78b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_16                                      =  12;
79b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_32                                      =  13;
80b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_64                                      =  14;
81b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_128                                     =  15;
82b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_256                                     =  16;
83b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_512                                     =  17;
84b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_1024                                    =  18;
85b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_2048                                    =  19;
86b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_4096                                    =  20;
87b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_8192                                    =  21;
88b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_16384                                   =  22;
89b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_32768                                   =  23;
90b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_65536                                   =  24;
91b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_16777216                                =  25;
92b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_4294967296                              =  26;
93b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
94b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_0x00000000ffffffff                      =  27;
95b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int L_0xffffffff00000000                      =  28;
96b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
97b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int F_M1                                      =  29;
98b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
99b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int D_M1                                      =  30;
100b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
101b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int STRING_EMPTY                              =  31;
102b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
103b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int FIELD_I                                   =  32; // Implicitly uses X and Y.
104b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int FIELD_L                                   =  33; // Implicitly uses X and Y.
105b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int FIELD_F                                   =  34; // Implicitly uses X and Y.
106b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int FIELD_D                                   =  35; // Implicitly uses X and Y.
107b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
108b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_EQUALS                      =  36;
109b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_LENGTH                      =  37;
110b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_Z                   =  38;
111b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_C                   =  39;
112b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_I                   =  40;
113b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_J                   =  41;
114b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_F                   =  42;
115b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_D                   =  43;
116b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRING_VALUEOF_OBJECT              =  44;
117b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_INIT                  =  45;
118b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_INIT_STRING           =  46;
119b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_Z              =  47;
120b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_C              =  48;
121b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_I              =  49;
122b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_J              =  50;
123b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_F              =  51;
124b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_D              =  52;
125b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_STRING         =  53;
126b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_APPEND_OBJECT         =  54;
127b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_LENGTH                =  55;
128b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUFFER_TOSTRING              =  56;
129b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_INIT                 =  57;
130b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_INIT_STRING          =  58;
131b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_Z             =  59;
132b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_C             =  60;
133b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_I             =  61;
134b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_J             =  62;
135b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_F             =  63;
136b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_D             =  64;
137b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_STRING        =  65;
138b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_APPEND_OBJECT        =  66;
139b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_LENGTH               =  67;
140b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int METHOD_STRINGBUILDER_TOSTRING             =  68;
141b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
142b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int CLASS_STRING                              =  69;
143b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int CLASS_STRINGBUFFER                        =  70;
144b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int CLASS_STRINGBUILDER                       =  71;
145b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
146b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_I                           =  72; // Implicitly uses Y.
147b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_L                           =  73; // Implicitly uses Y.
148b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_F                           =  74; // Implicitly uses Y.
149b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_D                           =  75; // Implicitly uses Y.
150b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
151b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_EQUALS                      =  76;
152b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_LENGTH                      =  77;
153b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_Z                   =  78;
154b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_C                   =  79;
155b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_I                   =  80;
156b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_J                   =  81;
157b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_F                   =  82;
158b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_D                   =  83;
159b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_VALUEOF_OBJECT              =  84;
160b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_INIT                        =  85;
161b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_INIT_STRING                 =  86;
162b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_Z_STRINGBUFFER       =  87;
163b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_C_STRINGBUFFER       =  88;
164b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_I_STRINGBUFFER       =  89;
165b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_J_STRINGBUFFER       =  90;
166b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_F_STRINGBUFFER       =  91;
167b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_D_STRINGBUFFER       =  92;
168b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_STRING_STRINGBUFFER  =  93;
169b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_OBJECT_STRINGBUFFER  =  94;
170b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_Z_STRINGBUILDER      =  95;
171b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_C_STRINGBUILDER      =  96;
172b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_I_STRINGBUILDER      =  97;
173b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_J_STRINGBUILDER      =  98;
174b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_F_STRINGBUILDER      =  99;
175b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_D_STRINGBUILDER      = 100;
176b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_STRING_STRINGBUILDER = 101;
177b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_APPEND_OBJECT_STRINGBUILDER = 102;
178b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int NAME_AND_TYPE_TOSTRING                    = 103;
179b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
180b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_EMPTY                                = 104;
181b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_I                                    = 105;
182b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_L                                    = 106;
183b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_F                                    = 107;
184b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_D                                    = 108;
185b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_STRING                               = 109;
186b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_STRINGBUFFER                         = 110;
187b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_STRINGBUILDER                        = 111;
188b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_EQUALS                               = 112;
189b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_OBJECT_Z                             = 113;
190b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_LENGTH                               = 114;
191b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8__I                                   = 115;
192b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_VALUEOF                              = 116;
193b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_Z_STRING                             = 117;
194b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_C_STRING                             = 118;
195b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_I_STRING                             = 119;
196b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_J_STRING                             = 120;
197b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_F_STRING                             = 121;
198b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_D_STRING                             = 122;
199b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_OBJECT_STRING                        = 123;
200b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_INIT                                 = 124;
201b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8__VOID                                = 125;
202b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_STRING_VOID                          = 126;
203b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_TOSTRING                             = 127;
204b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8__STRING                              = 128;
205b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_APPEND                               = 129;
206b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_Z_STRINGBUFFER                       = 130;
207b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_C_STRINGBUFFER                       = 131;
208b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_I_STRINGBUFFER                       = 132;
209b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_J_STRINGBUFFER                       = 133;
210b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_F_STRINGBUFFER                       = 134;
211b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_D_STRINGBUFFER                       = 135;
212b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_STRING_STRINGBUFFER                  = 136;
213b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_OBJECT_STRINGBUFFER                  = 137;
214b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_Z_STRINGBUILDER                      = 138;
215b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_C_STRINGBUILDER                      = 139;
216b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_I_STRINGBUILDER                      = 140;
217b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_J_STRINGBUILDER                      = 141;
218b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_F_STRINGBUILDER                      = 142;
219b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_D_STRINGBUILDER                      = 143;
220b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_STRING_STRINGBUILDER                 = 144;
221b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int UTF8_OBJECT_STRINGBUILDER                 = 145;
222b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
223b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    private static final int SENTINEL                                  = 146;
224b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
225b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
226b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public static final Constant[] CONSTANTS = new Constant[]
227b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
228b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(32768),
229b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(65536),
230b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(16777216),
231b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
232b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(0x0000ff00),
233b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(0x00ff0000),
234b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(0xff000000),
235b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(0x0000ffff),
236b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new IntegerConstant(0xffff0000),
237b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
238b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(-1L),
239b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(2L),
240b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(4L),
241b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(8L),
242b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(16L),
243b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(32L),
244b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(64L),
245b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(128L),
246b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(256L),
247b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(512L),
248b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(1024L),
249b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(2048L),
250b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(4096L),
251b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(8192L),
252b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(16384L),
253b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(32768L),
254b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(65536L),
255b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(16777216L),
256b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(4294967296L),
257b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
258b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(0x00000000ffffffffL),
259b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new LongConstant(0xffffffff00000000L),
260b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
261b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new FloatConstant(-1f),
262b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
263b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new DoubleConstant(-1d),
264b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
265b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new StringConstant(UTF8_EMPTY, null, null),
266b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
267b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new FieldrefConstant(X, NAME_AND_TYPE_I, null, null),
268b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new FieldrefConstant(X, NAME_AND_TYPE_L, null, null),
269b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new FieldrefConstant(X, NAME_AND_TYPE_F, null, null),
270b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new FieldrefConstant(X, NAME_AND_TYPE_D, null, null),
271b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
272b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_EQUALS, null, null),
273b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_LENGTH, null, null),
274b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_Z, null, null),
275b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_C, null, null),
276b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_I, null, null),
277b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_J, null, null),
278b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_F, null, null),
279b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_D, null, null),
280b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRING,        NAME_AND_TYPE_VALUEOF_OBJECT, null, null),
281b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_INIT, null, null),
282b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_INIT_STRING, null, null),
283b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_Z_STRINGBUFFER, null, null),
284b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_C_STRINGBUFFER, null, null),
285b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_I_STRINGBUFFER, null, null),
286b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_J_STRINGBUFFER, null, null),
287b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_F_STRINGBUFFER, null, null),
288b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_D_STRINGBUFFER, null, null),
289b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_STRING_STRINGBUFFER, null, null),
290b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_APPEND_OBJECT_STRINGBUFFER, null, null),
291b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_LENGTH, null, null),
292b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUFFER,  NAME_AND_TYPE_TOSTRING, null, null),
293b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_INIT, null, null),
294b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_INIT_STRING, null, null),
295b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_Z_STRINGBUILDER, null, null),
296b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_C_STRINGBUILDER, null, null),
297b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_I_STRINGBUILDER, null, null),
298b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_J_STRINGBUILDER, null, null),
299b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_F_STRINGBUILDER, null, null),
300b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_D_STRINGBUILDER, null, null),
301b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_STRING_STRINGBUILDER, null, null),
302b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_OBJECT_STRINGBUILDER, null, null),
303b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_LENGTH, null, null),
304b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_TOSTRING, null, null),
305b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
306b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new ClassConstant(UTF8_STRING,  null),
307b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new ClassConstant(UTF8_STRINGBUFFER,  null),
308b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new ClassConstant(UTF8_STRINGBUILDER, null),
309b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
310b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(Y, UTF8_I),
311b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(Y, UTF8_L),
312b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(Y, UTF8_F),
313b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(Y, UTF8_D),
314b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_EQUALS, UTF8_OBJECT_Z),
315b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_LENGTH, UTF8__I),
316b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_Z_STRING),
317b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_C_STRING),
318b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_I_STRING),
319b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_J_STRING),
320b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_F_STRING),
321b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_D_STRING),
322b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_VALUEOF, UTF8_OBJECT_STRING),
323b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_INIT, UTF8__VOID),
324b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_INIT, UTF8_STRING_VOID),
325b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_Z_STRINGBUFFER),
326b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_C_STRINGBUFFER),
327b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_I_STRINGBUFFER),
328b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_J_STRINGBUFFER),
329b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_F_STRINGBUFFER),
330b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_D_STRINGBUFFER),
331b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_STRING_STRINGBUFFER),
332b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_OBJECT_STRINGBUFFER),
333b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_Z_STRINGBUILDER),
334b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_C_STRINGBUILDER),
335b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_I_STRINGBUILDER),
336b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_J_STRINGBUILDER),
337b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_F_STRINGBUILDER),
338b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_D_STRINGBUILDER),
339b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_STRING_STRINGBUILDER),
340b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_APPEND, UTF8_OBJECT_STRINGBUILDER),
341b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new NameAndTypeConstant(UTF8_TOSTRING, UTF8__STRING),
342b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
343b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        new Utf8Constant(""),
344b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new Utf8Constant("I"),
345b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new Utf8Constant("J"),
346b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new Utf8Constant("F"),
347b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        new Utf8Constant("D"),
3482270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.NAME_JAVA_LANG_STRING),
3492270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.NAME_JAVA_LANG_STRING_BUFFER),
3502270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.NAME_JAVA_LANG_STRING_BUILDER),
3512270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_NAME_EQUALS),
3522270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_EQUALS),
3532270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_NAME_LENGTH),
3542270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_LENGTH),
3552270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_NAME_VALUEOF),
3562270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_BOOLEAN),
3572270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_CHAR),
3582270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_INT),
3592270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_LONG),
3602270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_FLOAT),
3612270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_DOUBLE),
3622270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_VALUEOF_OBJECT),
3632270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_NAME_INIT),
3642270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_INIT),
3652270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_STRING_VOID),
3662270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_NAME_TOSTRING),
3672270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_TOSTRING),
3682270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_NAME_APPEND),
3692270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_BOOLEAN_STRING_BUFFER),
3702270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_CHAR_STRING_BUFFER),
3712270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_INT_STRING_BUFFER),
3722270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_LONG_STRING_BUFFER),
3732270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_FLOAT_STRING_BUFFER),
3742270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_DOUBLE_STRING_BUFFER),
3752270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_STRING_STRING_BUFFER),
3762270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_OBJECT_STRING_BUFFER),
3772270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_BOOLEAN_STRING_BUILDER),
3782270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_CHAR_STRING_BUILDER),
3792270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_INT_STRING_BUILDER),
3802270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_LONG_STRING_BUILDER),
3812270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_FLOAT_STRING_BUILDER),
3822270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_DOUBLE_STRING_BUILDER),
3832270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_STRING_STRING_BUILDER),
3842270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom        new Utf8Constant(ClassConstants.METHOD_TYPE_OBJECT_STRING_BUILDER),
385b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    };
386b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
387b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public static final Instruction[][][] VARIABLE = new Instruction[][][]
388b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
389b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // nop = nothing
390b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
391b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_NOP),
392b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
393b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
394b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
395b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
396b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iload/pop = nothing
397b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
398b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
399b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
400b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
401b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
402b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
403b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
404b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // lload/pop2 = nothing
405b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
406b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
407b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
408b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
409b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
410b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
411b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
412b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // fload/pop = nothing
413b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
414b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
415b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
416b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
417b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
418b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
419b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
420b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // dload/pop2 = nothing
421b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
422b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
423b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
424b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
425b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
426b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
427b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
428b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // aload/pop = nothing
429b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
430b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
431b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
432b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
433b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
434b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
435b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
436b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i = nothing
437b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
438b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
439b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
440b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
441b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
442b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
443b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
444b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // l = l = nothing
445b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
446b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
447b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LSTORE, X),
448b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
449b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
450b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
451b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
452b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // f = f = nothing
453b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
454b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
455b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FSTORE, X),
456b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
457b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
458b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
459b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
460b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // d = d = nothing
461b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
462b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
463b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DSTORE, X),
464b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
465b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
466b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
467b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
468b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // a = a = nothing
469b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
470b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
471b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ASTORE, X),
472b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
473b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
474b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
475b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
476b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // istore/istore = pop/istore
477b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
478b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
479b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
480b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
481b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
482b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
483b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
484b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
485b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // lstore/lstore = pop2/lstore
486b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
487b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LSTORE, X),
488b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LSTORE, X),
489b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
490b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
491b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LSTORE, X),
492b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
493b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
494b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // fstore/fstore = pop/fstore
495b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
496b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FSTORE, X),
497b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FSTORE, X),
498b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
499b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
500b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FSTORE, X),
501b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
502b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
503b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // dstore/dstore = pop2/dstore
504b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
505b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DSTORE, X),
506b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DSTORE, X),
507b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
508b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
509b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DSTORE, X),
510b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
511b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
512b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // astore/astore = pop/astore
513b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
514b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ASTORE, X),
515b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ASTORE, X),
516b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
517b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
518b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ASTORE, X),
519b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
520b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
521b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // istore/iload = dup/istore
522b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
523b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
524b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
525b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
526b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP),
527b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
528b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
529b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
530b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // lstore/lload = dup2/lstore
531b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
532b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LSTORE, X),
533b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
534b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
535b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP2),
536b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LSTORE, X),
537b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
538b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
539b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // fstore/fload = dup/fstore
540b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
541b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FSTORE, X),
542b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
543b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
544b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP),
545b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FSTORE, X),
546b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
547b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
548b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // dstore/dload = dup2/dstore
549b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
550b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DSTORE, X),
551b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
552b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
553b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP2),
554b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DSTORE, X),
555b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
556b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
557b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // astore/aload = dup/astore
558b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
559b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ASTORE, X),
560b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
561b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
562b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP),
563b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ASTORE, X),
564b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
565b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
566b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    };
567b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
568b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public static final Instruction[][][] ARITHMETIC = new Instruction[][][]
569b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
570b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + i = i + c
571b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
572b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
573b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
574b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
575b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
576b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
577b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
578b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
579b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
580b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
581b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // b + i = i + b
582b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
583b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
584b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
585b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
586b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
587b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
588b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
589b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
590b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
591b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
592b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // s + i = i + s
593b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
594b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
595b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
596b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
597b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
598b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
599b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
600b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
601b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
602b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
603b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + i = i + c
604b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
605b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
606b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
607b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
608b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
609b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
610b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
611b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
612b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
613b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
614b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * i = i * c
615b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
616b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
617b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
618b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
619b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
620b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
621b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
622b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
623b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
624b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
625b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // b * i = i * b
626b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
627b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
628b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
629b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
630b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
631b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
632b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
633b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
634b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
635b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
636b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // s * i = i * s
637b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
638b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
639b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
640b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
641b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
642b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
643b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
644b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
645b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
646b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
647b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * i = i * c
648b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
649b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
650b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
651b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
652b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
653b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
654b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
655b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
656b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
657b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
658b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + l = l + c
659b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
660b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
661b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
662b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LADD),
663b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
664b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
665b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
666b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LADD),
667b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
668b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
669b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + l = l + c
670b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
671b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
672b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
673b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LADD),
674b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
675b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
676b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
677b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LADD),
678b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
679b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
680b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * l = l * c
681b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
682b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
683b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
684b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
685b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
686b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_LLOAD, X),
687b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
688b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
689b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
690b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
691b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + f = f + c
692b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
693b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
694b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
695b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FADD),
696b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
697b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
698b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
699b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FADD),
700b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
701b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
702b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + f = f + c
703b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
704b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
705b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
706b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FADD),
707b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
708b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
709b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
710b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FADD),
711b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
712b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
713b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * f = f * c
714b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
715b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
716b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
717b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FMUL),
718b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
719b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
720b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
721b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FMUL),
722b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
723b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
724b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * f = f * c
725b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
726b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
727b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
728b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
729b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
730b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_FLOAD, X),
731b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, A),
732b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
733b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
734b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
735b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + d = d + c
736b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
737b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
738b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
739b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DADD),
740b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
741b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
742b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
743b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DADD),
744b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
745b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
746b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c + d = d + c
747b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
748b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
749b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
750b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DADD),
751b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
752b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
753b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
754b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DADD),
755b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
756b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
757b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * d = d * c
758b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
759b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
760b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
761b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DMUL),
762b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
763b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
764b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
765b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DMUL),
766b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
767b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
768b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // c * d = d * c
769b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
770b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
771b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
772b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DMUL),
773b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
774b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_DLOAD, X),
775b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
776b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DMUL),
777b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
778b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
779b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i + c = i += c
780b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
781b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
782b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
783b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
784b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
785b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
786b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, A),
787b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
788b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
789b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i + b = i += b
790b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
791b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
792b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
793b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
794b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
795b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
796b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, A),
797b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
798b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
799b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i + s = i += s
800b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
801b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
802b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
803b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
804b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
805b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
806b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, A),
807b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
808b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
809b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i - -1 = i++
810b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
811b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
812b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
813b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
814b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
815b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
816b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, 1),
817b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
818b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
819b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i - 1 = i--
820b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
821b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
822b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
823b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
824b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
825b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
826b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, -1),
827b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
828b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
829b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i - 2 = i -= 2
830b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
831b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
832b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
833b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
834b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
835b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
836b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, -2),
837b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
838b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
839b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i - 3 = i -= 3
840b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
841b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
842b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_3),
843b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
844b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
845b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
846b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, -3),
847b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
848b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
849b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i - 4 = i -= 4
850b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
851b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
852b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_4),
853b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
854b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
855b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
856b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, -4),
857b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
858b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
859b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // i = i - 5 = i -= 5
860b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
861b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, X),
862b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_5),
863b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
864b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ISTORE, X),
865b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
866b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, -5),
867b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
868b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
869b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... + 0 = ...
870b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
871b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
872b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
873b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
874b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
875b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
876b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
877b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... + 0L = ...
878b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
879b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
880b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LADD),
881b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
882b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
883b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
884b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
885b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        // Not valid for -0.0.
886b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//        {   // ... + 0f = ...
887b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//            {
888b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//                new SimpleInstruction(InstructionConstants.OP_FCONST_0),
889b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//                new SimpleInstruction(InstructionConstants.OP_FADD),
890b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//            },{
891b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//                // Nothing.
892b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//            },
893b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//        },
894b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//        {   // ... + 0d = ...
895b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//            {
896b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//                new SimpleInstruction(InstructionConstants.OP_DCONST_0),
897b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//                new SimpleInstruction(InstructionConstants.OP_DADD),
898b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//            },{
899b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//                // Nothing.
900b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//            },
901b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//        },
902b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... - 0 = ...
903b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
904b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
905b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
906b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
907b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
908b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
909b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
910b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... - 0L = ...
911b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
912b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
913b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSUB),
914b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
915b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
916b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
917b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
918b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... - 0f = ...
919b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
920b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_0),
921b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FSUB),
922b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
923b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
924b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
925b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
926b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... - 0d = ...
927b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
928b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_0),
929b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DSUB),
930b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
931b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
932b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
933b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
934b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * -1 = -...
935b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
936b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
937b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
938b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
939b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_INEG),
940b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
941b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
942b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 0 = 0
943b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
944b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
945b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
946b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
947b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
948b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
949b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
950b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
951b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 1 = ...
952b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
953b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
954b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
955b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
956b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
957b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
958b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
959b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 2 = ... << 1
960b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
961b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
962b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
963b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
964b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
965b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
966b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
967b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
968b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 4 = ... << 2
969b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
970b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_4),
971b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
972b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
973b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
974b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
975b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
976b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
977b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 8 = ... << 3
978b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
979b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
980b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
981b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
982b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_3),
983b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
984b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
985b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
986b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 16 = ... << 4
987b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
988b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
989b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
990b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
991b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
992b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
993b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
994b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
995b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 32 = ... << 5
996b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
997b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
998b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
999b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1000b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1001b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1002b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1003b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1004b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 64 = ... << 6
1005b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1006b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 64),
1007b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1008b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1009b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1010b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1011b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1012b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1013b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 128 = ... << 7
1014b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1015b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 128),
1016b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1017b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1018b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1019b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1020b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1021b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1022b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 256 = ... << 8
1023b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1024b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 256),
1025b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1026b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1027b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1028b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1029b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1030b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1031b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 512 = ... << 9
1032b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1033b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 512),
1034b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1035b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1036b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1037b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1038b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1039b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1040b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 1024 = ... << 10
1041b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1042b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 1024),
1043b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1044b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1045b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1046b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1047b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1048b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1049b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 2048 = ... << 11
1050b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1051b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 2048),
1052b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1053b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1054b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1055b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1056b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1057b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1058b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 4096 = ... << 12
1059b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1060b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 4096),
1061b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1062b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1063b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1064b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1065b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1066b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1067b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 8192 = ... << 13
1068b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1069b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 8192),
1070b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1071b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1072b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1073b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1074b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1075b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1076b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 16384 = ... << 14
1077b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1078b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 16384),
1079b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1080b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1081b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1082b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1083b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1084b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1085b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 32768 = ... << 15
1086b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1087b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_32768),
1088b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1089b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1090b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1091b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1092b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1093b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1094b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 65536 = ... << 16
1095b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1096b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_65536),
1097b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1098b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1099b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1100b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1101b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1102b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1103b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 16777216 = ... << 24
1104b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1105b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_16777216),
1106b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IMUL),
1107b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1108b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1109b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1110b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1111b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1112b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * -1L = -...
1113b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1114b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
1115b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1116b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1117b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LNEG),
1118b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1119b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1120b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 0L = 0L
1121b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1122b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1123b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1124b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1125b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
1126b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1127b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1128b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1129b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 1L = ...
1130b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1131b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_1),
1132b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1133b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1134b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1135b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1136b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1137b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 2L = ... << 1
1138b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1139b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2),
1140b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1141b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1142b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1143b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1144b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1145b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1146b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 4L = ... << 2
1147b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1148b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4),
1149b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1150b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1151b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1152b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1153b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1154b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1155b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 8L = ... << 3
1156b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1157b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8),
1158b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1159b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1160b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1161b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1162b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1163b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1164b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 16L = ... << 4
1165b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1166b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16),
1167b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1168b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1169b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
1170b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1171b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1172b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1173b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 32L = ... << 5
1174b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1175b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32),
1176b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1177b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1178b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1179b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1180b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1181b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1182b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 64L = ... << 6
1183b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1184b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_64),
1185b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1186b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1187b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1188b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1189b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1190b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1191b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 128L = ... << 7
1192b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1193b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_128),
1194b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1195b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1196b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1197b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1198b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1199b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1200b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 256L = ... << 8
1201b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1202b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_256),
1203b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1204b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1205b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1206b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1207b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1208b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1209b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 512L = ... << 9
1210b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1211b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_512),
1212b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1213b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1214b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1215b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1216b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1217b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1218b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 1024L = ... << 10
1219b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1220b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_1024),
1221b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1222b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1223b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1224b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1225b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1226b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1227b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 2048L = ... << 11
1228b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1229b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2048),
1230b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1231b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1232b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1233b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1234b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1235b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1236b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 4096L = ... << 12
1237b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1238b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4096),
1239b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1240b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1241b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1242b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1243b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1244b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1245b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 8192L = ... << 13
1246b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1247b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8192),
1248b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1249b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1250b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1251b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1252b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1253b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1254b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 16384L = ... << 14
1255b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1256b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16384),
1257b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1258b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1259b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1260b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1261b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1262b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1263b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 32768L = ... << 15
1264b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1265b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32768),
1266b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1267b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1268b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1269b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1270b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1271b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1272b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 65536LL = ... << 16
1273b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1274b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_65536),
1275b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1276b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1277b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1278b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1279b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1280b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1281b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 16777216L = ... << 24
1282b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1283b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16777216),
1284b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1285b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1286b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1287b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1288b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1289b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1290b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 4294967296L = ... << 32
1291b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1292b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4294967296),
1293b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LMUL),
1294b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1295b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1296b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1297b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1298b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1299b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * -1f = -...
1300b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1301b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, F_M1),
1302b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FMUL),
1303b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1304b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FNEG),
1305b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1306b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1307b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        // Not valid for -0.0 and for NaN.
1308b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//        {   // ... * 0f = 0f
1309b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1310b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_FCONST_0),
1311b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_FMUL),
1312b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1313b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP),
1314b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_FCONST_0),
1315b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1316b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1317b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 1f = ...
1318b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1319b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_1),
1320b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FMUL),
1321b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1322b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1323b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1324b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1325b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * -1d = -...
1326b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1327b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, D_M1),
1328b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DMUL),
1329b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1330b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DNEG),
1331b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1332b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1333b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        // Not valid for -0.0 and for NaN.
1334b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//        {   // ... * 0d = 0d
1335b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1336b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DCONST_0),
1337b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DMUL),
1338b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1339b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP2),
1340b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DCONST_0),
1341b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1342b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1343b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... * 1d = ...
1344b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1345b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_1),
1346b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DMUL),
1347b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1348b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1349b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1350b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1351b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / -1 = -...
1352b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1353b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
1354b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IDIV),
1355b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1356b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_INEG),
1357b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1358b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1359b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / 1 = ...
1360b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1361b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1362b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IDIV),
1363b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1364b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1365b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1366b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1367b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        // Not valid for negative values.
1368b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 2 = ... >> 1
1369b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1370b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1371b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1372b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1373b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1374b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1375b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1376b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1377b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 4 = ... >> 2
1378b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1379b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_4),
1380b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1381b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1382b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1383b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1384b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1385b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1386b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 8 = ... >> 3
1387b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1388b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1389b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1390b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1391b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1392b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1393b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1394b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1395b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 16 = ... >> 4
1396b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1397b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1398b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1399b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1400b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
1401b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1402b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1403b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1404b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 32 = ... >> 5
1405b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1406b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1407b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1408b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1409b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1410b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1411b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1412b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1413b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 64 = ... >> 6
1414b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1415b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 64),
1416b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1417b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1418b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1419b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1420b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1421b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1422b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 128 = ... >> 7
1423b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1424b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 128),
1425b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1426b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1427b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1428b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1429b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1430b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1431b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 256 = ... >> 8
1432b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1433b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 256),
1434b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1435b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1436b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1437b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1438b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1439b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1440b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 512 = ... >> 9
1441b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1442b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 512),
1443b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1444b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1445b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1446b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1447b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1448b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1449b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 1024 = ... >> 10
1450b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1451b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 1024),
1452b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1453b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1454b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1455b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1456b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1457b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1458b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 2048 = ... >> 11
1459b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1460b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 2048),
1461b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1462b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1463b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1464b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1465b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1466b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1467b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 4096 = ... >> 12
1468b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1469b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 4096),
1470b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1471b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1472b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1473b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1474b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1475b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1476b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 8192 = ... >> 13
1477b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1478b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 8192),
1479b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1480b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1481b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1482b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1483b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1484b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1485b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 16384 = ... >> 14
1486b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1487b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 16384),
1488b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1489b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1490b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1491b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1492b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1493b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1494b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 32768 = ... >> 15
1495b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1496b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC, I_32768),
1497b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1498b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1499b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1500b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1501b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1502b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1503b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 65536 = ... >> 16
1504b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1505b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC, I_65536),
1506b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1507b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1508b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1509b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1510b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1511b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1512b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 16777216 = ... >> 24
1513b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1514b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC, I_16777216),
1515b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IDIV),
1516b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1517b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1518b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ISHR),
1519b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1520b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1521b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / -1L = -...
1522b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1523b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
1524b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LDIV),
1525b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1526b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LNEG),
1527b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1528b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1529b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / 1L = ...
1530b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1531b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_1),
1532b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LDIV),
1533b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1534b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1535b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1536b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1537b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        // Not valid for negative values.
1538b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 2L = ... >> 1
1539b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1540b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2),
1541b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1542b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1543b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1544b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1545b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1546b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1547b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 4L = ... >> 2
1548b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1549b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4),
1550b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1551b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1552b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1553b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1554b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1555b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1556b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 8L = ... >> 3
1557b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1558b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8),
1559b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1560b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1561b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1562b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1563b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1564b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1565b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 16L = ... >> 4
1566b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1567b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16),
1568b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1569b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1570b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
1571b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1572b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1573b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1574b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 32L = ... >> 5
1575b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1576b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32),
1577b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1578b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1579b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1580b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1581b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1582b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1583b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 64L = ... >> 6
1584b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1585b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_64),
1586b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1587b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1588b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1589b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1590b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1591b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1592b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 128L = ... >> 7
1593b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1594b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_128),
1595b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1596b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1597b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1598b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1599b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1600b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1601b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 256L = ... >> 8
1602b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1603b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_256),
1604b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1605b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1606b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1607b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1608b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1609b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1610b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 512L = ... >> 9
1611b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1612b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_512),
1613b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1614b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1615b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1616b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1617b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1618b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1619b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 1024L = ... >> 10
1620b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1621b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_1024),
1622b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1623b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1624b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1625b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1626b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1627b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1628b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 2048L = ... >> 11
1629b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1630b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2048),
1631b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1632b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1633b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1634b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1635b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1636b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1637b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 4096L = ... >> 12
1638b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1639b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4096),
1640b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1641b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1642b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1643b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1644b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1645b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1646b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 8192L = ... >> 13
1647b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1648b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8192),
1649b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1650b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1651b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1652b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1653b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1654b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1655b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 16384L = ... >> 14
1656b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1657b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16384),
1658b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1659b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1660b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1661b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1662b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1663b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1664b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 32768L = ... >> 15
1665b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1666b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32768),
1667b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1668b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1669b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1670b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1671b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1672b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1673b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 65536LL = ... >> 16
1674b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1675b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_65536),
1676b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1677b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1678b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1679b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1680b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1681b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1682b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 16777216L = ... >> 24
1683b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1684b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16777216),
1685b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1686b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1687b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1688b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1689b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1690b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1691b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... / 4294967296L = ... >> 32
1692b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1693b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4294967296),
1694b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LDIV),
1695b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1696b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1697b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_LSHR),
1698b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1699b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1700b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / -1f = -...
1701b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1702b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, F_M1),
1703b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FDIV),
1704b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1705b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FNEG),
1706b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1707b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1708b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / 1f = ...
1709b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1710b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FCONST_1),
1711b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FDIV),
1712b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1713b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1714b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1715b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1716b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / -1d = -...
1717b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1718b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, D_M1),
1719b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DDIV),
1720b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1721b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DNEG),
1722b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1723b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1724b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... / 1d = ...
1725b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1726b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DCONST_1),
1727b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DDIV),
1728b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1729b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1730b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1731b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1732b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... % 1 = 0
1733b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1734b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1735b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IREM),
1736b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1737b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
1738b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1739b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1740b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1741b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        // Not valid for negative values.
1742b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 2 = ... & 0x1
1743b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1744b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1745b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1746b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1747b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1748b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1749b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1750b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1751b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 4 = ... & 0x3
1752b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1753b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_4),
1754b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1755b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1756b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1757b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1758b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1759b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1760b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 8 = ... & 0x07
1761b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1762b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1763b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1764b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1765b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x07),
1766b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1767b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1768b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1769b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 16 = ... & 0x0f
1770b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1771b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1772b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1773b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1774b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x0f),
1775b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1776b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1777b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1778b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 32 = ... & 0x1f
1779b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1780b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1781b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1782b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1783b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x1f),
1784b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1785b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1786b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1787b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 64 = ... & 0x3f
1788b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1789b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 64),
1790b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1791b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1792b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x3f),
1793b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1794b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1795b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1796b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 128 = ... & 0x7f
1797b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1798b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 128),
1799b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1800b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1801b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x7f),
1802b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1803b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1804b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1805b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 256 = ... & 0x00ff
1806b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1807b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 256),
1808b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1809b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1810b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x00ff),
1811b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1812b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1813b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1814b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 512 = ... & 0x01ff
1815b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1816b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 512),
1817b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1818b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1819b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x01ff),
1820b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1821b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1822b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1823b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 1024 = ... & 0x03ff
1824b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1825b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 1024),
1826b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1827b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1828b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x03ff),
1829b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1830b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1831b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1832b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 2048 = ... & 0x07ff
1833b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1834b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 2048),
1835b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1836b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1837b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x07ff),
1838b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1839b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1840b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1841b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 4096 = ... & 0x0fff
1842b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1843b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 4096),
1844b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1845b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1846b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x0fff),
1847b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1848b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1849b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1850b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 8192 = ... & 0x1fff
1851b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1852b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 8192),
1853b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1854b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1855b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x1fff),
1856b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1857b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1858b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1859b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 16384 = ... & 0x3fff
1860b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1861b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 16384),
1862b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IREM),
1863b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1864b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x3fff),
1865b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_IAND),
1866b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1867b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1868b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... % 1L = 0L
1869b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1870b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_1),
1871b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LREM),
1872b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1873b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
1874b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1875b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1876b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1877b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 1f = 0f
1878b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1879b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_FCONST_1),
1880b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_FREM),
1881b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1882b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP),
1883b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_FCONST_0),
1884b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1885b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1886b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // ... % 1d = 0d
1887b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
1888b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DCONST_1),
1889b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DREM),
1890b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
1891b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP2),
1892b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DCONST_0),
1893b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
1894b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
1895b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // -(-...) = ...
1896b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1897b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_INEG),
1898b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_INEG),
1899b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1900b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1901b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1902b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1903b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // -(-...) = ...
1904b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1905b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LNEG),
1906b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LNEG),
1907b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1908b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1909b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1910b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1911b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // -(-...) = ...
1912b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1913b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FNEG),
1914b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FNEG),
1915b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1916b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1917b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1918b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1919b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // -(-...) = ...
1920b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1921b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DNEG),
1922b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DNEG),
1923b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1924b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1925b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1926b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1927b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // +(-...) = -...
1928b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1929b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_INEG),
1930b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IADD),
1931b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1932b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISUB),
1933b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1934b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1935b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // +(-...) = -...
1936b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1937b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LNEG),
1938b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LADD),
1939b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1940b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSUB),
1941b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1942b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1943b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // +(-...) = -...
1944b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1945b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FNEG),
1946b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FADD),
1947b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1948b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_FSUB),
1949b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1950b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1951b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // +(-...) = -...
1952b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1953b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DNEG),
1954b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DADD),
1955b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1956b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DSUB),
1957b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1958b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1959b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... << 0 = ...
1960b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1961b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1962b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
1963b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1964b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1965b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1966b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1967b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... << 0 = ...
1968b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1969b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1970b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
1971b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1972b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1973b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1974b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1975b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... >> 0 = ...
1976b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1977b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1978b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
1979b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1980b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1981b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1982b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1983b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... >> 0 = ...
1984b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1985b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1986b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHR),
1987b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1988b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1989b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1990b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1991b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... >>> 0 = ...
1992b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
1993b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1994b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
1995b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
1996b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
1997b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
1998b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
1999b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... >>> 0 = ...
2000b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2001b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2002b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LUSHR),
2003b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2004b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2005b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2006b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2007b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... & -1 = ...
2008b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2009b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
2010b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2011b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2012b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2013b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2014b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2015b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... & 0 = 0
2016b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2017b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2018b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2019b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2020b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2021b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2022b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2023b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2024b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... & -1L = ...
2025b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2026b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
2027b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LAND),
2028b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2029b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2030b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2031b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2032b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... & 0L = 0L
2033b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2034b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
2035b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LAND),
2036b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2037b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2038b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
2039b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2040b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2041b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... | -1 = -1
2042b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2043b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
2044b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IOR),
2045b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2046b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2047b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
2048b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2049b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2050b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... | 0 = ...
2051b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2052b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato               new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2053b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato               new SimpleInstruction(InstructionConstants.OP_IOR),
2054b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato           },{
2055b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2056b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2057b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2058b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... | -1L = -1L
2059b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2060b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
2061b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LAND),
2062b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2063b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2064b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
2065b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2066b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2067b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... | 0L = ...
2068b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2069b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
2070b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LOR),
2071b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2072b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2073b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2074b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2075b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... ^ 0 = ...
2076b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2077b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2078b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IXOR),
2079b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2080b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2081b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2082b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2083b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... ^ 0L = ...
2084b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2085b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LCONST_0),
2086b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LXOR),
2087b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2088b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2089b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2090b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2091b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0x0000ff00) >> 8 = (... >> 8) & 0xff
2092b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2093b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ff00),
2094b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2095b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2096b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2097b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2098b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2099b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2100b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2101b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2102b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2103b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2104b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0x0000ff00) >>> 8 = (... >>> 8) & 0xff
2105b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2106b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ff00),
2107b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2108b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2109b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2110b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2111b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2112b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2113b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2114b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2115b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2116b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2117b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0x00ff0000) >> 16 = (... >> 16) & 0xff
2118b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2119b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0x00ff0000),
2120b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2121b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2122b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2123b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2124b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2125b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2126b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2127b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2128b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2129b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2130b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0x00ff0000) >>> 16 = (... >>> 16) & 0xff
2131b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2132b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0x00ff0000),
2133b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2134b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2135b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2136b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2137b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2138b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2139b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2140b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2141b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2142b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2143b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0xff000000) >> 24 = ... >> 24
2144b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2145b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0xff000000),
2146b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2147b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2148b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2149b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2150b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2151b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2152b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2153b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2154b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0xffff0000) >> 16 = ... >> 16
2155b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2156b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0xffff0000),
2157b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2158b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2159b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2160b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2161b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2162b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2163b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2164b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2165b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0xffff0000) >>> 16 = ... >>> 16
2166b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2167b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0xffff0000),
2168b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2169b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2170b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2171b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2172b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2173b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2174b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2175b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2176b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... >> 24) & 0xff = ... >>> 24
2177b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2178b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2179b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2180b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2181b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2182b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2183b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2184b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2185b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2186b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2187b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... >>> 24) & 0xff = ... >>> 24
2188b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2189b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2190b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2191b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2192b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2193b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2194b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2195b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2196b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2197b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2198b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (byte)(... & 0x000000ff) = (byte)...
2199b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2200b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2201b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2202b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2203b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2204b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2205b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2206b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2207b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (char)(... & 0x0000ffff) = (char)...
2208b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2209b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ffff),
2210b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2211b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2212b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2213b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2214b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2215b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2216b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (short)(... & 0x0000ffff) = (short)...
2217b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2218b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ffff),
2219b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IAND),
2220b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2221b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2222b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2223b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2224b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2225b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (byte)(... >> 24) = ... >> 24
2226b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2227b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2228b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2229b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2230b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2231b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2232b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2233b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2234b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2235b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (byte)(... >>> 24) = ... >> 24
2236b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2237b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2238b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2239b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2240b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2241b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2242b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2243b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2244b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2245b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (char)(... >> 16) = ... >>> 16
2246b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2247b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2248b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2249b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2250b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2251b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2252b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2253b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2254b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2255b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (char)(... >>> 16) = ... >>> 16
2256b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2257b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2258b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2259b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2260b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2261b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2262b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2263b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2264b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2265b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (short)(... >> 16) = ... >> 16
2266b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2267b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2268b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2269b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2270b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2271b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2272b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2273b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2274b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2275b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (short)(... >>> 16) = ... >> 16
2276b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2277b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2278b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2279b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2280b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2281b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2282b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2283b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2284b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2285b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... << 24 >> 24 = (byte)...
2286b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2287b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2288b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
2289b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2290b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2291b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2292b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2293b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2294b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2295b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... << 16 >>> 16 = (char)...
2296b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2297b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2298b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
2299b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2300b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_IUSHR),
2301b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2302b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2303b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2304b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2305b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... << 16 >> 16 = (short)...
2306b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2307b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2308b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHL),
2309b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2310b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ISHR),
2311b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2312b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2313b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2314b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2315b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... << 32 >> 32 = (long)(int)...
2316b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2317b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2318b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHL),
2319b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2320b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHR),
2321b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2322b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_L2I),
2323b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2L),
2324b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2325b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2326b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (int)(... & 0x00000000ffffffffL) = (int)...
2327b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2328b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_0x00000000ffffffff),
2329b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LAND),
2330b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_L2I),
2331b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2332b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_L2I),
2333b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2334b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2335b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0xffffffff00000000L) >> 32 = ... >> 32
2336b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2337b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_0xffffffff00000000),
2338b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LAND),
2339b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2340b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHR),
2341b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2342b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2343b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LSHR),
2344b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2345b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2346b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (... & 0xffffffff00000000L) >>> 32 = ... >>> 32
2347b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2348b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_0xffffffff00000000),
2349b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LAND),
2350b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2351b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LUSHR),
2352b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2353b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2354b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_LUSHR),
2355b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2356b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2357b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ... += 0 = nothing
2358b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2359b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_IINC, X, 0),
2360b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2361b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2362b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2363b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2364b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    };
2365b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
2366b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public static final Instruction[][][] FIELD = new Instruction[][][]
2367b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
2368b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // getfield/putfield = nothing
2369b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2370b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2371b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2372b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Y),
2373b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2374b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2375b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2376b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2377b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2378b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // putfield_L/putfield_L = pop2_x1/putfield
2379b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2380b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2381b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2382b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2383b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2384b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2385b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2386b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2387b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2388b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2389b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP2),
2390b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2391b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2392b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2393b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2394b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // putfield_D/putfield_D = pop2_x1/putfield
2395b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2396b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2397b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2398b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2399b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2400b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2401b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2402b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2403b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2404b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2405b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP2),
2406b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2407b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2408b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2409b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2410b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // putfield/putfield = pop_x1/putfield
2411b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2412b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2413b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2414b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2415b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2416b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2417b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2418b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2419b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2420b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2421b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP),
2422b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2423b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2424b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2425b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2426b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // putfield_L/getfield_L = dup2_x1/putfield
2427b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2428b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2429b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2430b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2431b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2432b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_GETFIELD, FIELD_L),
2433b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2434b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2435b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2436b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DUP2_X1),
2437b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2438b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2439b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2440b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // putfield_D/getfield_D = dup2_x1/putfield
2441b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2442b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2443b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2444b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2445b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2446b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_GETFIELD, FIELD_D),
2447b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2448b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2449b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2450b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DUP2_X1),
2451b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2452b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2453b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2454b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // putfield/getfield = dup_x1/putfield
2455b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2456b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2457b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2458b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2459b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2460b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Y),
2461b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2462b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2463b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                // ...
2464b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_DUP_X1),
2465b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2466b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2467b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2468b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // getstatic/putstatic = nothing
2469b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2470b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, X),
2471b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2472b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2473b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2474b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2475b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2476b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // putstatic_L/putstatic_L = pop2/putstatic
2477b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2478b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2479b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2480b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2481b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2482b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2483b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2484b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2485b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // putstatic_D/putstatic_D = pop2/putstatic
2486b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2487b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2488b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2489b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2490b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2491b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2492b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2493b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2494b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // putstatic/putstatic = pop/putstatic
2495b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2496b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2497b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2498b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2499b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2500b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2501b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2502b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2503b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // putstatic_L/getstatic_L = dup2/putstatic
2504b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2505b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2506b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, FIELD_L),
2507b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2508b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP2),
2509b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2510b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2511b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2512b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // putstatic_D/getstatic_D = dup2/putstatic
2513b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2514b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2515b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, FIELD_D),
2516b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2517b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP2),
2518b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2519b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2520b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2521b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // putstatic/getstatic = dup/putstatic
2522b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2523b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2524b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, X),
2525b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2526b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_DUP),
2527b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2528b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2529b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2530b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    };
2531b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
2532b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public static final Instruction[][][] CAST = new Instruction[][][]
2533b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
2534b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (byte)(byte)... = (byte)...
2535b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2536b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2537b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2538b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2539b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2540b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2541b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2542b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (byte)(char)... = (byte)...
2543b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2544b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2545b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2546b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2547b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2548b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2549b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2550b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (byte)(short)... = (byte)...
2551b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2552b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2553b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2554b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2555b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2556b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2557b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2558b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (char)(char)... = (char)...
2559b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2560b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2561b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2562b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2563b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2564b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2565b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2566b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (char)(short)... = (char)...
2567b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2568b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2569b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2570b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2571b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2572b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2573b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2574b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (short)(byte)... = (byte)...
2575b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2576b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2577b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2578b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2579b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2B),
2580b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2581b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2582b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (short)(char)... = (short)...
2583b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2584b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2C),
2585b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2586b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2587b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2588b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2589b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2590b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (short)(short)... = (short)...
2591b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2592b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2593b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2594b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2595b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2S),
2596b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2597b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2598b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (int)(long)... = ...
2599b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2600b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_I2L),
2601b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_L2I),
2602b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2603b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2604b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2605b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2606b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // (X)(X)... = (X)...
2607b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2608b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_CHECKCAST, X),
2609b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_CHECKCAST, X),
2610b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2611b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_CHECKCAST, X),
2612b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2613b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2614b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        // Not handled correctly in all cases by VMs prior to Java 6...
2615b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // (byte)bytes[...] = bytes[...]
2616b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2617b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BALOAD),
2618b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_I2B),
2619b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2620b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BALOAD),
2621b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2622b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2623b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // (short)bytes[...] = bytes[...]
2624b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2625b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                 new SimpleInstruction(InstructionConstants.OP_BALOAD),
2626b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                 new SimpleInstruction(InstructionConstants.OP_I2S),
2627b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//             },{
2628b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BALOAD),
2629b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2630b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2631b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // (char)chars[...] = chars[...]
2632b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2633b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_CALOAD),
2634b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_I2C),
2635b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2636b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_CALOAD),
2637b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2638b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2639b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // (short)shorts[...] = shorts[...]
2640b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2641b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SALOAD),
2642b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_I2S),
2643b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2644b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SALOAD),
2645b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2646b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2647b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // bytes[...] = (byte)... = bytes[...] = ...
2648b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2649b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_I2B),
2650b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BASTORE),
2651b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2652b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_BASTORE),
2653b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2654b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2655b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // chars[...] = (char)... = chars[...] = ...
2656b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2657b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_I2C),
2658b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_CASTORE),
2659b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2660b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_CASTORE),
2661b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2662b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2663b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // shorts[...] = (short)... = shorts[...] = ...
2664b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
2665b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_I2S),
2666b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SASTORE),
2667b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
2668b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SASTORE),
2669b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
2670b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
2671b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    };
2672b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato
2673b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    public static final Instruction[][][] BRANCH = new Instruction[][][]
2674b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    {
2675b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // goto +3 = nothing
2676b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2677b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, 3),
2678b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2679b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
2680b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2681b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2682b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifeq +3 = pop
2683b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2684b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, 3),
2685b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2686b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2687b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2688b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2689b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifne +3 = pop
2690b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2691b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, 3),
2692b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2693b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2694b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2695b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2696b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iflt +3 = pop
2697b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2698b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, 3),
2699b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2700b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2701b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2702b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2703b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifge +3 = pop
2704b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2705b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, 3),
2706b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2707b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2708b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2709b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2710b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifgt +3 = pop
2711b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2712b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, 3),
2713b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2714b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2715b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2716b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2717b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifle +3 = pop
2718b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2719b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, 3),
2720b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2721b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2722b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2723b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2724b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpeq +3 = pop2
2725b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2726b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, 3),
2727b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2728b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2729b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2730b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2731b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpne +3 = pop2
2732b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2733b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, 3),
2734b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2735b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2736b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2737b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2738b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmplt +3 = pop2
2739b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2740b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, 3),
2741b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2742b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2743b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2744b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2745b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpge +3 = pop2
2746b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2747b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, 3),
2748b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2749b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2750b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2751b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2752b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpgt +3 = pop2
2753b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2754b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, 3),
2755b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2756b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2757b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2758b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2759b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmple +3 = pop2
2760b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2761b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, 3),
2762b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2763b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2764b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2765b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2766b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifacmpeq +3 = pop2
2767b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2768b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, 3),
2769b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2770b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2771b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2772b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2773b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifacmpne +3 = pop2
2774b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2775b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, 3),
2776b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2777b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP2),
2778b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2779b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2780b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifnull +3 = pop
2781b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2782b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, 3),
2783b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2784b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2785b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2786b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2787b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifnonnull +3 = pop
2788b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2789b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, 3),
2790b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2791b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_POP),
2792b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2793b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2794b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... == 0) = ifeq
2795b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2796b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2797b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2798b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2799b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2800b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2801b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2802b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 == i) = iload/ifeq
2803b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2804b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2805b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2806b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2807b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2808b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2809b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2810b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2811b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2812b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 == i) = getstatic/ifeq
2813b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2814b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2815b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2816b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2817b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2818b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2819b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2820b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2821b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2822b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 == i) = getfield/ifeq
2823b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2824b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2825b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2826b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2827b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2828b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2829b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2830b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2831b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2832b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2833b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2834b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... != 0) = ifne
2835b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2836b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2837b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2838b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2839b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
2840b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2841b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2842b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 != i) = iload/ifeq
2843b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2844b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2845b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2846b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2847b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2848b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2849b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
2850b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2851b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2852b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 != i) = getstatic/ifeq
2853b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2854b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2855b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2856b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2857b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2858b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2859b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
2860b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2861b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2862b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 != i) = getfield/ifeq
2863b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2864b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2865b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2866b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2867b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2868b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2869b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2870b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2871b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
2872b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2873b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2874b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... < 0) = iflt
2875b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2876b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2877b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
2878b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2879b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
2880b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2881b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2882b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... < 1) = ifle
2883b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2884b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2885b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
2886b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2887b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
2888b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2889b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2890b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 > i) = iload/iflt
2891b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2892b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2893b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2894b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2895b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2896b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2897b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
2898b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2899b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2900b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (1 > i) = iload/ifle
2901b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2902b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2903b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2904b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2905b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2906b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2907b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
2908b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2909b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2910b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 > i) = getstatic/iflt
2911b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2912b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2913b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2914b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2915b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2916b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2917b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
2918b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2919b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2920b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (1 > i) = getstatic/ifle
2921b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2922b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2923b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2924b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2925b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2926b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2927b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
2928b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2929b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2930b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 > i) = getfield/iflt
2931b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2932b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2933b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2934b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2935b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2936b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2937b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2938b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2939b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
2940b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2941b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2942b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (1 > i) = getfield/ifle
2943b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2944b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2945b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2946b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2947b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2948b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2949b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2950b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2951b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
2952b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2953b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2954b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... >= 0) = ifge
2955b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2956b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2957b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
2958b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2959b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
2960b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2961b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2962b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... >= 1) = ifgt
2963b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2964b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2965b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
2966b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2967b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
2968b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2969b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2970b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 <= i) = iload/ifge
2971b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2972b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2973b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2974b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2975b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2976b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2977b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
2978b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2979b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2980b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (1 <= i) = iload/ifgt
2981b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2982b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2983b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2984b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2985b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2986b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2987b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
2988b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2989b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
2990b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 <= i) = getstatic/ifge
2991b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
2992b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2993b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2994b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2995b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
2996b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2997b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
2998b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
2999b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3000b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (1 <= i) = getstatic/ifgt
3001b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3002b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
3003b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3004b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3005b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3006b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3007b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3008b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3009b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3010b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 <= i) = getfield/ifge
3011b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3012b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3013b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3014b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3015b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3016b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3017b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3018b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3019b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3020b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3021b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3022b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (1 <= i) = getfield/ifgt
3023b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3024b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
3025b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3026b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3027b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3028b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3029b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3030b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3031b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3032b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3033b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3034b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... > 0) = ifgt
3035b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3036b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3037b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
3038b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3039b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3040b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3041b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3042b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... > -1) = ifge
3043b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3044b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3045b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
3046b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3047b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3048b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3049b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3050b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 < i) = iload/ifgt
3051b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3052b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3053b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3054b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3055b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3056b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3057b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3058b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3059b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3060b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (-1 < i) = iload/ifge
3061b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3062b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3063b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3064b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3065b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3066b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3067b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3068b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3069b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3070b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 < i) = getstatic/ifgt
3071b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3072b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3073b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3074b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3075b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3076b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3077b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3078b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3079b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3080b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (-1 < i) = getstatic/ifge
3081b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3082b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3083b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3084b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3085b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3086b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3087b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3088b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3089b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3090b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 < i) = getfield/ifgt
3091b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3092b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3093b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3094b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3095b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3096b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3097b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3098b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3099b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3100b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3101b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3102b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (-1 < i) = getfield/ifge
3103b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3104b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3105b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3106b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3107b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3108b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3109b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3110b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3111b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3112b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3113b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3114b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... <= 0) = ifle
3115b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3116b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3117b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3118b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3119b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
3120b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3121b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3122b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... <= -1) = iflt
3123b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3124b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3125b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3126b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3127b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
3128b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3129b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3130b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 >= i) = iload/ifle
3131b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3132b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3133b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3134b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3135b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3136b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3137b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
3138b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3139b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3140b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (-1 >= i) = iload/iflt
3141b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3142b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3143b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3144b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3145b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3146b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3147b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
3148b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3149b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3150b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 >= i) = getstatic/ifle
3151b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3152b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3153b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3154b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3155b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3156b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3157b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
3158b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3159b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3160b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (-1 >= i) = getstatic/iflt
3161b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3162b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3163b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3164b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3165b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3166b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3167b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
3168b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3169b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3170b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (0 >= i) = getfield/ifle
3171b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3172b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3173b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3174b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3175b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3176b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3177b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3178b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3179b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
3180b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3181b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3182b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (-1 >= i) = getfield/iflt
3183b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3184b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3185b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3186b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3187b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3188b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3189b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3190b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3191b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
3192b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3193b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3194b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... == null) = ifnull
3195b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3196b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3197b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3198b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3199b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3200b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3201b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3202b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (null == a) = aload/ifnull
3203b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3204b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3205b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3206b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3207b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3208b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3209b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3210b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3211b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3212b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (null == a) = getstatic/ifnull
3213b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3214b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3215b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3216b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3217b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3218b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3219b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3220b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3221b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3222b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (null == a) = getfield/ifnull
3223b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3224b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3225b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3226b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3227b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3228b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3229b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3230b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3231b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3232b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3233b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3234b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (... != null) = ifnonnull
3235b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3236b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3237b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3238b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3239b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3240b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3241b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3242b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (null != a) = aload/ifnonnull
3243b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3244b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3245b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3246b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3247b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3248b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3249b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3250b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3251b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3252b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (null != a) = getstatic/ifnonnull
3253b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3254b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3255b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3256b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3257b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3258b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3259b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3260b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3261b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3262b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // if (null != a) = getfield/ifnonnull
3263b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3264b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3265b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3266b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3267b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3268b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3269b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3270b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3271b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3272b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3273b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3274b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst_0/ifeq = goto
3275b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3276b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3277b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3278b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3279b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3280b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3281b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3282b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst/ifeq = nothing
3283b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3284b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3285b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3286b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3287b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3288b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3289b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3290b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // bipush/ifeq = nothing
3291b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3292b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
3293b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3294b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3295b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3296b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3297b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3298b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // sipush/ifeq = nothing
3299b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3300b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
3301b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3302b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3303b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3304b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3305b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3306b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst_0/ifne = nothing
3307b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3308b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3309b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
3310b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3311b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3312b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3313b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3314b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst/ifne = goto
3315b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3316b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3317b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
3318b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3319b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3320b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3321b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3322b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // bipush/ifne = goto
3323b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3324b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
3325b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
3326b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3327b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3328b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3329b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3330b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // sipush/ifne = goto
3331b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3332b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
3333b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
3334b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3335b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3336b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3337b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3338b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst_0/iflt = nothing
3339b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3340b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3341b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
3342b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3343b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3344b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3345b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3346b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst_0/ifge = goto
3347b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3348b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3349b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3350b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3351b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3352b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3353b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3354b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst_0/ifgt = nothing
3355b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3356b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3357b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3358b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3359b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3360b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3361b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3362b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iconst_0/ifle = goto
3363b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3364b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3365b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
3366b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3367b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3368b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3369b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3370b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // aconst_null/ifnull = goto
3371b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3372b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3373b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3374b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3375b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3376b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3377b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3378b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // aconst_null/ifnonnul = nothing
3379b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3380b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3381b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3382b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3383b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                // Nothing.
3384b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3385b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3386b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifeq/goto = ifne
3387b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3388b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, 6),
3389b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3390b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3391b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, X),
3392b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3393b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3394b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifne/goto = ifeq
3395b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3396b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNE, 6),
3397b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3398b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3399b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3400b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3401b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3402b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // iflt/goto = ifge
3403b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3404b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, 6),
3405b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3406b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3407b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, X),
3408b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3409b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3410b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifge/goto = iflt
3411b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3412b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGE, 6),
3413b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3414b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3415b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLT, X),
3416b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3417b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3418b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifgt/goto = ifle
3419b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3420b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, 6),
3421b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3422b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3423b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, X),
3424b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3425b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3426b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifle/goto = ifgt
3427b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3428b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFLE, 6),
3429b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3430b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3431b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFGT, X),
3432b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3433b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3434b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpeq/goto = ificmpne
3435b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3436b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, 6),
3437b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3438b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3439b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
3440b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3441b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3442b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpne/goto = ificmpeq
3443b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3444b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPNE, 6),
3445b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3446b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3447b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
3448b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3449b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3450b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmplt/goto = ificmpge
3451b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3452b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, 6),
3453b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3454b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3455b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3456b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3457b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3458b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpge/goto = ificmplt
3459b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3460b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGE, 6),
3461b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3462b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3463b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3464b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3465b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3466b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmpgt/goto = ificmple
3467b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3468b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, 6),
3469b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3470b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3471b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3472b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3473b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3474b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ificmple/goto = ificmpgt
3475b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3476b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPLE, 6),
3477b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3478b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3479b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
3480b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3481b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3482b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifacmpeq/goto = ifacmpne
3483b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3484b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, 6),
3485b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3486b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3487b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3488b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3489b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3490b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifacmpne/goto = ifacmpeq
3491b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3492b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPNE, 6),
3493b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3494b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3495b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3496b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3497b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3498b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifnull/goto = ifnonnull
3499b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3500b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, 6),
3501b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3502b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3503b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3504b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3505b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3506b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // ifnonnull/goto = ifnull
3507b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3508b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNONNULL, 6),
3509b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_GOTO, X),
3510b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3511b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3512b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3513b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3514b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // switch (...) { default: ... } = pop/goto ...
3515b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
3516b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new TableSwitchInstruction(InstructionConstants.OP_TABLESWITCH, A, X, Y, 0, new int[0]),
3517b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
3518b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP),
3519b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new BranchInstruction(InstructionConstants.OP_GOTO, A),
3520b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
3521b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
3522b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // switch (...) { default: ... } = pop/goto ...
3523b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
3524b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, 0, new int[0], new int[0]),
3525b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
3526b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_POP),
3527b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new BranchInstruction(InstructionConstants.OP_GOTO, A),
3528b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
3529b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
3530b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // switch (...) { case/case/default: ... } = switch (...) { case/default: ... }
3531b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3532b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { X, Y }, new int[] { A, B }),
3533b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3534b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { Y }, new int[] { B }),
3535b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3536b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3537b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // switch (...) { case/case/default: ... } = switch (...) { case/default: ... }
3538b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3539b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X, Y }, new int[] { A, B }),
3540b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3541b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X }, new int[] { A }),
3542b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3543b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3544b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // switch (...) { case/case/case/default: ... } = switch (...) { case/case/default: ... }
3545b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3546b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { X, Y, Z }, new int[] { A, B, C }),
3547b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3548b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { Y, Z }, new int[] { B, C }),
3549b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3550b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3551b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // switch (...) { case/case/case/default: ... } = switch (...) { case/case/default: ... }
3552b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3553b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X, Y, Z }, new int[] { A, B, C }),
3554b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3555b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X, Z }, new int[] { A, C }),
3556b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3557b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3558b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        {   // switch (...) { case/case/case/default: ... } = switch (...) { case/case/default: ... }
3559b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            {
3560b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, C, new int[] { X, Y, Z }, new int[] { A, B, C }),
3561b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },{
3562b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, C, new int[] { X, Y }, new int[] { A, B }),
3563b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato            },
3564b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato        },
3565b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // switch (...) { case ...: ...  default:  ... }
3566b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            // = if (... == ...) ... else ...
3567b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
3568b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new TableSwitchInstruction(InstructionConstants.OP_TABLESWITCH, A, X, Y, 1, new int[] { B }),
3569b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
3570b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, X),
3571b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new BranchInstruction(InstructionConstants.OP_IFICMPNE, A),
3572b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new BranchInstruction(InstructionConstants.OP_GOTO, B),
3573b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
3574b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        },
3575b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        {   // switch (...) { case ...: ...  default:  ... }
3576b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            // = if (... == ...) ... else ...
3577b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            {
3578b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, 1, new int[] { X }, new int[] { B }),
3579b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },{
3580b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new SimpleInstruction(InstructionConstants.OP_SIPUSH, X),
3581b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new BranchInstruction(InstructionConstants.OP_IFICMPNE, A),
3582b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//                new BranchInstruction(InstructionConstants.OP_GOTO, B),
3583b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//            },
3584b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato//        }
3585b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato    };
3586b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
3587b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    public static final Instruction[][][] STRING = new Instruction[][][]
3588b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    {
3589b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // "...".equals("...") = true
3590b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3591b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3592b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3593b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRING_EQUALS),
3594b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3595b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_1),
3596b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3597b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3598b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // "...".length() = ...
3599b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3600b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3601b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRING_LENGTH),
3602b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3603b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_SIPUSH, STRING_A_LENGTH),
3604b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3605b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3606b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(Z) = "....
3607b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3608b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3609b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_Z),
3610b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3611b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, BOOLEAN_A_STRING),
3612b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3613b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3614b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(C) = "...."
3615b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3616b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3617b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_C),
3618b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3619b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
3620b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3621b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3622b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(Cc) = "...."
3623b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3624b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3625b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_C),
3626b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3627b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
3628b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3629b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3630b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(I) = "...."
3631b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3632b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3633b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_I),
3634b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3635b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
3636b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3637b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3638b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(Ic) = "...."
3639b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3640b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3641b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_I),
3642b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3643b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
3644b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3645b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3646b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(J) = "...."
3647b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3648b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
3649b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_J),
3650b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3651b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
3652b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3653b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3654b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(Jc) = "...."
3655b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3656b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
3657b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_J),
3658b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3659b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
3660b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3661b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3662b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(F) = "...."
3663b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3664b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
3665b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_F),
3666b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3667b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
3668b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3669b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3670b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(Fc) = "...."
3671b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3672b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3673b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_F),
3674b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3675b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
3676b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3677b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3678b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(D) = "...."
3679b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3680b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
3681b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_D),
3682b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3683b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
3684b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3685b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3686b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // String.valueOf(Dc) = "...."
3687b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3688b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
3689b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_D),
3690b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3691b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
3692b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3693b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3694b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
3695b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").toString() = "..." (ignoring identity)
3696b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3697b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3698b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3699b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3700b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3701b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
3702b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3703b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3704b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3705b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3706b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer(string).toString() = string (ignoring identity)
3707b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3708b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3709b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3710b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
3711b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3712b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
3713b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3714b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
3715b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3716b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3717b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").length() = length
3718b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3719b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3720b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3721b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3722b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3723b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_LENGTH),
3724b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3725b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_SIPUSH, STRING_A_LENGTH),
3726b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3727b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3728b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer() (without dup) = nothing
3729b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3730b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3731b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3732b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3733b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3734b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3735b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3736b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3737b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...") (without dup) = nothing
3738b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3739b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3740b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3741b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3742b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3743b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3744b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3745b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3746b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer()/pop = nothing
3747b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3748b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3749b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3750b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3751b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3752b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3753b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3754b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3755b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3756b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3757b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...")/pop = nothing
3758b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3759b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3760b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3761b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3762b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3763b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3764b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3765b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3766b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3767b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3768b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(z)/pop = nothing
3769b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3770b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3771b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3772b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3773b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3774b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, B),
3775b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_Z),
3776b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3777b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3778b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3779b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3780b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3781b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(c)/pop = nothing
3782b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3783b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3784b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3785b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3786b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3787b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, B),
3788b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
3789b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3790b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3791b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3792b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3793b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3794b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(i)/pop = nothing
3795b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3796b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3797b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3798b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3799b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3800b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, B),
3801b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
3802b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3803b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3804b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3805b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3806b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3807b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(l)/pop = nothing
3808b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3809b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3810b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3811b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3812b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3813b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_LLOAD, B),
3814b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
3815b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3816b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3817b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3818b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3819b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3820b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(f)/pop = nothing
3821b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3822b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3823b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3824b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3825b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3826b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_FLOAD, B),
3827b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
3828b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3829b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3830b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3831b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3832b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3833b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(d)/pop = nothing
3834b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3835b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3836b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3837b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3838b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3839b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_DLOAD, B),
3840b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
3841b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3842b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3843b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3844b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3845b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3846b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(s)/pop = nothing
3847b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3848b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3849b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
3850b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3851b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3852b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, B),
3853b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3854b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3855b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3856b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3857b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3858b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3859b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#toString()/pop = pop
3860b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3861b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
3862b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3863b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3864b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
3865b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3866b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3867b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("") = nothing
3868b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3869b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_EMPTY),
3870b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3871b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3872b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
3873b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3874b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3875b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(Z) = new StringBuffer("....")
3876b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3877b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3878b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3879b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_Z),
3880b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3881b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, BOOLEAN_A_STRING),
3882b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3883b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3884b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3885b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(C) = new StringBuffer("....")
3886b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3887b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3888b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3889b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
3890b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3891b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
3892b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3893b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3894b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3895b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(Cc) = new StringBuffer("....")
3896b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3897b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3898b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3899b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
3900b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3901b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
3902b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3903b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3904b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3905b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(I) = new StringBuffer("....")
3906b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3907b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3908b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3909b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
3910b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3911b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
3912b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3913b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3914b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3915b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(Ic) = new StringBuffer("....")
3916b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3917b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3918b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3919b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
3920b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3921b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
3922b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3923b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3924b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3925b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(J) = new StringBuffer("....")
3926b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3927b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3928b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
3929b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
3930b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3931b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
3932b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3933b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3934b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3935b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(Jc) = new StringBuffer("....")
3936b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3937b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3938b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
3939b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
3940b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3941b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
3942b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3943b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3944b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3945b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(F) = new StringBuffer("....")
3946b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3947b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3948b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
3949b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
3950b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3951b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
3952b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3953b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3954b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3955b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(Fc) = new StringBuffer("....")
3956b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3957b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3958b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3959b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
3960b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3961b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
3962b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3963b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3964b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3965b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(D) = new StringBuffer("....")
3966b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3967b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3968b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
3969b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
3970b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3971b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
3972b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3973b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3974b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3975b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(Dc) = new StringBuffer("....")
3976b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3977b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3978b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
3979b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
3980b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3981b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
3982b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3983b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3984b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3985b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append("...") = new StringBuffer("...")
3986b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3987b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3988b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3989b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3990b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
3991b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3992b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3993b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
3994b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
3995b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(Z) = new StringBuffer("....")
3996b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
3997b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
3998b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3999b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4000b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_Z),
4001b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4002b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
4003b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4004b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4005b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4006b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(C) = new StringBuffer("....")
4007b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4008b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4009b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4010b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4011b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
4012b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4013b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4014b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4015b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4016b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4017b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(Cc) = new StringBuffer("....")
4018b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4019b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4020b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4021b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4022b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
4023b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4024b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4025b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4026b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4027b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4028b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(I) = new StringBuffer("....")
4029b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4030b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4031b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4032b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4033b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
4034b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4035b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4036b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4037b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4038b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4039b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(Ic) = new StringBuffer("....")
4040b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4041b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4042b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4043b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4044b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
4045b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4046b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4047b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4048b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4049b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4050b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(J) = new StringBuffer("....")
4051b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4052b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4053b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4054b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
4055b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
4056b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4057b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4058b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4059b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4060b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4061b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(Jc) = new StringBuffer("....")
4062b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4063b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4064b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4065b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4066b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
4067b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4068b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4069b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4070b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4071b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4072b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(F) = new StringBuffer("....")
4073b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4074b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4075b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4076b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
4077b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
4078b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4079b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4080b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4081b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4082b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4083b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(Fc) = new StringBuffer("....")
4084b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4085b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4086b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4087b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4088b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
4089b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4090b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4091b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4092b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4093b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4094b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(D) = new StringBuffer("....")
4095b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4096b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4097b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4098b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
4099b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
4100b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4101b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4102b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4103b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4104b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4105b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append(Dc) = new StringBuffer("....")
4106b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4107b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4108b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4109b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4110b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
4111b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4112b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4113b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4114b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4115b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4116b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer("...").append("...") = new StringBuffer("......")
4117b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4118b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4119b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4120b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4121b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4122b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4123b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
4124b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
4125b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4126b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4127b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(Z) = StringBuffer#append("....")
4128b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4129b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4130b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4131b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4132b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_Z),
4133b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4134b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
4135b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4136b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4137b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4138b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(C) = StringBuffer#append("....")
4139b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4140b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4141b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4142b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4143b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
4144b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4145b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4146b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4147b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4148b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4149b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(Cc) = StringBuffer#append("....")
4150b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4151b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4152b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4153b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4154b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
4155b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4156b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4157b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4158b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4159b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4160b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(I) = StringBuffer#append("....")
4161b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4162b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4163b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4164b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4165b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
4166b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4167b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4168b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4169b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4170b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4171b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(Ic) = StringBuffer#append("....")
4172b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4173b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4174b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4175b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4176b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
4177b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4178b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4179b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4180b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4181b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4182b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(J) = StringBuffer#append("....")
4183b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4184b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4185b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4186b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
4187b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
4188b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4189b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4190b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4191b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4192b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4193b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(Jc) = StringBuffer#append("....")
4194b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4195b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4196b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4197b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4198b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
4199b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4200b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4201b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4202b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4203b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4204b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(F) = StringBuffer#append("....")
4205b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4206b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4207b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4208b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
4209b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
4210b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4211b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4212b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4213b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4214b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4215b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(Fc) = StringBuffer#append("....")
4216b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4217b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4218b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4219b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4220b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
4221b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4222b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4223b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4224b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4225b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4226b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(D) = StringBuffer#append("....")
4227b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4228b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4229b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4230b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
4231b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
4232b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4233b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4234b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4235b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4236b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4237b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append(Dc) = StringBuffer#append("....")
4238b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4239b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4240b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4241b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4242b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
4243b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4244b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4245b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4246b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4247b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4248b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuffer#append("...").append("...") = StringBuffer#append("......")
4249b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4250b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4251b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4252b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4253b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4254b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4255b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
4256b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4257b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4258b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4259b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(z).toString() = String.valueOf(z)
4260b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4261b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4262b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4263b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4264b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4265b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_Z),
4266b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4267b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4268b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4269b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_Z),
4270b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4271b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4272b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(c).toString() = String.valueOf(c)
4273b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4274b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4275b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4276b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4277b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4278b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_C),
4279b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4280b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4281b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4282b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_C),
4283b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4284b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4285b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(i).toString() = String.valueOf(i)
4286b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4287b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4288b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4289b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4290b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4291b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_I),
4292b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4293b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4294b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4295b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_I),
4296b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4297b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4298b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(j).toString() = String.valueOf(j)
4299b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4300b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4301b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4302b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4303b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_LLOAD, A),
4304b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_J),
4305b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4306b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang           },{
4307b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_LLOAD, A),
4308b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_J),
4309b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4310b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4311b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(f).toString() = String.valueOf(f)
4312b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4313b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4314b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4315b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4316b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_FLOAD, A),
4317b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_F),
4318b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4319b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4320b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_FLOAD, A),
4321b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_F),
4322b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4323b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4324b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(d).toString() = String.valueOf(d)
4325b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4326b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4327b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4328b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4329b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_DLOAD, A),
4330b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_D),
4331b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4332b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4333b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_DLOAD, A),
4334b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_D),
4335b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4336b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4337b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(string).toString() = string
4338b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4339b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4340b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4341b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4342b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
4343b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
4344b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4345b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4346b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
4347b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4348b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4349b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuffer().append(object).toString() = String.valueOf(object)
4350b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4351b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
4352b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4353b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
4354b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
4355b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_OBJECT),
4356b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
4357b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4358b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
4359b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_OBJECT),
4360b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4361b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4362b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
4363b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").toString() = "..." (ignoring identity)
4364b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4365b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4366b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4367b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4368b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4369b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4370b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4371b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4372b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4373b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4374b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder(string).toString() = string (ignoring identity)
4375b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4376b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4377b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4378b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
4379b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4380b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4381b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4382b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
4383b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4384b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4385b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").length() = length
4386b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4387b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4388b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4389b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4390b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4391b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_LENGTH),
4392b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4393b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_SIPUSH, STRING_A_LENGTH),
4394b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4395b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4396b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder() (without dup) = nothing
4397b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4398b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4399b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4400b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4401b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4402b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4403b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4404b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4405b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...") (without dup) = nothing
4406b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4407b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4408b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4409b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4410b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4411b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4412b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4413b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4414b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder()/pop = nothing
4415b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4416b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4417b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4418b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4419b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4420b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4421b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4422b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4423b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4424b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4425b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...")/pop = nothing
4426b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4427b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4428b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4429b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4430b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4431b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4432b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4433b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4434b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4435b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4436b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(z)/pop = nothing
4437b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4438b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4439b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4440b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4441b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4442b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, B),
4443b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_Z),
4444b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4445b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4446b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4447b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4448b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4449b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(c)/pop = nothing
4450b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4451b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4452b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4453b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4454b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4455b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, B),
4456b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4457b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4458b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4459b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4460b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4461b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4462b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(i)/pop = nothing
4463b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4464b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4465b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4466b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4467b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4468b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, B),
4469b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4470b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4471b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4472b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4473b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4474b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4475b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(l)/pop = nothing
4476b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4477b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4478b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4479b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4480b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4481b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_LLOAD, B),
4482b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4483b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4484b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4485b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4486b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4487b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4488b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(f)/pop = nothing
4489b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4490b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4491b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4492b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4493b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4494b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_FLOAD, B),
4495b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4496b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4497b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4498b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4499b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4500b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4501b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(d)/pop = nothing
4502b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4503b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4504b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4505b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4506b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4507b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_DLOAD, B),
4508b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4509b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4510b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4511b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4512b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4513b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4514b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(s)/pop = nothing
4515b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4516b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4517b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4518b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4519b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4520b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, B),
4521b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4522b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4523b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4524b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4525b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4526b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4527b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#toString()/pop = pop
4528b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4529b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4530b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4531b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4532b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_POP),
4533b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4534b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4535b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("") = nothing
4536b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4537b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_EMPTY),
4538b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4539b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4540b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                // Nothing.
4541b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4542b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4543b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(Z) = new StringBuilder("....")
4544b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4545b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4546b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
4547b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_Z),
4548b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4549b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, BOOLEAN_A_STRING),
4550b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4551b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4552b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4553b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(C) = new StringBuilder("....")
4554b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4555b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4556b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
4557b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4558b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4559b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
4560b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4561b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4562b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4563b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(Cc) = new StringBuilder("....")
4564b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4565b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4566b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4567b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4568b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4569b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
4570b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4571b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4572b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4573b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(I) = new StringBuilder("....")
4574b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4575b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4576b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
4577b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4578b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4579b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
4580b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4581b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4582b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4583b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(Ic) = new StringBuilder("....")
4584b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4585b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4586b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4587b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4588b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4589b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
4590b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4591b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4592b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4593b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(J) = new StringBuilder("....")
4594b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4595b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4596b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
4597b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4598b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4599b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
4600b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4601b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4602b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4603b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(Jc) = new StringBuilder("....")
4604b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4605b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4606b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
4607b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4608b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4609b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
4610b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4611b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4612b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4613b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(F) = new StringBuilder("....")
4614b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4615b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4616b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
4617b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4618b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4619b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
4620b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4621b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4622b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4623b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(Fc) = new StringBuilder("....")
4624b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4625b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4626b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4627b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4628b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4629b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
4630b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4631b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4632b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4633b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(D) = new StringBuilder("....")
4634b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4635b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4636b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
4637b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4638b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4639b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
4640b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4641b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4642b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4643b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(Dc) = new StringBuilder("....")
4644b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4645b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4646b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
4647b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4648b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4649b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
4650b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4651b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4652b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4653b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append("...") = new StringBuilder("...")
4654b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4655b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4656b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4657b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4658b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4659b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4660b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4661b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4662b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4663b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(Z) = new StringBuilder("....")
4664b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4665b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4666b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4667b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4668b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_Z),
4669b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4670b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
4671b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4672b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4673b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4674b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(C) = new StringBuilder("....")
4675b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4676b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4677b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4678b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4679b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4680b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4681b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4682b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4683b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4684b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4685b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(Cc) = new StringBuilder("....")
4686b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4687b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4688b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4689b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4690b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4691b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4692b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4693b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4694b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4695b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4696b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(I) = new StringBuilder("....")
4697b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4698b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4699b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4700b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4701b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4702b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4703b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4704b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4705b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4706b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4707b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(Ic) = new StringBuilder("....")
4708b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4709b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4710b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4711b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4712b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4713b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4714b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4715b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4716b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4717b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4718b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(J) = new StringBuilder("....")
4719b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4720b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4721b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4722b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
4723b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4724b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4725b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4726b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4727b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4728b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4729b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(Jc) = new StringBuilder("....")
4730b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4731b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4732b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4733b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4734b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4735b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4736b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4737b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4738b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4739b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4740b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(F) = new StringBuilder("....")
4741b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4742b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4743b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4744b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
4745b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4746b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4747b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4748b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4749b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4750b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4751b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(Fc) = new StringBuilder("....")
4752b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4753b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4754b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4755b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4756b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4757b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4758b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4759b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4760b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4761b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4762b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(D) = new StringBuilder("....")
4763b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4764b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4765b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4766b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
4767b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4768b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4769b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4770b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4771b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4772b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4773b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append(Dc) = new StringBuilder("....")
4774b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4775b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4776b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4777b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4778b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4779b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4780b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4781b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4782b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4783b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4784b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder("...").append("...") = new StringBuilder("......")
4785b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4786b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4787b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4788b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4789b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4790b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4791b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
4792b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4793b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4794b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4795b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(Z) = StringBuilder#append("....")
4796b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4797b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4798b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4799b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4800b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_Z),
4801b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4802b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
4803b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4804b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4805b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4806b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(C) = StringBuilder#append("....")
4807b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4808b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4809b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4810b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4811b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4812b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4813b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4814b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4815b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4816b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4817b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(Cc) = StringBuilder#append("....")
4818b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4819b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4820b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4821b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4822b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4823b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4824b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4825b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4826b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4827b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4828b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(I) = StringBuilder#append("....")
4829b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4830b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4831b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4832b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4833b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4834b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4835b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4836b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4837b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4838b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4839b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(Ic) = StringBuilder#append("....")
4840b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4841b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4842b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4843b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4844b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4845b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4846b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4847b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4848b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4849b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4850b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(J) = StringBuilder#append("....")
4851b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4852b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4853b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4854b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
4855b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4856b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4857b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4858b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4859b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4860b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4861b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(Jc) = StringBuilder#append("....")
4862b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4863b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4864b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4865b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4866b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4867b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4868b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4869b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4870b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4871b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4872b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(F) = StringBuilder#append("....")
4873b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4874b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4875b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4876b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
4877b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4878b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4879b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4880b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4881b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4882b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4883b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(Fc) = StringBuilder#append("....")
4884b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4885b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4886b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4887b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4888b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4889b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4890b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4891b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4892b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4893b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4894b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(D) = StringBuilder#append("....")
4895b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4896b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4897b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4898b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
4899b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4900b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4901b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4902b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4903b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4904b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4905b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append(Dc) = StringBuilder#append("....")
4906b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4907b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4908b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4909b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4910b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4911b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4912b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4913b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4914b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4915b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4916b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // StringBuilder#append("...").append("...") = StringBuilder#append("......")
4917b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4918b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, A),
4919b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4920b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, B),
4921b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4922b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4923b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
4924b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4925b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4926b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4927b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(z).toString() = String.valueOf(z)
4928b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4929b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4930b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4931b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4932b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4933b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_Z),
4934b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4935b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4936b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4937b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_Z),
4938b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4939b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4940b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(c).toString() = String.valueOf(c)
4941b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4942b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4943b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4944b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4945b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4946b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_C),
4947b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4948b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4949b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4950b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_C),
4951b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4952b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4953b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(i).toString() = String.valueOf(i)
4954b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4955b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4956b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4957b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4958b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4959b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_I),
4960b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4961b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4962b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ILOAD, A),
4963b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_I),
4964b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4965b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4966b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(j).toString() = String.valueOf(j)
4967b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4968b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4969b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4970b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4971b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_LLOAD, A),
4972b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_J),
4973b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4974b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang           },{
4975b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_LLOAD, A),
4976b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_J),
4977b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4978b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4979b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(f).toString() = String.valueOf(f)
4980b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4981b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4982b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4983b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4984b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_FLOAD, A),
4985b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_F),
4986b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
4987b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
4988b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_FLOAD, A),
4989b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_F),
4990b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
4991b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
4992b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(d).toString() = String.valueOf(d)
4993b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
4994b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
4995b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
4996b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4997b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_DLOAD, A),
4998b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_D),
4999b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
5000b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
5001b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_DLOAD, A),
5002b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_D),
5003b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
5004b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
5005b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(string).toString() = string
5006b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
5007b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
5008b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
5009b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
5010b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
5011b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
5012b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
5013b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
5014b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
5015b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
5016b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
5017b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {   // new StringBuilder().append(object).toString() = String.valueOf(object)
5018b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
5019b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
5020b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new SimpleInstruction(InstructionConstants.OP_DUP),
5021b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
5022b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
5023b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_OBJECT),
5024b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
5025b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },{
5026b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new VariableInstruction(InstructionConstants.OP_ALOAD, A),
5027b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                new ConstantInstruction(InstructionConstants.OP_INVOKESTATIC, METHOD_STRING_VALUEOF_OBJECT),
5028b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            },
5029b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        },
5030b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    };
5031b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5032b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5033b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    /**
5034b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang     * Prints out the constants and the instruction sequences.
5035b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang     */
5036b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    public static void main(String[] args)
5037b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    {
5038b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        ProgramClass clazz = new ProgramClass();
5039b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        clazz.constantPool = CONSTANTS;
5040b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5041b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        ClassPrinter printer = new ClassPrinter();
5042b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5043b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        for (int index = 0; index < CONSTANTS.length; index++)
5044b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {
5045b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            System.out.print("["+index+"] ");
5046b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            try
5047b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
5048b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                CONSTANTS[index].accept(clazz, printer);
5049b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            }
5050b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            catch (Exception e)
5051b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
5052b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                System.out.println("("+e.getClass().getName()+")");
5053b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            }
5054b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        }
5055b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5056b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        if (CONSTANTS.length != SENTINEL)
5057b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {
5058b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            throw new IllegalStateException("Constants length ["+CONSTANTS.length+"] different from number of constant names ["+SENTINEL+"]");
5059b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        }
5060b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5061b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        Instruction[][][] sequences = STRING;
5062b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5063b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        for (int sequence = 0; sequence < sequences.length; sequence++)
5064b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        {
5065b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            System.out.println();
5066b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            Instruction[] instructions = sequences[sequence][0];
5067b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            for (int index = 0; index < instructions.length; index++)
5068b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
5069b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                Instruction instruction = instructions[index];
5070b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                try
5071b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                {
5072b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                    instruction.accept(clazz, null, null, index, new ClassPrinter());
5073b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                }
5074b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                catch (Exception e) {}
5075b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            }
5076b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang
5077b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            System.out.println("=>");
5078b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            instructions = sequences[sequence][1];
5079b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            for (int index = 0; index < instructions.length; index++)
5080b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            {
5081b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                Instruction instruction = instructions[index];
5082b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                try
5083b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                {
5084b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                    instruction.accept(clazz, null, null, index, new ClassPrinter());
5085b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                }
5086b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang                catch (Exception e) {}
5087b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang            }
5088b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang        }
5089b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang    }
5090b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang}
5091