armins.dat 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. ;
  2. ; Table of assembler instructions for Free Pascal
  3. ; adapted from Netwide Assembler by Florian Klaempfl
  4. ;
  5. ;
  6. ; The Netwide Assembler is copyright (C) 1996 Simon Tatham and
  7. ; Julian Hall. All rights reserved. The software is
  8. ; redistributable under the licence given in the file "Licence"
  9. ; distributed in the NASM archive.
  10. ;
  11. ; Format of file: all four fields must be present on every functional
  12. ; line. Hence `void' for no-operand instructions, and `\0' for such
  13. ; as EQU. If the last three fields are all `ignore', no action is
  14. ; taken except to register the opcode as being present.
  15. ;
  16. ;
  17. ; 'ignore' means no instruc
  18. ; 'void' means instruc with zero operands
  19. ;
  20. ; Third field has a first byte indicating how to
  21. ; put together the bits, and then some codes
  22. ; that may be used at will (see assemble.c)
  23. ;
  24. ; \1 - 24 bit pc-rel offset [B, BL]
  25. ; \2 - 24 bit imm value [SWI]
  26. ; \3 - 3 byte code [BX]
  27. ;
  28. ; \4 - reg,reg,reg [AND,EOR,SUB,RSB,ADD,ADC,SBC,RSC,ORR,BIC]
  29. ; \5 - reg,reg,reg,<shift>reg [-"-]
  30. ; \6 - reg,reg,reg,<shift>#imm [-"-]
  31. ; \7 - reg,reg,#imm [-"-]
  32. ;
  33. ; \x8 - reg,reg [MOV,MVN]
  34. ; \x9 - reg,reg,<shift>reg [-"-]
  35. ; \xA - reg,reg,<shift>#imm [-"-]
  36. ; \xB - reg,#imm [-"-]
  37. ;
  38. ; \xC - reg,reg [CMP,CMN,TEQ,TST]
  39. ; \xD - reg,reg,<shift>reg [-"-]
  40. ; \xE - reg,reg,<shift>#imm [-"-]
  41. ; \xF - reg,#imm [-"-]
  42. ;
  43. [ADCcc]
  44. reg32,reg32,reg32 \4\x0\xA0 ARM7
  45. reg32,reg32,reg32,reg32 \5\x0\xA0 ARM7
  46. reg32,reg32,reg32,imm \6\x0\xA0 ARM7
  47. reg32,reg32,imm \7\x2\xA0 ARM7
  48. [ADDcc]
  49. reg32,reg32,reg32 \4\x0\x80 ARM7
  50. reg32,reg32,reg32,reg32 \5\x0\x80 ARM7
  51. reg32,reg32,reg32,imm \6\x0\x80 ARM7
  52. reg32,reg32,imm \7\x2\x80 ARM7
  53. [ANDcc]
  54. reg32,reg32,reg32 \4\x0\x00 ARM7
  55. reg32,reg32,reg32,reg32 \5\x0\x00 ARM7
  56. reg32,reg32,reg32,imm \6\x0\x00 ARM7
  57. reg32,reg32,imm \7\x2\x00 ARM7
  58. [Bcc]
  59. mem32 \1\x0A ARM7
  60. imm32 \1\x0A ARM7
  61. [BICcc]
  62. reg32,reg32,reg32 \4\x1\xC0 ARM7
  63. reg32,reg32,reg32,reg32 \5\x1\xC0 ARM7
  64. reg32,reg32,reg32,imm \6\x1\xC0 ARM7
  65. reg32,reg32,imm \7\x3\xC0 ARM7
  66. [BLcc]
  67. mem32 \1\x0B ARM7
  68. imm32 \1\x0B ARM7
  69. [BXcc]
  70. reg32 \3\x01\x2F\xFF\x10 ARM7
  71. [CDP]
  72. reg8,reg8 \300\1\x10\101 8086
  73. [CMNcc]
  74. reg32,reg32 \xC\x1\x60 ARM7
  75. reg32,reg32,reg32 \xD\x1\x60 ARM7
  76. reg32,reg32,imm \xE\x1\x60 ARM7
  77. reg32,imm \xF\x3\x60 ARM7
  78. [CMPcc]
  79. reg32,reg32 \xC\x1\x40 ARM7
  80. reg32,reg32,reg32 \xD\x1\x40 ARM7
  81. reg32,reg32,imm \xE\x1\x40 ARM7
  82. reg32,imm \xF\x3\x40 ARM7
  83. [DCB]
  84. ignore ignore ignore
  85. [DCD]
  86. ignore ignore ignore
  87. [DCW]
  88. ignore ignore ignore
  89. [DQ]
  90. ignore ignore ignore
  91. [DT]
  92. ignore ignore ignore
  93. [EORcc]
  94. reg32,reg32,reg32 \4\x0\x20 ARM7
  95. reg32,reg32,reg32,reg32 \5\x0\x20 ARM7
  96. reg32,reg32,reg32,imm \6\x0\x20 ARM7
  97. reg32,reg32,imm \7\x2\x20 ARM7
  98. [LDC]
  99. reg32,reg32 \321\300\1\x11\101 ARM7
  100. [LDMDAcc]
  101. reg32,reglist \x26\x81 ARM7
  102. [LDMDBcc]
  103. reg32,reglist \x26\x91 ARM7
  104. [LDMEAcc]
  105. reg32,reglist \x26\x91 ARM7
  106. [LDMEDcc]
  107. reg32,reglist \x26\x99 ARM7
  108. [LDMFAcc]
  109. reg32,reglist \x26\x81 ARM7
  110. [LDMFDcc]
  111. reg32,reglist \x26\x89 ARM7
  112. [LDMIAcc]
  113. reg32,reglist \x26\x89 ARM7
  114. [LDMIBcc]
  115. reg32,reglist \x26\x99 ARM7
  116. [LDRcc]
  117. reg32,imm32 \x17\x05\x10 ARM7
  118. reg32,reg32 \x18\x04\x10 ARM7
  119. reg32,reg32,imm32 \x19\x04\x10 ARM7
  120. reg32,reg32,reg32 \x20\x06\x10 ARM7
  121. reg32,reg32,reg32,imm32 \x21\x06\x10 ARM7
  122. [LDRHcc]
  123. reg32,imm32 \x22\x50\xB0 ARM7
  124. reg32,reg32 \x23\x50\xB0 ARM7
  125. reg32,reg32,imm32 \x24\x50\xB0 ARM7
  126. reg32,reg32,reg32 \x25\x10\xB0 ARM7
  127. [LDRSBcc]
  128. reg32,imm32 \x22\x50\xD0 ARM7
  129. reg32,reg32 \x23\x50\xD0 ARM7
  130. reg32,reg32,imm32 \x24\x50\xD0 ARM7
  131. reg32,reg32,reg32 \x25\x10\xD0 ARM7
  132. [LDRSHcc]
  133. reg32,imm32 \x22\x50\xF0 ARM7
  134. reg32,reg32 \x23\x50\xF0 ARM7
  135. reg32,reg32,imm32 \x24\x50\xF0 ARM7
  136. reg32,reg32,reg32 \x25\x10\xF0 ARM7
  137. [MCR]
  138. reg32,mem32 \320\301\1\x13\110 8086
  139. [MLAcc]
  140. reg32,reg32,reg32,reg32 \x15\x00\x20\x90 ARM7
  141. [MOVcc]
  142. reg32,reg32 \x8\x1\xA0 ARM7
  143. reg32,reg32,reg32 \x9\x1\xA0 ARM7
  144. reg32,reg32,imm \xA\x1\xA0 ARM7
  145. reg32,imm \xB\x3\xA0 ARM7
  146. [MRC]
  147. reg32,reg32 \321\301\1\x13\110 ARM7
  148. [MRScc]
  149. reg32,reg32 \x10\x01\x0F ARM7
  150. [MSRcc]
  151. reg32,reg32 \x11\x01\x29\xF0 ARM7
  152. regf,reg32 \x12\x01\x28\xF0 ARM7
  153. regf,imm \x13\x03\x28\xF0 ARM7
  154. [MULcc]
  155. reg32,reg32,reg32 \x14\x00\x00\x90 ARM7
  156. [MVNcc]
  157. reg32,reg32 \x8\x1\xE0 ARM7
  158. reg32,reg32,reg32 \x9\x1\xE0 ARM7
  159. reg32,reg32,imm \xA\x1\xE0 ARM7
  160. reg32,imm \xB\x3\xE0 ARM7
  161. [ORRcc]
  162. reg32,reg32,reg32 \4\x1\x80 ARM7
  163. reg32,reg32,reg32,reg32 \5\x1\x80 ARM7
  164. reg32,reg32,reg32,imm \6\x1\x80 ARM7
  165. reg32,reg32,imm \7\x3\x80 ARM7
  166. [RSBcc]
  167. reg32,reg32,reg32 \4\x0\x60 ARM7
  168. reg32,reg32,reg32,reg32 \5\x0\x60 ARM7
  169. reg32,reg32,reg32,imm \6\x0\x60 ARM7
  170. reg32,reg32,imm \7\x2\x60 ARM7
  171. [RSCcc]
  172. reg32,reg32,reg32 \4\x0\xE0 ARM7
  173. reg32,reg32,reg32,reg32 \5\x0\xE0 ARM7
  174. reg32,reg32,reg32,imm \6\x0\xE0 ARM7
  175. reg32,reg32,imm \7\x2\xE0 ARM7
  176. [SBCcc]
  177. reg32,reg32,reg32 \4\x0\xC0 ARM7
  178. reg32,reg32,reg32,reg32 \5\x0\xC0 ARM7
  179. reg32,reg32,reg32,imm \6\x0\xC0 ARM7
  180. reg32,reg32,imm \7\x2\xC0 ARM7
  181. [SMLALcc]
  182. reg32,reg32,reg32,reg32 \x16\x00\xE0\x90 ARM7
  183. [SMULLcc]
  184. reg32,reg32,reg32,reg32 \x16\x00\xC0\x90 ARM7
  185. [STMDAcc]
  186. reg32,reglist \x26\x80 ARM7
  187. [STMDBcc]
  188. reg32,reglist \x26\x90 ARM7
  189. [STMEAcc]
  190. reg32,reglist \x26\x88 ARM7
  191. [STMEDcc]
  192. reg32,reglist \x26\x80 ARM7
  193. [STMFAcc]
  194. reg32,reglist \x26\x98 ARM7
  195. [STMFDcc]
  196. reg32,reglist \x26\x90 ARM7
  197. [STMIAcc]
  198. reg32,reglist \x26\x88 ARM7
  199. [STMIBcc]
  200. reg32,reglist \x26\x98 ARM7
  201. [STRcc]
  202. reg32,imm32 \x17\x05\x00 ARM7
  203. reg32,reg32 \x18\x04\x00 ARM7
  204. reg32,reg32,imm32 \x19\x04\x00 ARM7
  205. reg32,reg32,reg32 \x20\x06\x00 ARM7
  206. reg32,reg32,reg32,imm32 \x21\x06\x00 ARM7
  207. ; A dummy since it is parsed as STR{cond}H
  208. [STRHcc]
  209. reg32,imm32 \x22\x40\xB0 ARM7
  210. reg32,reg32 \x23\x40\xB0 ARM7
  211. reg32,reg32,imm32 \x24\x40\xB0 ARM7
  212. reg32,reg32,reg32 \x25\x00\xB0 ARM7
  213. [SUBcc]
  214. reg32,reg32,reg32 \4\x0\x40 ARM7
  215. reg32,reg32,reg32,reg32 \5\x0\x40 ARM7
  216. reg32,reg32,reg32,imm \6\x0\x40 ARM7
  217. reg32,reg32,imm \7\x2\x40 ARM7
  218. [SWIcc]
  219. imm \2\x0F 8086
  220. [SWPcc]
  221. reg32,reg32,reg32 \x27\x01\x90 ARM7
  222. [TEQcc]
  223. reg32,reg32 \xC\x1\x20 ARM7
  224. reg32,reg32,reg32 \xD\x1\x20 ARM7
  225. reg32,reg32,imm \xE\x1\x20 ARM7
  226. reg32,imm \xF\x3\x20 ARM7
  227. [TSTcc]
  228. reg32,reg32 \xC\x1\x00 ARM7
  229. reg32,reg32,reg32 \xD\x1\x00 ARM7
  230. reg32,reg32,imm \xE\x1\x00 ARM7
  231. reg32,imm \xF\x3\x00 ARM7
  232. [UMLALcc]
  233. reg32,reg32,reg32,reg32 \x16\x00\xA0\x90 ARM7
  234. [UMULLcc]
  235. reg32,reg32,reg32,reg32 \x16\x00\x80\x90 ARM7