You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

InstructionConstants.java 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. package org.aspectj.apache.bcel.generic;
  2. /* ====================================================================
  3. * The Apache Software License, Version 1.1
  4. *
  5. * Copyright (c) 2001 The Apache Software Foundation. All rights
  6. * reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. *
  12. * 1. Redistributions of source code must retain the above copyright
  13. * notice, this list of conditions and the following disclaimer.
  14. *
  15. * 2. Redistributions in binary form must reproduce the above copyright
  16. * notice, this list of conditions and the following disclaimer in
  17. * the documentation and/or other materials provided with the
  18. * distribution.
  19. *
  20. * 3. The end-user documentation included with the redistribution,
  21. * if any, must include the following acknowledgment:
  22. * "This product includes software developed by the
  23. * Apache Software Foundation (https://www.apache.org/)."
  24. * Alternately, this acknowledgment may appear in the software itself,
  25. * if and wherever such third-party acknowledgments normally appear.
  26. *
  27. * 4. The names "Apache" and "Apache Software Foundation" and
  28. * "Apache BCEL" must not be used to endorse or promote products
  29. * derived from this software without prior written permission. For
  30. * written permission, please contact apache@apache.org.
  31. *
  32. * 5. Products derived from this software may not be called "Apache",
  33. * "Apache BCEL", nor may "Apache" appear in their name, without
  34. * prior written permission of the Apache Software Foundation.
  35. *
  36. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  37. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  38. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  39. * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  40. * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  41. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  42. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  43. * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  44. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  45. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  46. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  47. * SUCH DAMAGE.
  48. * ====================================================================
  49. *
  50. * This software consists of voluntary contributions made by many
  51. * individuals on behalf of the Apache Software Foundation. For more
  52. * information on the Apache Software Foundation, please see
  53. * <https://www.apache.org/>.
  54. */
  55. import org.aspectj.apache.bcel.Constants;
  56. /**
  57. * This interface contains shareable instruction objects.
  58. *
  59. * In order to save memory you can use some instructions multiply,
  60. * since they have an immutable state and are directly derived from
  61. * Instruction. I.e. they have no instance fields that could be
  62. * changed. Since some of these instructions like ICONST_0 occur
  63. * very frequently this can save a lot of time and space. This
  64. * feature is an adaptation of the FlyWeight design pattern, we
  65. * just use an array instead of a factory.
  66. *
  67. * The Instructions can also accessed directly under their names, so
  68. * it's possible to write il.append(Instruction.ICONST_0);
  69. *
  70. * @version $Id: InstructionConstants.java,v 1.4 2008/08/13 18:18:22 aclement Exp $
  71. * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
  72. */
  73. public interface InstructionConstants {
  74. /** Predefined instruction objects
  75. */
  76. Instruction NOP = new Instruction(Constants.NOP);
  77. Instruction ACONST_NULL = new Instruction(Constants.ACONST_NULL);
  78. Instruction ICONST_M1 = new Instruction(Constants.ICONST_M1);
  79. Instruction ICONST_0 = new Instruction(Constants.ICONST_0);
  80. Instruction ICONST_1 = new Instruction(Constants.ICONST_1);
  81. Instruction ICONST_2 = new Instruction(Constants.ICONST_2);
  82. Instruction ICONST_3 = new Instruction(Constants.ICONST_3);
  83. Instruction ICONST_4 = new Instruction(Constants.ICONST_4);
  84. Instruction ICONST_5 = new Instruction(Constants.ICONST_5);
  85. Instruction LCONST_0 = new Instruction(Constants.LCONST_0);
  86. Instruction LCONST_1 = new Instruction(Constants.LCONST_1);
  87. Instruction FCONST_0 = new Instruction(Constants.FCONST_0);
  88. Instruction FCONST_1 = new Instruction(Constants.FCONST_1);
  89. Instruction FCONST_2 = new Instruction(Constants.FCONST_2);
  90. Instruction DCONST_0 = new Instruction(Constants.DCONST_0);
  91. Instruction DCONST_1 = new Instruction(Constants.DCONST_1);
  92. Instruction IALOAD = new Instruction(Constants.IALOAD);
  93. Instruction LALOAD = new Instruction(Constants.LALOAD);
  94. Instruction FALOAD = new Instruction(Constants.FALOAD);
  95. Instruction DALOAD = new Instruction(Constants.DALOAD);
  96. Instruction AALOAD = new Instruction(Constants.AALOAD);
  97. Instruction BALOAD = new Instruction(Constants.BALOAD);
  98. Instruction CALOAD = new Instruction(Constants.CALOAD);
  99. Instruction SALOAD = new Instruction(Constants.SALOAD);
  100. Instruction IASTORE = new Instruction(Constants.IASTORE);
  101. Instruction LASTORE = new Instruction(Constants.LASTORE);
  102. Instruction FASTORE = new Instruction(Constants.FASTORE);
  103. Instruction DASTORE = new Instruction(Constants.DASTORE);
  104. Instruction AASTORE = new Instruction(Constants.AASTORE);
  105. Instruction BASTORE = new Instruction(Constants.BASTORE);
  106. Instruction CASTORE = new Instruction(Constants.CASTORE);
  107. Instruction SASTORE = new Instruction(Constants.SASTORE);
  108. Instruction POP = new Instruction(Constants.POP);
  109. Instruction POP2 = new Instruction(Constants.POP2);
  110. Instruction DUP = new Instruction(Constants.DUP);
  111. Instruction DUP_X1 = new Instruction(Constants.DUP_X1);
  112. Instruction DUP_X2 = new Instruction(Constants.DUP_X2);
  113. Instruction DUP2 = new Instruction(Constants.DUP2);
  114. Instruction DUP2_X1 = new Instruction(Constants.DUP2_X1);
  115. Instruction DUP2_X2 = new Instruction(Constants.DUP2_X2);
  116. Instruction SWAP = new Instruction(Constants.SWAP);
  117. Instruction IADD = new Instruction(Constants.IADD);
  118. Instruction LADD = new Instruction(Constants.LADD);
  119. Instruction FADD = new Instruction(Constants.FADD);
  120. Instruction DADD = new Instruction(Constants.DADD);
  121. Instruction ISUB = new Instruction(Constants.ISUB);
  122. Instruction LSUB = new Instruction(Constants.LSUB);
  123. Instruction FSUB = new Instruction(Constants.FSUB);
  124. Instruction DSUB = new Instruction(Constants.DSUB);
  125. Instruction IMUL = new Instruction(Constants.IMUL);
  126. Instruction LMUL = new Instruction(Constants.LMUL);
  127. Instruction FMUL = new Instruction(Constants.FMUL);
  128. Instruction DMUL = new Instruction(Constants.DMUL);
  129. Instruction IDIV = new Instruction(Constants.IDIV);
  130. Instruction LDIV = new Instruction(Constants.LDIV);
  131. Instruction FDIV = new Instruction(Constants.FDIV);
  132. Instruction DDIV = new Instruction(Constants.DDIV);
  133. Instruction IREM = new Instruction(Constants.IREM);
  134. Instruction LREM = new Instruction(Constants.LREM);
  135. Instruction FREM = new Instruction(Constants.FREM);
  136. Instruction DREM = new Instruction(Constants.DREM);
  137. Instruction INEG = new Instruction(Constants.INEG);
  138. Instruction LNEG = new Instruction(Constants.LNEG);
  139. Instruction FNEG = new Instruction(Constants.FNEG);
  140. Instruction DNEG = new Instruction(Constants.DNEG);
  141. Instruction ISHL = new Instruction(Constants.ISHL);
  142. Instruction LSHL = new Instruction(Constants.LSHL);
  143. Instruction ISHR = new Instruction(Constants.ISHR);
  144. Instruction LSHR = new Instruction(Constants.LSHR);
  145. Instruction IUSHR = new Instruction(Constants.IUSHR);
  146. Instruction LUSHR = new Instruction(Constants.LUSHR);
  147. Instruction IAND = new Instruction(Constants.IAND);
  148. Instruction LAND = new Instruction(Constants.LAND);
  149. Instruction IOR = new Instruction(Constants.IOR);
  150. Instruction LOR = new Instruction(Constants.LOR);
  151. Instruction IXOR = new Instruction(Constants.IXOR);
  152. Instruction LXOR = new Instruction(Constants.LXOR);
  153. Instruction I2L = new Instruction(Constants.I2L);
  154. Instruction I2F = new Instruction(Constants.I2F);
  155. Instruction I2D = new Instruction(Constants.I2D);
  156. Instruction L2I = new Instruction(Constants.L2I);
  157. Instruction L2F = new Instruction(Constants.L2F);
  158. Instruction L2D = new Instruction(Constants.L2D);
  159. Instruction F2I = new Instruction(Constants.F2I);
  160. Instruction F2L = new Instruction(Constants.F2L);
  161. Instruction F2D = new Instruction(Constants.F2D);
  162. Instruction D2I = new Instruction(Constants.D2I);
  163. Instruction D2L = new Instruction(Constants.D2L);
  164. Instruction D2F = new Instruction(Constants.D2F);
  165. Instruction I2B = new Instruction(Constants.I2B);
  166. Instruction I2C = new Instruction(Constants.I2C);
  167. Instruction I2S = new Instruction(Constants.I2S);
  168. Instruction LCMP = new Instruction(Constants.LCMP);
  169. Instruction FCMPL = new Instruction(Constants.FCMPL);
  170. Instruction FCMPG = new Instruction(Constants.FCMPG);
  171. Instruction DCMPL = new Instruction(Constants.DCMPL);
  172. Instruction DCMPG = new Instruction(Constants.DCMPG);
  173. Instruction IRETURN = new Instruction(Constants.IRETURN);
  174. Instruction LRETURN = new Instruction(Constants.LRETURN);
  175. Instruction FRETURN = new Instruction(Constants.FRETURN);
  176. Instruction DRETURN = new Instruction(Constants.DRETURN);
  177. Instruction ARETURN = new Instruction(Constants.ARETURN);
  178. Instruction RETURN = new Instruction(Constants.RETURN);
  179. Instruction ARRAYLENGTH = new Instruction(Constants.ARRAYLENGTH);
  180. Instruction ATHROW = new Instruction(Constants.ATHROW);
  181. Instruction MONITORENTER = new Instruction(Constants.MONITORENTER);
  182. Instruction MONITOREXIT = new Instruction(Constants.MONITOREXIT);
  183. Instruction IMPDEP1 = new Instruction(Constants.IMPDEP1);
  184. Instruction IMPDEP2 = new Instruction(Constants.IMPDEP2);
  185. // You can use these constants in multiple places safely, any attempt to change the index
  186. // for these constants will cause an exception
  187. InstructionLV THIS = new InstructionCLV(Constants.ALOAD,0);
  188. InstructionLV ALOAD_0 = new InstructionCLV(Constants.ALOAD_0);
  189. InstructionLV ALOAD_1 = new InstructionCLV(Constants.ALOAD_1);
  190. InstructionLV ALOAD_2 = new InstructionCLV(Constants.ALOAD_2);
  191. InstructionLV ALOAD_3 = new InstructionCLV(Constants.ALOAD_3);
  192. InstructionLV ILOAD_0 = new InstructionCLV(Constants.ILOAD_0);
  193. InstructionLV ILOAD_1 = new InstructionCLV(Constants.ILOAD_1);
  194. InstructionLV ILOAD_2 = new InstructionCLV(Constants.ILOAD_2);
  195. InstructionLV ILOAD_3 = new InstructionCLV(Constants.ILOAD_3);
  196. InstructionLV DLOAD_0 = new InstructionCLV(Constants.DLOAD_0);
  197. InstructionLV DLOAD_1 = new InstructionCLV(Constants.DLOAD_1);
  198. InstructionLV DLOAD_2 = new InstructionCLV(Constants.DLOAD_2);
  199. InstructionLV DLOAD_3 = new InstructionCLV(Constants.DLOAD_3);
  200. InstructionLV FLOAD_0 = new InstructionCLV(Constants.FLOAD_0);
  201. InstructionLV FLOAD_1 = new InstructionCLV(Constants.FLOAD_1);
  202. InstructionLV FLOAD_2 = new InstructionCLV(Constants.FLOAD_2);
  203. InstructionLV FLOAD_3 = new InstructionCLV(Constants.FLOAD_3);
  204. InstructionLV LLOAD_0 = new InstructionCLV(Constants.LLOAD_0);
  205. InstructionLV LLOAD_1 = new InstructionCLV(Constants.LLOAD_1);
  206. InstructionLV LLOAD_2 = new InstructionCLV(Constants.LLOAD_2);
  207. InstructionLV LLOAD_3 = new InstructionCLV(Constants.LLOAD_3);
  208. InstructionLV ASTORE_0 = new InstructionCLV(Constants.ASTORE_0);
  209. InstructionLV ASTORE_1 = new InstructionCLV(Constants.ASTORE_1);
  210. InstructionLV ASTORE_2 = new InstructionCLV(Constants.ASTORE_2);
  211. InstructionLV ASTORE_3 = new InstructionCLV(Constants.ASTORE_3);
  212. InstructionLV ISTORE_0 = new InstructionCLV(Constants.ISTORE_0);
  213. InstructionLV ISTORE_1 = new InstructionCLV(Constants.ISTORE_1);
  214. InstructionLV ISTORE_2 = new InstructionCLV(Constants.ISTORE_2);
  215. InstructionLV ISTORE_3 = new InstructionCLV(Constants.ISTORE_3);
  216. InstructionLV LSTORE_0 = new InstructionCLV(Constants.LSTORE_0);
  217. InstructionLV LSTORE_1 = new InstructionCLV(Constants.LSTORE_1);
  218. InstructionLV LSTORE_2 = new InstructionCLV(Constants.LSTORE_2);
  219. InstructionLV LSTORE_3 = new InstructionCLV(Constants.LSTORE_3);
  220. InstructionLV FSTORE_0 = new InstructionCLV(Constants.FSTORE_0);
  221. InstructionLV FSTORE_1 = new InstructionCLV(Constants.FSTORE_1);
  222. InstructionLV FSTORE_2 = new InstructionCLV(Constants.FSTORE_2);
  223. InstructionLV FSTORE_3 = new InstructionCLV(Constants.FSTORE_3);
  224. InstructionLV DSTORE_0 = new InstructionCLV(Constants.DSTORE_0);
  225. InstructionLV DSTORE_1 = new InstructionCLV(Constants.DSTORE_1);
  226. InstructionLV DSTORE_2 = new InstructionCLV(Constants.DSTORE_2);
  227. InstructionLV DSTORE_3 = new InstructionCLV(Constants.DSTORE_3);
  228. /** Get object via its opcode, for immutable instructions like
  229. * branch instructions entries are set to null.
  230. */
  231. Instruction[] INSTRUCTIONS = new Instruction[256];
  232. /** Interfaces may have no static initializers, so we simulate this
  233. * with an inner class.
  234. */
  235. Clinit bla = new Clinit();
  236. class Clinit {
  237. Clinit() {
  238. INSTRUCTIONS[Constants.NOP] = NOP;
  239. INSTRUCTIONS[Constants.ACONST_NULL] = ACONST_NULL;
  240. INSTRUCTIONS[Constants.ICONST_M1] = ICONST_M1;
  241. INSTRUCTIONS[Constants.ICONST_0] = ICONST_0;
  242. INSTRUCTIONS[Constants.ICONST_1] = ICONST_1;
  243. INSTRUCTIONS[Constants.ICONST_2] = ICONST_2;
  244. INSTRUCTIONS[Constants.ICONST_3] = ICONST_3;
  245. INSTRUCTIONS[Constants.ICONST_4] = ICONST_4;
  246. INSTRUCTIONS[Constants.ICONST_5] = ICONST_5;
  247. INSTRUCTIONS[Constants.LCONST_0] = LCONST_0;
  248. INSTRUCTIONS[Constants.LCONST_1] = LCONST_1;
  249. INSTRUCTIONS[Constants.FCONST_0] = FCONST_0;
  250. INSTRUCTIONS[Constants.FCONST_1] = FCONST_1;
  251. INSTRUCTIONS[Constants.FCONST_2] = FCONST_2;
  252. INSTRUCTIONS[Constants.DCONST_0] = DCONST_0;
  253. INSTRUCTIONS[Constants.DCONST_1] = DCONST_1;
  254. INSTRUCTIONS[Constants.IALOAD] = IALOAD;
  255. INSTRUCTIONS[Constants.LALOAD] = LALOAD;
  256. INSTRUCTIONS[Constants.FALOAD] = FALOAD;
  257. INSTRUCTIONS[Constants.DALOAD] = DALOAD;
  258. INSTRUCTIONS[Constants.AALOAD] = AALOAD;
  259. INSTRUCTIONS[Constants.BALOAD] = BALOAD;
  260. INSTRUCTIONS[Constants.CALOAD] = CALOAD;
  261. INSTRUCTIONS[Constants.SALOAD] = SALOAD;
  262. INSTRUCTIONS[Constants.IASTORE] = IASTORE;
  263. INSTRUCTIONS[Constants.LASTORE] = LASTORE;
  264. INSTRUCTIONS[Constants.FASTORE] = FASTORE;
  265. INSTRUCTIONS[Constants.DASTORE] = DASTORE;
  266. INSTRUCTIONS[Constants.AASTORE] = AASTORE;
  267. INSTRUCTIONS[Constants.BASTORE] = BASTORE;
  268. INSTRUCTIONS[Constants.CASTORE] = CASTORE;
  269. INSTRUCTIONS[Constants.SASTORE] = SASTORE;
  270. INSTRUCTIONS[Constants.POP] = POP;
  271. INSTRUCTIONS[Constants.POP2] = POP2;
  272. INSTRUCTIONS[Constants.DUP] = DUP;
  273. INSTRUCTIONS[Constants.DUP_X1] = DUP_X1;
  274. INSTRUCTIONS[Constants.DUP_X2] = DUP_X2;
  275. INSTRUCTIONS[Constants.DUP2] = DUP2;
  276. INSTRUCTIONS[Constants.DUP2_X1] = DUP2_X1;
  277. INSTRUCTIONS[Constants.DUP2_X2] = DUP2_X2;
  278. INSTRUCTIONS[Constants.SWAP] = SWAP;
  279. INSTRUCTIONS[Constants.IADD] = IADD;
  280. INSTRUCTIONS[Constants.LADD] = LADD;
  281. INSTRUCTIONS[Constants.FADD] = FADD;
  282. INSTRUCTIONS[Constants.DADD] = DADD;
  283. INSTRUCTIONS[Constants.ISUB] = ISUB;
  284. INSTRUCTIONS[Constants.LSUB] = LSUB;
  285. INSTRUCTIONS[Constants.FSUB] = FSUB;
  286. INSTRUCTIONS[Constants.DSUB] = DSUB;
  287. INSTRUCTIONS[Constants.IMUL] = IMUL;
  288. INSTRUCTIONS[Constants.LMUL] = LMUL;
  289. INSTRUCTIONS[Constants.FMUL] = FMUL;
  290. INSTRUCTIONS[Constants.DMUL] = DMUL;
  291. INSTRUCTIONS[Constants.IDIV] = IDIV;
  292. INSTRUCTIONS[Constants.LDIV] = LDIV;
  293. INSTRUCTIONS[Constants.FDIV] = FDIV;
  294. INSTRUCTIONS[Constants.DDIV] = DDIV;
  295. INSTRUCTIONS[Constants.IREM] = IREM;
  296. INSTRUCTIONS[Constants.LREM] = LREM;
  297. INSTRUCTIONS[Constants.FREM] = FREM;
  298. INSTRUCTIONS[Constants.DREM] = DREM;
  299. INSTRUCTIONS[Constants.INEG] = INEG;
  300. INSTRUCTIONS[Constants.LNEG] = LNEG;
  301. INSTRUCTIONS[Constants.FNEG] = FNEG;
  302. INSTRUCTIONS[Constants.DNEG] = DNEG;
  303. INSTRUCTIONS[Constants.ISHL] = ISHL;
  304. INSTRUCTIONS[Constants.LSHL] = LSHL;
  305. INSTRUCTIONS[Constants.ISHR] = ISHR;
  306. INSTRUCTIONS[Constants.LSHR] = LSHR;
  307. INSTRUCTIONS[Constants.IUSHR] = IUSHR;
  308. INSTRUCTIONS[Constants.LUSHR] = LUSHR;
  309. INSTRUCTIONS[Constants.IAND] = IAND;
  310. INSTRUCTIONS[Constants.LAND] = LAND;
  311. INSTRUCTIONS[Constants.IOR] = IOR;
  312. INSTRUCTIONS[Constants.LOR] = LOR;
  313. INSTRUCTIONS[Constants.IXOR] = IXOR;
  314. INSTRUCTIONS[Constants.LXOR] = LXOR;
  315. INSTRUCTIONS[Constants.I2L] = I2L;
  316. INSTRUCTIONS[Constants.I2F] = I2F;
  317. INSTRUCTIONS[Constants.I2D] = I2D;
  318. INSTRUCTIONS[Constants.L2I] = L2I;
  319. INSTRUCTIONS[Constants.L2F] = L2F;
  320. INSTRUCTIONS[Constants.L2D] = L2D;
  321. INSTRUCTIONS[Constants.F2I] = F2I;
  322. INSTRUCTIONS[Constants.F2L] = F2L;
  323. INSTRUCTIONS[Constants.F2D] = F2D;
  324. INSTRUCTIONS[Constants.D2I] = D2I;
  325. INSTRUCTIONS[Constants.D2L] = D2L;
  326. INSTRUCTIONS[Constants.D2F] = D2F;
  327. INSTRUCTIONS[Constants.I2B] = I2B;
  328. INSTRUCTIONS[Constants.I2C] = I2C;
  329. INSTRUCTIONS[Constants.I2S] = I2S;
  330. INSTRUCTIONS[Constants.LCMP] = LCMP;
  331. INSTRUCTIONS[Constants.FCMPL] = FCMPL;
  332. INSTRUCTIONS[Constants.FCMPG] = FCMPG;
  333. INSTRUCTIONS[Constants.DCMPL] = DCMPL;
  334. INSTRUCTIONS[Constants.DCMPG] = DCMPG;
  335. INSTRUCTIONS[Constants.IRETURN] = IRETURN;
  336. INSTRUCTIONS[Constants.LRETURN] = LRETURN;
  337. INSTRUCTIONS[Constants.FRETURN] = FRETURN;
  338. INSTRUCTIONS[Constants.DRETURN] = DRETURN;
  339. INSTRUCTIONS[Constants.ARETURN] = ARETURN;
  340. INSTRUCTIONS[Constants.RETURN] = RETURN;
  341. INSTRUCTIONS[Constants.ARRAYLENGTH] = ARRAYLENGTH;
  342. INSTRUCTIONS[Constants.ATHROW] = ATHROW;
  343. INSTRUCTIONS[Constants.MONITORENTER] = MONITORENTER;
  344. INSTRUCTIONS[Constants.MONITOREXIT] = MONITOREXIT;
  345. INSTRUCTIONS[Constants.IMPDEP1] = IMPDEP1;
  346. INSTRUCTIONS[Constants.IMPDEP2] = IMPDEP2;
  347. INSTRUCTIONS[Constants.ALOAD_0] = ALOAD_0;INSTRUCTIONS[Constants.ALOAD_1] = ALOAD_1;
  348. INSTRUCTIONS[Constants.ALOAD_2] = ALOAD_2;INSTRUCTIONS[Constants.ALOAD_3] = ALOAD_3;
  349. INSTRUCTIONS[Constants.LLOAD_0] = LLOAD_0;INSTRUCTIONS[Constants.LLOAD_1] = LLOAD_1;
  350. INSTRUCTIONS[Constants.LLOAD_2] = LLOAD_2;INSTRUCTIONS[Constants.LLOAD_3] = LLOAD_3;
  351. INSTRUCTIONS[Constants.DLOAD_0] = DLOAD_0;INSTRUCTIONS[Constants.DLOAD_1] = DLOAD_1;
  352. INSTRUCTIONS[Constants.DLOAD_2] = DLOAD_2;INSTRUCTIONS[Constants.DLOAD_3] = DLOAD_3;
  353. INSTRUCTIONS[Constants.FLOAD_0] = FLOAD_0;INSTRUCTIONS[Constants.FLOAD_1] = FLOAD_1;
  354. INSTRUCTIONS[Constants.FLOAD_2] = FLOAD_2;INSTRUCTIONS[Constants.FLOAD_3] = FLOAD_3;
  355. INSTRUCTIONS[Constants.ILOAD_0] = ILOAD_0;INSTRUCTIONS[Constants.ILOAD_1] = ILOAD_1;
  356. INSTRUCTIONS[Constants.ILOAD_2] = ILOAD_2;INSTRUCTIONS[Constants.ILOAD_3] = ILOAD_3;
  357. INSTRUCTIONS[Constants.ASTORE_0] = ASTORE_0;INSTRUCTIONS[Constants.ASTORE_1] = ASTORE_1;
  358. INSTRUCTIONS[Constants.ASTORE_2] = ASTORE_2;INSTRUCTIONS[Constants.ASTORE_3] = ASTORE_3;
  359. INSTRUCTIONS[Constants.LSTORE_0] = LSTORE_0;INSTRUCTIONS[Constants.LSTORE_1] = LSTORE_1;
  360. INSTRUCTIONS[Constants.LSTORE_2] = LSTORE_2;INSTRUCTIONS[Constants.LSTORE_3] = LSTORE_3;
  361. INSTRUCTIONS[Constants.DSTORE_0] = DSTORE_0;INSTRUCTIONS[Constants.DSTORE_1] = DSTORE_1;
  362. INSTRUCTIONS[Constants.DSTORE_2] = DSTORE_2;INSTRUCTIONS[Constants.DSTORE_3] = DSTORE_3;
  363. INSTRUCTIONS[Constants.FSTORE_0] = FSTORE_0;INSTRUCTIONS[Constants.FSTORE_1] = FSTORE_1;
  364. INSTRUCTIONS[Constants.FSTORE_2] = FSTORE_2;INSTRUCTIONS[Constants.FSTORE_3] = FSTORE_3;
  365. INSTRUCTIONS[Constants.ISTORE_0] = ISTORE_0;INSTRUCTIONS[Constants.ISTORE_1] = ISTORE_1;
  366. INSTRUCTIONS[Constants.ISTORE_2] = ISTORE_2;INSTRUCTIONS[Constants.ISTORE_3] = ISTORE_3;
  367. }
  368. }
  369. }