java.txt 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. /*
  2. * Copyright (C) 2017 bzt (bztsrc@gitlab)
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 3 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software
  16. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17. *
  18. * @brief Instruction table for Java bytecode
  19. */
  20. <a0> "0x%lx", a0
  21. <a1> "0x%lx", a1
  22. <a2> "0x%lx", a2
  23. <label> "0x%lx", (int64_t)((uint16_t)a0)+$
  24. <label4> "0x%lx", (int64_t)((uint32_t)a0)+$
  25. //turn off sign extension for arguments
  26. @signext
  27. 00110010 aaload
  28. 01010011 aastore
  29. 00000001 aconst_null
  30. 00011001+1 aload <a0>
  31. 0001100111000100+2 aload <a0>
  32. 00101010 aload_0
  33. 00101011 aload_1
  34. 00101100 aload_2
  35. 00101101 aload_3
  36. 10111101+2 anewarray <a0>
  37. 1011110111000100+4 anewarray <a0>
  38. 10110000 areturn
  39. 10111110 arraylength
  40. 00111010+1 astore <a0>
  41. 0011101011000100+2 astore <a0>
  42. 01001011 astore_0
  43. 01001100 astore_1
  44. 01001101 astore_2
  45. 01001110 astore_3
  46. 10111111 athrow
  47. 00110011 baload
  48. 01010100 bastore
  49. 00010000+1 bipush <a0>
  50. 11001010 breakpoint
  51. 00110100 caload
  52. 01010101 castore
  53. 11000000+2 checkcast <a0>
  54. 10010000 d2f
  55. 10001110 d2i
  56. 10001111 d2l
  57. 01100011 dadd
  58. 00110001 daload
  59. 01010010 dastore
  60. 10011000 dcmpg
  61. 10010111 dcmpl
  62. 00001110 dconst_0
  63. 00001111 dconst_1
  64. 01101111 ddiv
  65. 00011000+1 dload <a0>
  66. 0001100011000100+2 dload <a0>
  67. 00100110 dload_0
  68. 00100111 dload_1
  69. 00101000 dload_2
  70. 00101001 dload_3
  71. 01101011 dmul
  72. 01110111 dneg
  73. 01110011 drem
  74. 10101111 dreturn
  75. 00111001+1 dstore <a0>
  76. 0011100111000100+2 dstore <a0>
  77. 01000111 dstore_0
  78. 01001000 dstore_1
  79. 01001001 dstore_2
  80. 01001010 dstore_3
  81. 01100111 dsub
  82. 01011001 dup
  83. 01011010 dup_x1
  84. 01011011 dup_x2
  85. 01011100 dup2
  86. 01011101 dup2_x1
  87. 01011110 dup2_x2
  88. 10001101 f2d
  89. 10001011 d2i
  90. 10001100 f2l
  91. 01100010 fadd
  92. 00110000 faload
  93. 01010001 fastore
  94. 10010110 fcmpg
  95. 10010101 fcmpl
  96. 00001011 fconst_0
  97. 00001100 fconst_1
  98. 00001101 fconst_2
  99. 01101110 fdiv
  100. 00010111+1 fload <a0>
  101. 0001011111000100+2 fload <a0>
  102. 00100010 fload_0
  103. 00100011 fload_1
  104. 00100100 fload_2
  105. 00100101 fload_3
  106. 01101010 fmul
  107. 01110110 fneg
  108. 01110010 frem
  109. 10101110 freturn
  110. 00111000+1 fstore <a0>
  111. 0011100011000100+2 fstore <a0>
  112. 01000011 fstore_0
  113. 01000100 fstore_1
  114. 01000101 fstore_2
  115. 01000110 fstore_3
  116. 01100110 fsub
  117. 10110100+2 getfield <a0>
  118. 10110010+2 getstatic <a0>
  119. 10100111+2 goto <label>
  120. 11001000+4 goto_w <label4>
  121. 10010001 i2b
  122. 10010010 i2c
  123. 10000111 i2d
  124. 10000110 i2f
  125. 10000101 i2l
  126. 10010011 i2s
  127. 01100000 iadd
  128. 00101110 iaload
  129. 01111110 iand
  130. 01001111 iastore
  131. 00000010 iconst_m1
  132. 00000011 iconst_0
  133. 00000100 iconst_1
  134. 00000101 iconst_2
  135. 00000110 iconst_3
  136. 00000111 iconst_4
  137. 00001000 iconst_5
  138. 01101100 idiv
  139. 10100101+2 if_acmpeq <label>
  140. 10100110+2 if_acmpne <label>
  141. 10011111+2 if_icmpeq <label>
  142. 10100010+2 if_icmpge <label>
  143. 10100011+2 if_icmpgt <label>
  144. 10100100+2 if_icmple <label>
  145. 10100001+2 if_icmplt <label>
  146. 10100000+2 if_icmpne <label>
  147. 10011001+2 ifeq <label>
  148. 10011100+2 ifge <label>
  149. 10011101+2 ifgt <label>
  150. 10011110+2 ifle <label>
  151. 10011011+2 iflt <label>
  152. 10011010+2 ifne <label>
  153. 11000111+2 ifnonnull <label>
  154. 11000110+2 ifnull <label>
  155. 10000100+1,1 iinc <a0>, <a1>
  156. 1000010011000100+2,2 iinc <a0>, <a1>
  157. 00010101+1 iload <a0>
  158. 0001010111000100+2 iload <a0>
  159. 00011010 iload_0
  160. 00011011 iload_1
  161. 00011100 iload_2
  162. 00011101 iload_3
  163. 11111110 impdep1
  164. 11111111 impdep2
  165. 01101000 imul
  166. 01110100 ineg
  167. 11000001+2 instanceof <a0>
  168. 10111010+4 invokedynamic <a0>
  169. 10111001+2,2 invokeinterface <a0>, <a1>
  170. 10110111+2 invokespecial <a0>
  171. 10111000+2 invokestatic <a0>
  172. 10110110+2 invokevirtual <a0>
  173. 10000000 ior
  174. 01110000 irem
  175. 10101100 ireturn
  176. 01111000 ishl
  177. 01111010 ishr
  178. 00110110+1 istore <a0>
  179. 0011011011000100+2 istore <a0>
  180. 00111011 istore_0
  181. 00111100 istore_1
  182. 00111101 istore_2
  183. 00111110 istore_3
  184. 01100100 isub
  185. 01111100 iushr
  186. 10000010 ixor
  187. 10101000+2 jsr <label>
  188. 11001001+4 jsr_w <label4>
  189. 10001010 l2d
  190. 10001001 l2f
  191. 10001000 l2i
  192. 01100001 ladd
  193. 00101111 laload
  194. 01111111 land
  195. 01010000 lastore
  196. 10010100 lcmp
  197. 00001001 lconst_0
  198. 00001010 lconst_1
  199. 00010010+1 ldc <a0>
  200. 00010011+2 ldc_w <a0>
  201. 00010100+2 ldc2_w <a0>
  202. 01101101 ldiv
  203. 00010110+1 lload <a0>
  204. 0001011011000100+2 lload <a0>
  205. 00011110 lload_0
  206. 00011111 lload_1
  207. 00100000 lload_2
  208. 00100001 lload_3
  209. 01101001 lmul
  210. 01110101 lneg
  211. 00000000000000000000000010101011+4,4,a1*8 lookupswitch <a0>, <a1>
  212. 10000001 lor
  213. 01110001 lrem
  214. 10101101 lreturn
  215. 01111001 lshl
  216. 01111011 lshr
  217. 00110111+1 lstore <a0>
  218. 0011011111000100+2 lstore <a0>
  219. 00111111 lstore_0
  220. 01000000 lstore_1
  221. 01000001 lstore_2
  222. 01000010 lstore_3
  223. 01100101 lsub
  224. 01111101 lushr
  225. 10000011 lxor
  226. 11000010 monitorenter
  227. 11000011 monitorexit
  228. 11000101+2,1 multianewarray <a0>, <a1>
  229. 1100010111000100+4,2 multianewarray <a0>, <a1>
  230. 10111011+2 new <a0>
  231. 10111100+1 newarray <a0>
  232. 1011110011000100+2 newarray <a0>
  233. 00000000 nop
  234. 01010111 pop
  235. 01011000 pop2
  236. 10110101+2 putfield <a0>
  237. 10110011+2 putstatic <a0>
  238. 10101001+1 ret <a0>
  239. 1010100111000100+2 ret <a0>
  240. 10110001 return
  241. 00110101 saload
  242. 01010110 sastore
  243. 00010001+2 sipush <a0>
  244. 01011111 swap
  245. 00000000000000000000000011000100+4,4,4,(a2-a1)*2 tableswitch <a0>, <a1>, <a2>