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.

Mnemonic.java 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. /*
  2. * Javassist, a Java-bytecode translator toolkit.
  3. * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. Alternatively, the contents of this file may be used under
  8. * the terms of the GNU Lesser General Public License Version 2.1 or later,
  9. * or the Apache License Version 2.0.
  10. *
  11. * Software distributed under the License is distributed on an "AS IS" basis,
  12. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  13. * for the specific language governing rights and limitations under the
  14. * License.
  15. */
  16. package javassist.bytecode;
  17. /**
  18. * JVM Instruction Names.
  19. *
  20. * <p>This interface has been separated from javassist.bytecode.Opcode
  21. * because typical bytecode translators do not use mnemonics. If this
  22. * interface were merged with Opcode, extra memory would be unnecessary
  23. * consumed.
  24. *
  25. * @see Opcode
  26. */
  27. public interface Mnemonic {
  28. /**
  29. * The instruction names (mnemonics) sorted by the opcode.
  30. * The length of this array is 202 (jsr_w=201).
  31. *
  32. * <p>The value at index 186 is null since no instruction is
  33. * assigned to 186.
  34. */
  35. String[] OPCODE = {
  36. "nop", /* 0*/
  37. "aconst_null", /* 1*/
  38. "iconst_m1", /* 2*/
  39. "iconst_0", /* 3*/
  40. "iconst_1", /* 4*/
  41. "iconst_2", /* 5*/
  42. "iconst_3", /* 6*/
  43. "iconst_4", /* 7*/
  44. "iconst_5", /* 8*/
  45. "lconst_0", /* 9*/
  46. "lconst_1", /* 10*/
  47. "fconst_0", /* 11*/
  48. "fconst_1", /* 12*/
  49. "fconst_2", /* 13*/
  50. "dconst_0", /* 14*/
  51. "dconst_1", /* 15*/
  52. "bipush", /* 16*/
  53. "sipush", /* 17*/
  54. "ldc", /* 18*/
  55. "ldc_w", /* 19*/
  56. "ldc2_w", /* 20*/
  57. "iload", /* 21*/
  58. "lload", /* 22*/
  59. "fload", /* 23*/
  60. "dload", /* 24*/
  61. "aload", /* 25*/
  62. "iload_0", /* 26*/
  63. "iload_1", /* 27*/
  64. "iload_2", /* 28*/
  65. "iload_3", /* 29*/
  66. "lload_0", /* 30*/
  67. "lload_1", /* 31*/
  68. "lload_2", /* 32*/
  69. "lload_3", /* 33*/
  70. "fload_0", /* 34*/
  71. "fload_1", /* 35*/
  72. "fload_2", /* 36*/
  73. "fload_3", /* 37*/
  74. "dload_0", /* 38*/
  75. "dload_1", /* 39*/
  76. "dload_2", /* 40*/
  77. "dload_3", /* 41*/
  78. "aload_0", /* 42*/
  79. "aload_1", /* 43*/
  80. "aload_2", /* 44*/
  81. "aload_3", /* 45*/
  82. "iaload", /* 46*/
  83. "laload", /* 47*/
  84. "faload", /* 48*/
  85. "daload", /* 49*/
  86. "aaload", /* 50*/
  87. "baload", /* 51*/
  88. "caload", /* 52*/
  89. "saload", /* 53*/
  90. "istore", /* 54*/
  91. "lstore", /* 55*/
  92. "fstore", /* 56*/
  93. "dstore", /* 57*/
  94. "astore", /* 58*/
  95. "istore_0", /* 59*/
  96. "istore_1", /* 60*/
  97. "istore_2", /* 61*/
  98. "istore_3", /* 62*/
  99. "lstore_0", /* 63*/
  100. "lstore_1", /* 64*/
  101. "lstore_2", /* 65*/
  102. "lstore_3", /* 66*/
  103. "fstore_0", /* 67*/
  104. "fstore_1", /* 68*/
  105. "fstore_2", /* 69*/
  106. "fstore_3", /* 70*/
  107. "dstore_0", /* 71*/
  108. "dstore_1", /* 72*/
  109. "dstore_2", /* 73*/
  110. "dstore_3", /* 74*/
  111. "astore_0", /* 75*/
  112. "astore_1", /* 76*/
  113. "astore_2", /* 77*/
  114. "astore_3", /* 78*/
  115. "iastore", /* 79*/
  116. "lastore", /* 80*/
  117. "fastore", /* 81*/
  118. "dastore", /* 82*/
  119. "aastore", /* 83*/
  120. "bastore", /* 84*/
  121. "castore", /* 85*/
  122. "sastore", /* 86*/
  123. "pop", /* 87*/
  124. "pop2", /* 88*/
  125. "dup", /* 89*/
  126. "dup_x1", /* 90*/
  127. "dup_x2", /* 91*/
  128. "dup2", /* 92*/
  129. "dup2_x1", /* 93*/
  130. "dup2_x2", /* 94*/
  131. "swap", /* 95*/
  132. "iadd", /* 96*/
  133. "ladd", /* 97*/
  134. "fadd", /* 98*/
  135. "dadd", /* 99*/
  136. "isub", /* 100*/
  137. "lsub", /* 101*/
  138. "fsub", /* 102*/
  139. "dsub", /* 103*/
  140. "imul", /* 104*/
  141. "lmul", /* 105*/
  142. "fmul", /* 106*/
  143. "dmul", /* 107*/
  144. "idiv", /* 108*/
  145. "ldiv", /* 109*/
  146. "fdiv", /* 110*/
  147. "ddiv", /* 111*/
  148. "irem", /* 112*/
  149. "lrem", /* 113*/
  150. "frem", /* 114*/
  151. "drem", /* 115*/
  152. "ineg", /* 116*/
  153. "lneg", /* 117*/
  154. "fneg", /* 118*/
  155. "dneg", /* 119*/
  156. "ishl", /* 120*/
  157. "lshl", /* 121*/
  158. "ishr", /* 122*/
  159. "lshr", /* 123*/
  160. "iushr", /* 124*/
  161. "lushr", /* 125*/
  162. "iand", /* 126*/
  163. "land", /* 127*/
  164. "ior", /* 128*/
  165. "lor", /* 129*/
  166. "ixor", /* 130*/
  167. "lxor", /* 131*/
  168. "iinc", /* 132*/
  169. "i2l", /* 133*/
  170. "i2f", /* 134*/
  171. "i2d", /* 135*/
  172. "l2i", /* 136*/
  173. "l2f", /* 137*/
  174. "l2d", /* 138*/
  175. "f2i", /* 139*/
  176. "f2l", /* 140*/
  177. "f2d", /* 141*/
  178. "d2i", /* 142*/
  179. "d2l", /* 143*/
  180. "d2f", /* 144*/
  181. "i2b", /* 145*/
  182. "i2c", /* 146*/
  183. "i2s", /* 147*/
  184. "lcmp", /* 148*/
  185. "fcmpl", /* 149*/
  186. "fcmpg", /* 150*/
  187. "dcmpl", /* 151*/
  188. "dcmpg", /* 152*/
  189. "ifeq", /* 153*/
  190. "ifne", /* 154*/
  191. "iflt", /* 155*/
  192. "ifge", /* 156*/
  193. "ifgt", /* 157*/
  194. "ifle", /* 158*/
  195. "if_icmpeq", /* 159*/
  196. "if_icmpne", /* 160*/
  197. "if_icmplt", /* 161*/
  198. "if_icmpge", /* 162*/
  199. "if_icmpgt", /* 163*/
  200. "if_icmple", /* 164*/
  201. "if_acmpeq", /* 165*/
  202. "if_acmpne", /* 166*/
  203. "goto", /* 167*/
  204. "jsr", /* 168*/
  205. "ret", /* 169*/
  206. "tableswitch", /* 170*/
  207. "lookupswitch", /* 171*/
  208. "ireturn", /* 172*/
  209. "lreturn", /* 173*/
  210. "freturn", /* 174*/
  211. "dreturn", /* 175*/
  212. "areturn", /* 176*/
  213. "return", /* 177*/
  214. "getstatic", /* 178*/
  215. "putstatic", /* 179*/
  216. "getfield", /* 180*/
  217. "putfield", /* 181*/
  218. "invokevirtual", /* 182*/
  219. "invokespecial", /* 183*/
  220. "invokestatic", /* 184*/
  221. "invokeinterface", /* 185*/
  222. null,
  223. "new", /* 187*/
  224. "newarray", /* 188*/
  225. "anewarray", /* 189*/
  226. "arraylength", /* 190*/
  227. "athrow", /* 191*/
  228. "checkcast", /* 192*/
  229. "instanceof", /* 193*/
  230. "monitorenter", /* 194*/
  231. "monitorexit", /* 195*/
  232. "wide", /* 196*/
  233. "multianewarray", /* 197*/
  234. "ifnull", /* 198*/
  235. "ifnonnull", /* 199*/
  236. "goto_w", /* 200*/
  237. "jsr_w" /* 201*/
  238. };
  239. }