macros.c 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. /*
  2. * Do not edit - this file auto-generated by macros.pl from:
  3. * version.mac
  4. * ./macros/altreg.mac
  5. * ./macros/fp.mac
  6. * ./macros/ifunc.mac
  7. * ./macros/smartalign.mac
  8. * ./macros/standard.mac
  9. * ./output/outaout.mac
  10. * ./output/outas86.mac
  11. * ./output/outbin.mac
  12. * ./output/outcoff.mac
  13. * ./output/outdbg.mac
  14. * ./output/outelf.mac
  15. * ./output/outmacho.mac
  16. * ./output/outobj.mac
  17. * ./output/outrdf2.mac
  18. * ./output/outrdf.mac
  19. */
  20. #include "tables.h"
  21. #include "nasmlib.h"
  22. #include "hashtbl.h"
  23. #include "outform.h"
  24. #if 1
  25. const unsigned char nasm_stdmac_version[] = {
  26. /* From version.mac */
  27. /* 0 */ 195,'_','_','N','A','S','M','_','M','A','J','O','R','_','_',' ','2',0,
  28. /* 18 */ 195,'_','_','N','A','S','M','_','M','I','N','O','R','_','_',' ','1','4',0,
  29. /* 37 */ 195,'_','_','N','A','S','M','_','S','U','B','M','I','N','O','R','_','_',' ','2',0,
  30. /* 58 */ 195,'_','_','N','A','S','M','_','P','A','T','C','H','L','E','V','E','L','_','_',' ','0',0,
  31. /* 81 */ 195,'_','_','N','A','S','M','_','V','E','R','S','I','O','N','_','I','D','_','_',' ','0','0','2','0','E','0','2','0','0','h',0,
  32. /* 113 */ 195,'_','_','N','A','S','M','_','V','E','R','_','_',' ', 34,'2','.','1','4','.','0','2', 34,0,
  33. /* 137 */ 0
  34. };
  35. #endif
  36. #if 1
  37. static const unsigned char nasm_usemac_altreg[] = {
  38. /* From ./macros/altreg.mac */
  39. /* 0 */ 195,'_','_','U','S','E','_','A','L','T','R','E','G','_','_',0,
  40. /* 16 */ 209,'r','8','l',' ','r','8','b',0,
  41. /* 26 */ 209,'r','9','l',' ','r','9','b',0,
  42. /* 36 */ 209,'r','1','0','l',' ','r','1','0','b',0,
  43. /* 47 */ 209,'r','1','1','l',' ','r','1','1','b',0,
  44. /* 58 */ 209,'r','1','2','l',' ','r','1','2','b',0,
  45. /* 69 */ 209,'r','1','3','l',' ','r','1','3','b',0,
  46. /* 80 */ 209,'r','1','4','l',' ','r','1','4','b',0,
  47. /* 91 */ 209,'r','1','5','l',' ','r','1','5','b',0,
  48. /* 102 */ 209,'r','0',' ','r','a','x',0,
  49. /* 111 */ 209,'r','1',' ','r','c','x',0,
  50. /* 120 */ 209,'r','2',' ','r','d','x',0,
  51. /* 129 */ 209,'r','3',' ','r','b','x',0,
  52. /* 138 */ 209,'r','4',' ','r','s','p',0,
  53. /* 147 */ 209,'r','5',' ','r','b','p',0,
  54. /* 156 */ 209,'r','6',' ','r','s','i',0,
  55. /* 165 */ 209,'r','7',' ','r','d','i',0,
  56. /* 174 */ 209,'r','0','d',' ','e','a','x',0,
  57. /* 183 */ 209,'r','1','d',' ','e','c','x',0,
  58. /* 192 */ 209,'r','2','d',' ','e','d','x',0,
  59. /* 201 */ 209,'r','3','d',' ','e','b','x',0,
  60. /* 210 */ 209,'r','4','d',' ','e','s','p',0,
  61. /* 219 */ 209,'r','5','d',' ','e','b','p',0,
  62. /* 228 */ 209,'r','6','d',' ','e','s','i',0,
  63. /* 237 */ 209,'r','7','d',' ','e','d','i',0,
  64. /* 246 */ 209,'r','0','w',' ','a','x',0,
  65. /* 254 */ 209,'r','1','w',' ','c','x',0,
  66. /* 262 */ 209,'r','2','w',' ','d','x',0,
  67. /* 270 */ 209,'r','3','w',' ','b','x',0,
  68. /* 278 */ 209,'r','4','w',' ','s','p',0,
  69. /* 286 */ 209,'r','5','w',' ','b','p',0,
  70. /* 294 */ 209,'r','6','w',' ','s','i',0,
  71. /* 302 */ 209,'r','7','w',' ','d','i',0,
  72. /* 310 */ 209,'r','0','b',' ','a','l',0,
  73. /* 318 */ 209,'r','1','b',' ','c','l',0,
  74. /* 326 */ 209,'r','2','b',' ','d','l',0,
  75. /* 334 */ 209,'r','3','b',' ','b','l',0,
  76. /* 342 */ 209,'r','4','b',' ','s','p','l',0,
  77. /* 351 */ 209,'r','5','b',' ','b','p','l',0,
  78. /* 360 */ 209,'r','6','b',' ','s','i','l',0,
  79. /* 369 */ 209,'r','7','b',' ','d','i','l',0,
  80. /* 378 */ 209,'r','0','l',' ','a','l',0,
  81. /* 386 */ 209,'r','1','l',' ','c','l',0,
  82. /* 394 */ 209,'r','2','l',' ','d','l',0,
  83. /* 402 */ 209,'r','3','l',' ','b','l',0,
  84. /* 410 */ 209,'r','4','l',' ','s','p','l',0,
  85. /* 419 */ 209,'r','5','l',' ','b','p','l',0,
  86. /* 428 */ 209,'r','6','l',' ','s','i','l',0,
  87. /* 437 */ 209,'r','7','l',' ','d','i','l',0,
  88. /* 446 */ 209,'r','0','h',' ','a','h',0,
  89. /* 454 */ 209,'r','1','h',' ','c','h',0,
  90. /* 462 */ 209,'r','2','h',' ','d','h',0,
  91. /* 470 */ 209,'r','3','h',' ','b','h',0,
  92. /* 478 */ 0
  93. };
  94. #endif
  95. #if 1
  96. static const unsigned char nasm_usemac_fp[] = {
  97. /* From ./macros/fp.mac */
  98. /* 0 */ 195,'_','_','U','S','E','_','F','P','_','_',0,
  99. /* 12 */ 195,'I','n','f',' ','_','_','I','n','f','i','n','i','t','y','_','_',0,
  100. /* 31 */ 195,'N','a','N',' ','_','_','Q','N','a','N','_','_',0,
  101. /* 46 */ 195,'Q','N','a','N',' ','_','_','Q','N','a','N','_','_',0,
  102. /* 62 */ 195,'S','N','a','N',' ','_','_','S','N','a','N','_','_',0,
  103. /* 78 */ 195,'f','l','o','a','t','8','(','x',')',' ','_','_','f','l','o','a','t','8','_','_','(','x',')',0,
  104. /* 103 */ 195,'f','l','o','a','t','1','6','(','x',')',' ','_','_','f','l','o','a','t','1','6','_','_','(','x',')',0,
  105. /* 130 */ 195,'f','l','o','a','t','3','2','(','x',')',' ','_','_','f','l','o','a','t','3','2','_','_','(','x',')',0,
  106. /* 157 */ 195,'f','l','o','a','t','6','4','(','x',')',' ','_','_','f','l','o','a','t','6','4','_','_','(','x',')',0,
  107. /* 184 */ 195,'f','l','o','a','t','8','0','m','(','x',')',' ','_','_','f','l','o','a','t','8','0','m','_','_','(','x',')',0,
  108. /* 213 */ 195,'f','l','o','a','t','8','0','e','(','x',')',' ','_','_','f','l','o','a','t','8','0','e','_','_','(','x',')',0,
  109. /* 242 */ 195,'f','l','o','a','t','1','2','8','l','(','x',')',' ','_','_','f','l','o','a','t','1','2','8','l','_','_','(','x',')',0,
  110. /* 273 */ 195,'f','l','o','a','t','1','2','8','h','(','x',')',' ','_','_','f','l','o','a','t','1','2','8','h','_','_','(','x',')',0,
  111. /* 304 */ 0
  112. };
  113. #endif
  114. #if 1
  115. static const unsigned char nasm_usemac_ifunc[] = {
  116. /* From ./macros/ifunc.mac */
  117. /* 0 */ 195,'_','_','U','S','E','_','I','F','U','N','C','_','_',0,
  118. /* 15 */ 209,'i','l','o','g','2','(','x',')',' ','(','_','_','i','l','o','g','2','e','_','_','(','x',')',')',0,
  119. /* 41 */ 209,'i','l','o','g','2','e','(','x',')',' ','(','_','_','i','l','o','g','2','e','_','_','(','x',')',')',0,
  120. /* 68 */ 209,'i','l','o','g','2','w','(','x',')',' ','(','_','_','i','l','o','g','2','w','_','_','(','x',')',')',0,
  121. /* 95 */ 209,'i','l','o','g','2','f','w','(','x',')',' ','(','_','_','i','l','o','g','2','w','_','_','(','x',')',')',0,
  122. /* 123 */ 209,'i','l','o','g','2','f','(','x',')',' ','(','_','_','i','l','o','g','2','f','_','_','(','x',')',')',0,
  123. /* 150 */ 209,'i','l','o','g','2','c','w','(','x',')',' ','(','_','_','i','l','o','g','2','w','_','_','(','x',')',' ','*',' ','0',' ','+',' ','_','_','i','l','o','g','2','c','_','_','(','x',')',')',0,
  124. /* 198 */ 209,'i','l','o','g','2','c','(','x',')',' ','(','_','_','i','l','o','g','2','c','_','_','(','x',')',')',0,
  125. /* 225 */ 0
  126. };
  127. #endif
  128. #if 1
  129. static const unsigned char nasm_usemac_smartalign[] = {
  130. /* From ./macros/smartalign.mac */
  131. /* 0 */ 195,'_','_','U','S','E','_','S','M','A','R','T','A','L','I','G','N','_','_',0,
  132. /* 20 */ 212,'a','l','i','g','n','m','o','d','e',' ','1','-','2','.','n','o','l','i','s','t',0,
  133. /* 42 */ 174,'%','1',',','n','o','p',0,
  134. /* 50 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
  135. /* 78 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  136. /* 103 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','1',0,
  137. /* 128 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  138. /* 153 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','1',0,
  139. /* 178 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  140. /* 203 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','1',0,
  141. /* 228 */ 142,'%','1',',','g','e','n','e','r','i','c',0,
  142. /* 240 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','8',0,
  143. /* 267 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  144. /* 292 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','8','9',',','0','x','f','6',0,
  145. /* 322 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','8','d',',','0','x','7','4',',','0','x','0','0',0,
  146. /* 357 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',0,
  147. /* 397 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','5','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','9','0',0,
  148. /* 442 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','6','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','8','9',',','0','x','f','f',0,
  149. /* 492 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','7','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','8','d',',','0','x','7','d',',','0','x','0','0',0,
  150. /* 547 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','8','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','8','d',',','0','x','b','d',',','0','x','0','0',',','0','x','0','0',0,
  151. /* 607 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','8',0,
  152. /* 632 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  153. /* 657 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','8','9',',','0','x','f','6',0,
  154. /* 687 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','8','d',',','0','x','7','6',',','0','x','0','0',0,
  155. /* 722 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','8','d',',','0','x','7','4',',','0','x','2','6',',','0','x','0','0',0,
  156. /* 762 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','5','B','_','_',' ','0','x','9','0',',','0','x','8','d',',','0','x','7','4',',','0','x','2','6',',','0','x','0','0',0,
  157. /* 807 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','6','B','_','_',' ','0','x','8','d',',','0','x','b','6',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  158. /* 857 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','7','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','2','6',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  159. /* 912 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','7',0,
  160. /* 937 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  161. /* 962 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  162. /* 992 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  163. /* 1027 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  164. /* 1067 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  165. /* 1092 */ 142,'%','1',',','k','8',0,
  166. /* 1099 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
  167. /* 1127 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  168. /* 1152 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  169. /* 1182 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  170. /* 1217 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  171. /* 1257 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  172. /* 1282 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  173. /* 1307 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  174. /* 1337 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  175. /* 1372 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  176. /* 1412 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  177. /* 1437 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  178. /* 1462 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  179. /* 1492 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  180. /* 1527 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  181. /* 1567 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  182. /* 1592 */ 142,'%','1',',','k','7',0,
  183. /* 1599 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
  184. /* 1627 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  185. /* 1652 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  186. /* 1682 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  187. /* 1717 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  188. /* 1757 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  189. /* 1782 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  190. /* 1807 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','8','b',',','0','x','c','0',0,
  191. /* 1837 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','8','d',',','0','x','0','4',',','0','x','2','0',0,
  192. /* 1872 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','8','d',',','0','x','4','4',',','0','x','2','0',',','0','x','0','0',0,
  193. /* 1912 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','5','B','_','_',' ','0','x','8','d',',','0','x','4','4',',','0','x','2','0',',','0','x','0','0',',','0','x','9','0',0,
  194. /* 1957 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','6','B','_','_',' ','0','x','8','d',',','0','x','8','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  195. /* 2007 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','7','B','_','_',' ','0','x','8','d',',','0','x','0','4',',','0','x','0','5',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  196. /* 2062 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','7',0,
  197. /* 2087 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  198. /* 2112 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  199. /* 2142 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  200. /* 2177 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
  201. /* 2217 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  202. /* 2242 */ 142,'%','1',',','p','6',0,
  203. /* 2249 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
  204. /* 2277 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  205. /* 2302 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  206. /* 2332 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',0,
  207. /* 2367 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','0',',','0','x','0','0',0,
  208. /* 2407 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
  209. /* 2432 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  210. /* 2457 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  211. /* 2487 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',0,
  212. /* 2522 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','0',',','0','x','0','0',0,
  213. /* 2562 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','5','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
  214. /* 2607 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','6','B','_','_',' ','0','x','6','6',',','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
  215. /* 2657 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','7','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  216. /* 2712 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','8','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','4',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  217. /* 2772 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','8',0,
  218. /* 2797 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
  219. /* 2822 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
  220. /* 2852 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',0,
  221. /* 2887 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','0',',','0','x','0','0',0,
  222. /* 2927 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','5','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
  223. /* 2972 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','6','B','_','_',' ','0','x','6','6',',','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
  224. /* 3022 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','7','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  225. /* 3077 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','8','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','4',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
  226. /* 3137 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','8',0,
  227. /* 3162 */ 199,0,
  228. /* 3164 */ 204,'u','n','k','n','o','w','n',' ','a','l','i','g','n','m','e','n','t',' ','m','o','d','e',':',' ','%','1',0,
  229. /* 3192 */ 200,0,
  230. /* 3194 */ 167,'%','2',0,
  231. /* 3198 */ 174,'%','2',',','n','o','j','m','p',0,
  232. /* 3208 */ 236,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','-','1',0,
  233. /* 3236 */ 199,0,
  234. /* 3238 */ 236,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','%','2',0,
  235. /* 3266 */ 200,0,
  236. /* 3268 */ 200,0,
  237. /* 3270 */ 236,'_','_','A','L','I','G','N','M','O','D','E','_','_',' ','%','1',',','_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',0,
  238. /* 3312 */ 202,0,
  239. /* 3314 */ 232,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',0,
  240. /* 3333 */ 212,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',0,
  241. /* 3352 */ 's','e','c','t','a','l','i','g','n',' ','%','1',0,
  242. /* 3365 */ 167,'%','2',0,
  243. /* 3369 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',0,
  244. /* 3412 */ 128,'_','_','P','A','S','S','_','_',' ','=','=',' ','0',' ','|','|',' ','_','_','P','A','S','S','_','_',' ','=','=',' ','3',0,
  245. /* 3444 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','n','o','p',0,
  246. /* 3488 */ 199,0,
  247. /* 3490 */ 222,0,
  248. /* 3492 */ 193,'%','$','p','a','d',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',0,
  249. /* 3533 */ 160,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','!','=',' ','-','1',' ','&','&',' ','%','$','p','a','d',' ','>',' ','_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',0,
  250. /* 3599 */ 'j','m','p',' ','%','$','e','n','d',0,
  251. /* 3609 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','n','o','p',0,
  252. /* 3653 */ 199,0,
  253. /* 3655 */ 't','i','m','e','s',' ','(','%','$','p','a','d',' ','/',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','G','R','O','U','P','_','_',')',' ','d','b',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','%','[','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','G','R','O','U','P','_','_',']','B','_','_',0,
  254. /* 3773 */ 193,'%','$','p','a','d',' ','%','$','p','a','d',' ','%',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','G','R','O','U','P','_','_',0,
  255. /* 3819 */ 160,'%','$','p','a','d',' ','>',' ','0',0,
  256. /* 3830 */ 'd','b',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','%','[','%','$','p','a','d',']','B','_','_',0,
  257. /* 3868 */ 200,0,
  258. /* 3870 */ 200,0,
  259. /* 3872 */ '%','$','e','n','d',':',0,
  260. /* 3879 */ 220,0,
  261. /* 3881 */ 200,0,
  262. /* 3883 */ 202,0,
  263. /* 3885 */ 'a','l','i','g','n','m','o','d','e',' ','g','e','n','e','r','i','c',0,
  264. /* 3903 */ 0
  265. };
  266. #endif
  267. #if 1
  268. const unsigned char nasm_stdmac_tasm[] = {
  269. /* From ./macros/standard.mac */
  270. /* 0 */ 209,'I','D','E','A','L',0,
  271. /* 7 */ 209,'J','U','M','P','S',0,
  272. /* 14 */ 209,'P','3','8','6',0,
  273. /* 20 */ 209,'P','4','8','6',0,
  274. /* 26 */ 209,'P','5','8','6',0,
  275. /* 32 */ 209,'E','N','D',0,
  276. /* 37 */ 0
  277. };
  278. #endif
  279. #if 1
  280. const unsigned char nasm_stdmac_nasm[] = {
  281. /* From ./macros/standard.mac */
  282. /* 0 */ 195,'_','_','F','I','L','E','_','_',0,
  283. /* 10 */ 195,'_','_','L','I','N','E','_','_',0,
  284. /* 20 */ 195,'_','_','B','I','T','S','_','_',0,
  285. /* 30 */ 195,'_','_','S','E','C','T','_','_',0,
  286. /* 40 */ 212,'s','e','c','t','i','o','n',' ','1','+','.','n','o','l','i','s','t',0,
  287. /* 59 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','%','1',']',0,
  288. /* 82 */ '_','_','S','E','C','T','_','_',0,
  289. /* 91 */ 202,0,
  290. /* 93 */ 212,'s','e','g','m','e','n','t',' ','1','+','.','n','o','l','i','s','t',0,
  291. /* 112 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','g','m','e','n','t',' ','%','1',']',0,
  292. /* 135 */ '_','_','S','E','C','T','_','_',0,
  293. /* 144 */ 202,0,
  294. /* 146 */ 195,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','1',0,
  295. /* 185 */ 212,'s','e','c','t','a','l','i','g','n',' ','1','.','n','o','l','i','s','t',0,
  296. /* 205 */ 178,'%','1',0,
  297. /* 209 */ 160,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','=',' ','1',0,
  298. /* 250 */ '[','s','e','c','t','a','l','i','g','n',' ','%','1',']',0,
  299. /* 265 */ 200,0,
  300. /* 267 */ 199,0,
  301. /* 269 */ 174,'%','1',',','o','f','f',0,
  302. /* 277 */ 195,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','0',0,
  303. /* 316 */ 142,'%','1',',','o','n',0,
  304. /* 323 */ 195,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','1',0,
  305. /* 362 */ 200,0,
  306. /* 364 */ 200,0,
  307. /* 366 */ 202,0,
  308. /* 368 */ 212,'a','b','s','o','l','u','t','e',' ','1','+','.','n','o','l','i','s','t',0,
  309. /* 388 */ 195,'_','_','S','E','C','T','_','_',' ','[','a','b','s','o','l','u','t','e',' ','%','1',']',0,
  310. /* 412 */ '_','_','S','E','C','T','_','_',0,
  311. /* 421 */ 202,0,
  312. /* 423 */ 212,'s','t','r','u','c',' ','1','-','2','.','n','o','l','i','s','t',' ','0',0,
  313. /* 443 */ 222,0,
  314. /* 445 */ 195,'%','$','s','t','r','u','c','n','a','m','e',' ','%','1',0,
  315. /* 461 */ '[','a','b','s','o','l','u','t','e',' ','%','2',']',0,
  316. /* 475 */ '%','$','s','t','r','u','c','n','a','m','e',':',0,
  317. /* 488 */ 202,0,
  318. /* 490 */ 212,'e','n','d','s','t','r','u','c',' ','0','.','n','o','l','i','s','t',0,
  319. /* 509 */ '%','{','$','s','t','r','u','c','n','a','m','e','}','_','s','i','z','e',' ','e','q','u',' ','(','$','-','%','$','s','t','r','u','c','n','a','m','e',')',0,
  320. /* 548 */ 220,0,
  321. /* 550 */ '_','_','S','E','C','T','_','_',0,
  322. /* 559 */ 202,0,
  323. /* 561 */ 212,'i','s','t','r','u','c',' ','1','.','n','o','l','i','s','t',0,
  324. /* 578 */ 222,0,
  325. /* 580 */ 195,'%','$','s','t','r','u','c','n','a','m','e',' ','%','1',0,
  326. /* 596 */ '%','$','s','t','r','u','c','s','t','a','r','t',':',0,
  327. /* 610 */ 202,0,
  328. /* 612 */ 212,'a','t',' ','1','-','2','+','.','n','o','l','i','s','t',0,
  329. /* 628 */ 't','i','m','e','s',' ','(','%','1','-','%','$','s','t','r','u','c','n','a','m','e',')','-','(','$','-','%','$','s','t','r','u','c','s','t','a','r','t',')',' ','d','b',' ','0',0,
  330. /* 673 */ '%','2',0,
  331. /* 676 */ 202,0,
  332. /* 678 */ 212,'i','e','n','d',' ','0','.','n','o','l','i','s','t',0,
  333. /* 693 */ 't','i','m','e','s',' ','%','{','$','s','t','r','u','c','n','a','m','e','}','_','s','i','z','e','-','(','$','-','%','$','s','t','r','u','c','s','t','a','r','t',')',' ','d','b',' ','0',0,
  334. /* 740 */ 220,0,
  335. /* 742 */ 202,0,
  336. /* 744 */ 212,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',' ','n','o','p',0,
  337. /* 767 */ 's','e','c','t','a','l','i','g','n',' ','%','1',0,
  338. /* 780 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',0,
  339. /* 823 */ 202,0,
  340. /* 825 */ 212,'a','l','i','g','n','b',' ','1','-','2','+','.','n','o','l','i','s','t',0,
  341. /* 845 */ 's','e','c','t','a','l','i','g','n',' ','%','1',0,
  342. /* 858 */ 166,'%','2',0,
  343. /* 862 */ 'r','e','s','b',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',0,
  344. /* 901 */ 199,0,
  345. /* 903 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',0,
  346. /* 946 */ 200,0,
  347. /* 948 */ 202,0,
  348. /* 950 */ 212,'b','i','t','s',' ','1','+','.','n','o','l','i','s','t',0,
  349. /* 966 */ '[','b','i','t','s',' ','%','1',']',0,
  350. /* 976 */ 202,0,
  351. /* 978 */ 212,'u','s','e','1','6',' ','0','.','n','o','l','i','s','t',0,
  352. /* 994 */ '[','b','i','t','s',' ','1','6',']',0,
  353. /* 1004 */ 202,0,
  354. /* 1006 */ 212,'u','s','e','3','2',' ','0','.','n','o','l','i','s','t',0,
  355. /* 1022 */ '[','b','i','t','s',' ','3','2',']',0,
  356. /* 1032 */ 202,0,
  357. /* 1034 */ 212,'u','s','e','6','4',' ','0','.','n','o','l','i','s','t',0,
  358. /* 1050 */ '[','b','i','t','s',' ','6','4',']',0,
  359. /* 1060 */ 202,0,
  360. /* 1062 */ 212,'e','x','t','e','r','n',' ','1','-','*','.','n','o','l','i','s','t',0,
  361. /* 1081 */ 223,'%','0',0,
  362. /* 1085 */ '[','e','x','t','e','r','n',' ','%','1',']',0,
  363. /* 1097 */ 226,'1',0,
  364. /* 1100 */ 203,0,
  365. /* 1102 */ 202,0,
  366. /* 1104 */ 212,'s','t','a','t','i','c',' ','1','-','*','.','n','o','l','i','s','t',0,
  367. /* 1123 */ 223,'%','0',0,
  368. /* 1127 */ '[','s','t','a','t','i','c',' ','%','1',']',0,
  369. /* 1139 */ 226,'1',0,
  370. /* 1142 */ 203,0,
  371. /* 1144 */ 202,0,
  372. /* 1146 */ 212,'g','l','o','b','a','l',' ','1','-','*','.','n','o','l','i','s','t',0,
  373. /* 1165 */ 223,'%','0',0,
  374. /* 1169 */ '[','g','l','o','b','a','l',' ','%','1',']',0,
  375. /* 1181 */ 226,'1',0,
  376. /* 1184 */ 203,0,
  377. /* 1186 */ 202,0,
  378. /* 1188 */ 212,'c','o','m','m','o','n',' ','1','-','*','.','n','o','l','i','s','t',0,
  379. /* 1207 */ 223,'%','0',0,
  380. /* 1211 */ '[','c','o','m','m','o','n',' ','%','1',']',0,
  381. /* 1223 */ 226,'1',0,
  382. /* 1226 */ 203,0,
  383. /* 1228 */ 202,0,
  384. /* 1230 */ 212,'c','p','u',' ','1','+','.','n','o','l','i','s','t',0,
  385. /* 1245 */ '[','c','p','u',' ','%','1',']',0,
  386. /* 1254 */ 202,0,
  387. /* 1256 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','n','o','d','a','z',0,
  388. /* 1277 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','n','e','a','r',0,
  389. /* 1299 */ 195,'_','_','F','L','O','A','T','_','_',' ','_','_','F','L','O','A','T','_','D','A','Z','_','_',',','_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',0,
  390. /* 1340 */ 212,'f','l','o','a','t',' ','1','-','*','.','n','o','l','i','s','t',0,
  391. /* 1358 */ 223,'%','0',0,
  392. /* 1362 */ '[','f','l','o','a','t',' ','%','1',']',0,
  393. /* 1373 */ 174,'%','1',',','d','a','z',0,
  394. /* 1381 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','d','a','z',0,
  395. /* 1400 */ 142,'%','1',',','n','o','d','a','z',0,
  396. /* 1410 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','n','o','d','a','z',0,
  397. /* 1431 */ 142,'%','1',',','n','e','a','r',0,
  398. /* 1440 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','n','e','a','r',0,
  399. /* 1462 */ 142,'%','1',',','u','p',0,
  400. /* 1469 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','u','p',0,
  401. /* 1489 */ 142,'%','1',',','d','o','w','n',0,
  402. /* 1498 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','d','o','w','n',0,
  403. /* 1520 */ 142,'%','1',',','z','e','r','o',0,
  404. /* 1529 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','z','e','r','o',0,
  405. /* 1551 */ 142,'%','1',',','d','e','f','a','u','l','t',0,
  406. /* 1563 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','n','o','d','a','z',0,
  407. /* 1584 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','n','e','a','r',0,
  408. /* 1606 */ 200,0,
  409. /* 1608 */ 226,'1',0,
  410. /* 1611 */ 203,0,
  411. /* 1613 */ 202,0,
  412. /* 1615 */ 212,'d','e','f','a','u','l','t',' ','1','+','.','n','o','l','i','s','t',0,
  413. /* 1634 */ '[','d','e','f','a','u','l','t',' ','%','1',']',0,
  414. /* 1647 */ 202,0,
  415. /* 1649 */ 212,'u','s','e','r','e','l',' ','0','.','n','o','l','i','s','t',0,
  416. /* 1666 */ '[','d','e','f','a','u','l','t',' ','r','e','l',']',0,
  417. /* 1680 */ 202,0,
  418. /* 1682 */ 212,'u','s','e','a','b','s',' ','0','.','n','o','l','i','s','t',0,
  419. /* 1699 */ '[','d','e','f','a','u','l','t',' ','a','b','s',']',0,
  420. /* 1713 */ 202,0,
  421. /* 1715 */ 212,'u','s','e','b','n','d',' ','0','.','n','o','l','i','s','t',0,
  422. /* 1732 */ '[','d','e','f','a','u','l','t',' ','b','n','d',']',0,
  423. /* 1746 */ 202,0,
  424. /* 1748 */ 212,'u','s','e','n','o','b','n','d',' ','0','.','n','o','l','i','s','t',0,
  425. /* 1767 */ '[','d','e','f','a','u','l','t',' ','n','o','b','n','d',']',0,
  426. /* 1783 */ 202,0,
  427. /* 1785 */ 212,'i','n','c','b','i','n',' ','1','-','2','+','.','n','o','l','i','s','t',' ','0',0,
  428. /* 1807 */ 222,0,
  429. /* 1809 */ 219,'%','$','d','e','p',' ','%','1',0,
  430. /* 1819 */ 198,'%','$','d','e','p',0,
  431. /* 1826 */ '%','?',' ','%','$','d','e','p',',','%','2',0,
  432. /* 1838 */ 220,0,
  433. /* 1840 */ 202,0,
  434. /* 1842 */ 0
  435. };
  436. #endif
  437. #if defined(OF_AOUT) || defined(OF_AOUTB)
  438. const unsigned char aout_stdmac[] = {
  439. /* From ./output/outaout.mac */
  440. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  441. /* 26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  442. /* 44 */ 202,0,
  443. /* 46 */ 0
  444. };
  445. #endif
  446. #if defined(OF_AS86)
  447. const unsigned char as86_stdmac[] = {
  448. /* From ./output/outas86.mac */
  449. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  450. /* 26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  451. /* 44 */ 202,0,
  452. /* 46 */ 0
  453. };
  454. #endif
  455. #if defined(OF_BIN)
  456. const unsigned char bin_stdmac[] = {
  457. /* From ./output/outbin.mac */
  458. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  459. /* 26 */ 212,'o','r','g',' ','1','+','.','n','o','l','i','s','t',0,
  460. /* 41 */ '[','o','r','g',' ','%','1',']',0,
  461. /* 50 */ 202,0,
  462. /* 52 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  463. /* 70 */ 202,0,
  464. /* 72 */ 0
  465. };
  466. #endif
  467. #if defined(OF_COFF) || defined(OF_WIN32) || defined(OF_WIN64)
  468. const unsigned char coff_stdmac[] = {
  469. /* From ./output/outcoff.mac */
  470. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  471. /* 26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  472. /* 44 */ 202,0,
  473. /* 46 */ 212,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
  474. /* 64 */ '[','e','x','p','o','r','t',' ','%','1',']',0,
  475. /* 76 */ 202,0,
  476. /* 78 */ 212,'s','a','f','e','s','e','h',' ','1','.','n','o','l','i','s','t',0,
  477. /* 96 */ '[','s','a','f','e','s','e','h',' ','%','1',']',0,
  478. /* 109 */ 202,0,
  479. /* 111 */ 0
  480. };
  481. #endif
  482. #if defined(OF_DBG)
  483. const unsigned char dbg_stdmac[] = {
  484. /* From ./output/outdbg.mac */
  485. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  486. /* 26 */ 212,'g','r','o','u','p',' ','1','+','.','n','o','l','i','s','t',0,
  487. /* 43 */ '[','g','r','o','u','p',' ','%','1',']',0,
  488. /* 54 */ 202,0,
  489. /* 56 */ 212,'u','p','p','e','r','c','a','s','e',' ','0','+','.','n','o','l','i','s','t',0,
  490. /* 77 */ 221,'d','b','g',' ','u','p','p','e','r','c','a','s','e',' ','%','1',0,
  491. /* 95 */ 202,0,
  492. /* 97 */ 212,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
  493. /* 115 */ 221,'d','b','g',' ','e','x','p','o','r','t',' ','%','1',0,
  494. /* 130 */ 202,0,
  495. /* 132 */ 212,'i','m','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
  496. /* 150 */ 221,'d','b','g',' ','i','m','p','o','r','t',' ','%','1',0,
  497. /* 165 */ 202,0,
  498. /* 167 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  499. /* 185 */ 202,0,
  500. /* 187 */ 0
  501. };
  502. #endif
  503. #if defined(OF_ELF) || defined(OF_ELF32) || defined(OF_ELF64)
  504. const unsigned char elf_stdmac[] = {
  505. /* From ./output/outelf.mac */
  506. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  507. /* 26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  508. /* 44 */ 195,'$','_','%','1',' ','$','%','1',0,
  509. /* 54 */ 202,0,
  510. /* 56 */ 212,'o','s','a','b','i',' ','1','+','.','n','o','l','i','s','t',0,
  511. /* 73 */ '[','%','?',' ','%','1',']',0,
  512. /* 81 */ 202,0,
  513. /* 83 */ 0
  514. };
  515. #endif
  516. #if defined(OF_MACHO) || defined(OF_MACHO32) || defined(OF_MACHO64)
  517. const unsigned char macho_stdmac[] = {
  518. /* From ./output/outmacho.mac */
  519. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  520. /* 26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  521. /* 44 */ 202,0,
  522. /* 46 */ 212,'s','u','b','s','e','c','t','i','o','n','s','_','v','i','a','_','s','y','m','b','o','l','s',' ','0','.','n','o','l','i','s','t',0,
  523. /* 80 */ 221,'_','_','O','U','T','P','U','T','_','F','O','R','M','A','T','_','_',' ','%','?',0,
  524. /* 102 */ 202,0,
  525. /* 104 */ 212,'n','o','_','d','e','a','d','_','s','t','r','i','p',' ','1','-','*','.','n','o','l','i','s','t',0,
  526. /* 130 */ 223,'%','0',0,
  527. /* 134 */ 221,'_','_','O','U','T','P','U','T','_','F','O','R','M','A','T','_','_',' ','%','?',' ','%','1',0,
  528. /* 159 */ 226,'1',0,
  529. /* 162 */ 203,0,
  530. /* 164 */ 202,0,
  531. /* 166 */ 0
  532. };
  533. #endif
  534. #if defined(OF_OBJ)
  535. const unsigned char obj_stdmac[] = {
  536. /* From ./output/outobj.mac */
  537. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  538. /* 26 */ 212,'g','r','o','u','p',' ','1','+','.','n','o','l','i','s','t',0,
  539. /* 43 */ '[','g','r','o','u','p',' ','%','1',']',0,
  540. /* 54 */ 202,0,
  541. /* 56 */ 212,'u','p','p','e','r','c','a','s','e',' ','0','+','.','n','o','l','i','s','t',0,
  542. /* 77 */ '[','u','p','p','e','r','c','a','s','e',' ','%','1',']',0,
  543. /* 92 */ 202,0,
  544. /* 94 */ 212,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
  545. /* 112 */ '[','e','x','p','o','r','t',' ','%','1',']',0,
  546. /* 124 */ 202,0,
  547. /* 126 */ 212,'i','m','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
  548. /* 144 */ '[','i','m','p','o','r','t',' ','%','1',']',0,
  549. /* 156 */ 202,0,
  550. /* 158 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  551. /* 176 */ 202,0,
  552. /* 178 */ 0
  553. };
  554. #endif
  555. #if defined(OF_RDF2)
  556. const unsigned char rdf2_stdmac[] = {
  557. /* From ./output/outrdf2.mac */
  558. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  559. /* 26 */ 212,'l','i','b','r','a','r','y',' ','1','+','.','n','o','l','i','s','t',0,
  560. /* 45 */ '[','l','i','b','r','a','r','y',' ','%','1',']',0,
  561. /* 58 */ 202,0,
  562. /* 60 */ 212,'m','o','d','u','l','e',' ','1','+','.','n','o','l','i','s','t',0,
  563. /* 78 */ '[','m','o','d','u','l','e',' ','%','1',']',0,
  564. /* 90 */ 202,0,
  565. /* 92 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  566. /* 110 */ 202,0,
  567. /* 112 */ 0
  568. };
  569. #endif
  570. #if defined(OF_RDF)
  571. const unsigned char rdf_stdmac[] = {
  572. /* From ./output/outrdf.mac */
  573. /* 0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
  574. /* 26 */ 212,'l','i','b','r','a','r','y',' ','1','+','.','n','o','l','i','s','t',0,
  575. /* 45 */ '[','l','i','b','r','a','r','y',' ','%','1',']',0,
  576. /* 58 */ 202,0,
  577. /* 60 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
  578. /* 78 */ 202,0,
  579. /* 80 */ 0
  580. };
  581. #endif
  582. const unsigned char *nasm_stdmac_find_package(const char *package)
  583. {
  584. static const struct {
  585. const char *package;
  586. const unsigned char *macros;
  587. } packages[4] = {
  588. { "altreg", nasm_usemac_altreg },
  589. { "fp", nasm_usemac_fp },
  590. { "ifunc", nasm_usemac_ifunc },
  591. { "smartalign", nasm_usemac_smartalign },
  592. };
  593. #define UNUSED (65535/3)
  594. static const int16_t hash1[4] = {
  595. 0,
  596. 0,
  597. 2,
  598. -1,
  599. };
  600. static const int16_t hash2[4] = {
  601. 1,
  602. 2,
  603. UNUSED,
  604. UNUSED,
  605. };
  606. uint32_t k1, k2;
  607. uint64_t crc;
  608. uint16_t ix;
  609. crc = crc64i(UINT64_C(0x076259c3e291c26c), package);
  610. k1 = (uint32_t)crc;
  611. k2 = (uint32_t)(crc >> 32);
  612. ix = hash1[k1 & 0x3] + hash2[k2 & 0x3];
  613. if (ix >= 4)
  614. return NULL;
  615. if (nasm_stricmp(packages[ix].package, package))
  616. return NULL;
  617. return packages[ix].macros;
  618. }