001: /*
002:
003: Derby - Class org.apache.derby.impl.services.bytecode.OpcodeDebug
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to you under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021:
022: package org.apache.derby.impl.services.bytecode;
023:
024: import org.apache.derby.iapi.services.sanity.SanityManager;
025:
026: /**
027: * This contains mnemonics for all of the opcodes of the JVM.
028: * It is a separate class so that it will not get loaded
029: * if the system does not need it (i.e. when compiled without
030: * debugging). We even leave out the initialization in that case.
031: */
032: class OpcodeDebug {
033: static final String Name[];
034:
035: static {
036: if (SanityManager.DEBUG) {
037: // we assign these to a temp var first because
038: // "Array constants can only be used in initializers"
039: // to quote the compiler.
040: String NameInit[] = { "NOP", // 0
041: "ACONST_NULL", // 1
042: "ICONST_M1", // 2
043: "ICONST_0", // 3
044: "ICONST_1", // 4
045: "ICONST_2", // 5
046: "ICONST_3", // 6
047: "ICONST_4", // 7
048: "ICONST_5", // 8
049: "LCONST_0", // 9
050: "LCONST_1", // 10
051: "FCONST_0", // 11
052: "FCONST_1", // 12
053: "FCONST_2", // 13
054: "DCONST_0", // 14
055: "DCONST_1", // 15
056: "BIPUSH", // 16
057: "SIPUSH", // 17
058: "LDC", // 18
059: "LDC_W", // 19
060: "LDC2_W", // 20
061: "ILOAD", // 21
062: "LLOAD", // 22
063: "FLOAD", // 23
064: "DLOAD", // 24
065: "ALOAD", // 25
066: "ILOAD_0", // 26
067: "ILOAD_1", // 27
068: "ILOAD_2", // 28
069: "ILOAD_3", // 29
070: "LLOAD_0", // 30
071: "LLOAD_1", // 31
072: "LLOAD_2", // 32
073: "LLOAD_3", // 33
074: "FLOAD_0", // 34
075: "FLOAD_1", // 35
076: "FLOAD_2", // 36
077: "FLOAD_3", // 37
078: "DLOAD_0", // 38
079: "DLOAD_1", // 39
080: "DLOAD_2", // 40
081: "DLOAD_3", // 41
082: "ALOAD_0", // 42
083: "ALOAD_1", // 43
084: "ALOAD_2", // 44
085: "ALOAD_3", // 45
086: "IALOAD", // 46
087: "LALOAD", // 47
088: "FALOAD", // 48
089: "DALOAD", // 49
090: "AALOAD", // 50
091: "BALOAD", // 51
092: "CALOAD", // 52
093: "SALOAD", // 53
094: "ISTORE", // 54
095: "LSTORE", // 55
096: "FSTORE", // 56
097: "DSTORE", // 57
098: "ASTORE", // 58
099: "ISTORE_0", // 59
100: "ISTORE_1", // 60
101: "ISTORE_2", // 61
102: "ISTORE_3", // 62
103: "LSTORE_0", // 63
104: "LSTORE_1", // 64
105: "LSTORE_2", // 65
106: "LSTORE_3", // 66
107: "FSTORE_0", // 67
108: "FSTORE_1", // 68
109: "FSTORE_2", // 69
110: "FSTORE_3", // 70
111: "DSTORE_0", // 71
112: "DSTORE_1", // 72
113: "DSTORE_2", // 73
114: "DSTORE_3", // 74
115: "ASTORE_0", // 75
116: "ASTORE_1", // 76
117: "ASTORE_2", // 77
118: "ASTORE_3", // 78
119: "IASTORE", // 79
120: "LASTORE", // 80
121: "FASTORE", // 81
122: "DASTORE", // 82
123: "AASTORE", // 83
124: "BASTORE", // 84
125: "CASTORE", // 85
126: "SASTORE", // 86
127: "POP", // 87
128: "POP2", // 88
129: "DUP", // 89
130: "DUP_X1", // 90
131: "DUP_X2", // 91
132: "DUP2", // 92
133: "DUP2_X1", // 93
134: "DUP2_X2", // 94
135: "SWAP", // 95
136: "IADD", // 96
137: "LADD", // 97
138: "FADD", // 98
139: "DADD", // 99
140: "ISUB", // 100
141: "LSUB", // 101
142: "FSUB", // 102
143: "DSUB", // 103
144: "IMUL", // 104
145: "LMUL", // 105
146: "FMUL", // 106
147: "DMUL", // 107
148: "IDIV", // 108
149: "LDIV", // 109
150: "FDIV", // 110
151: "DDIV", // 111
152: "IREM", // 112
153: "LREM", // 113
154: "FREM", // 114
155: "DREM", // 115
156: "INEG", // 116
157: "LNEG", // 117
158: "FNEG", // 118
159: "DNEG", // 119
160: "ISHL", // 120
161: "LSHL", // 121
162: "ISHR", // 122
163: "LSHR", // 123
164: "IUSHR", // 124
165: "LUSHR", // 125
166: "IAND", // 126
167: "LAND", // 127
168: "IOR", // 128
169: "LOR", // 129
170: "IXOR", // 130
171: "LXOR", // 131
172: "IINC", // 132
173: "I2L", // 133
174: "I2F", // 134
175: "I2D", // 135
176: "L2I", // 136
177: "L2F", // 137
178: "L2D", // 138
179: "F2I", // 139
180: "F2L", // 140
181: "F2D", // 141
182: "D2I", // 142
183: "D2L", // 143
184: "D2F", // 144
185: "I2B", // 145
186: "I2C", // 146
187: "I2S", // 147
188: "LCMP", // 148
189: "FCMPL", // 149
190: "FCMPG", // 150
191: "DCMPL", // 151
192: "DCMPG", // 152
193: "IFEQ", // 153
194: "IFNE", // 154
195: "IFLT", // 155
196: "IFGE", // 156
197: "IFGT", // 157
198: "IFLE", // 158
199: "IF_ICMPEQ", // 159
200: "IF_ICMPNE", // 160
201: "IF_ICMPLT", // 161
202: "IF_ICMPGE", // 162
203: "IF_ICMPGT", // 163
204: "IF_ICMPLE", // 164
205: "IF_ACMPEQ", // 165
206: "IF_ACMPNE", // 166
207: "GOTO", // 167
208: "JSR", // 168
209: "RET", // 169
210: "TABLESWITCH", // 170
211: "LOOKUPSWITCH", // 171
212: "IRETURN", // 172
213: "LRETURN", // 173
214: "FRETURN", // 174
215: "DRETURN", // 175
216: "ARETURN", // 176
217: "RETURN", // 177
218: "GETSTATIC", // 178
219: "PUTSTATIC", // 179
220: "GETFIELD", // 180
221: "PUTFIELD", // 181
222: "INVOKEVIRTUAL", // 182
223: "INVOKESPECIAL", // 183
224: "INVOKESTATIC", // 184
225: "INVOKEINTERFACE", // 185
226: "XXXUNUSEDXXX", // 186
227: "NEW", // 187
228: "NEWARRAY", // 188
229: "ANEWARRAY", // 189
230: "ARRAYLENGTH", // 190
231: "ATHROW", // 191
232: "CHECKCAST", // 192
233: "INSTANCEOF", // 193
234: "MONITORENTER", // 194
235: "MONITOREXIT", // 195
236: "WIDE", // 196
237: "MULTIANEWARRAY", // 197
238: "IFNULL", // 198
239: "IFNONNULL", // 199
240: "GOTO_W", // 200
241: "JSR_W", // 201
242: "BREAKPOINT" // 202
243: };
244: Name = NameInit;
245: } else
246: Name = null;
247: }
248: }
|