summaryrefslogtreecommitdiff
path: root/vere/ext/nasm/macros
diff options
context:
space:
mode:
Diffstat (limited to 'vere/ext/nasm/macros')
-rw-r--r--vere/ext/nasm/macros/altreg.mac107
-rw-r--r--vere/ext/nasm/macros/fp.mac62
-rw-r--r--vere/ext/nasm/macros/ifunc.mac48
-rw-r--r--vere/ext/nasm/macros/macros.c875
-rwxr-xr-xvere/ext/nasm/macros/macros.pl311
-rw-r--r--vere/ext/nasm/macros/masm.mac82
-rw-r--r--vere/ext/nasm/macros/smartalign.mac191
-rw-r--r--vere/ext/nasm/macros/standard.mac331
8 files changed, 2007 insertions, 0 deletions
diff --git a/vere/ext/nasm/macros/altreg.mac b/vere/ext/nasm/macros/altreg.mac
new file mode 100644
index 0000000..16134cd
--- /dev/null
+++ b/vere/ext/nasm/macros/altreg.mac
@@ -0,0 +1,107 @@
+;; --------------------------------------------------------------------------
+;;
+;; Copyright 1996-2009 The NASM Authors - All Rights Reserved
+;; See the file AUTHORS included with the NASM distribution for
+;; the specific copyright holders.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following
+;; conditions are met:
+;;
+;; * Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; * Redistributions in binary form must reproduce the above
+;; copyright notice, this list of conditions and the following
+;; disclaimer in the documentation and/or other materials provided
+;; with the distribution.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;
+;; --------------------------------------------------------------------------
+
+;;
+;; altreg.mac
+;;
+;; Alternate register names for 64-bit mode
+;;
+
+USE: altreg
+
+;;
+;; Intel documents R8L-R15L instead of R8B-R15B
+;; (Warning: this may confuse people with an AT&T-style assembly
+;; background, where "r8l" means R8D, etc.)
+;;
+%idefine r8l r8b
+%idefine r9l r9b
+%idefine r10l r10b
+%idefine r11l r11b
+%idefine r12l r12b
+%idefine r13l r13b
+%idefine r14l r14b
+%idefine r15l r15b
+
+;;
+;; Numeric register names for the lower 8 registers
+;;
+%idefine r0 rax
+%idefine r1 rcx
+%idefine r2 rdx
+%idefine r3 rbx
+%idefine r4 rsp
+%idefine r5 rbp
+%idefine r6 rsi
+%idefine r7 rdi
+
+%idefine r0d eax
+%idefine r1d ecx
+%idefine r2d edx
+%idefine r3d ebx
+%idefine r4d esp
+%idefine r5d ebp
+%idefine r6d esi
+%idefine r7d edi
+
+%idefine r0w ax
+%idefine r1w cx
+%idefine r2w dx
+%idefine r3w bx
+%idefine r4w sp
+%idefine r5w bp
+%idefine r6w si
+%idefine r7w di
+
+%idefine r0b al
+%idefine r1b cl
+%idefine r2b dl
+%idefine r3b bl
+%idefine r4b spl
+%idefine r5b bpl
+%idefine r6b sil
+%idefine r7b dil
+
+%idefine r0l al
+%idefine r1l cl
+%idefine r2l dl
+%idefine r3l bl
+%idefine r4l spl
+%idefine r5l bpl
+%idefine r6l sil
+%idefine r7l dil
+
+%idefine r0h ah
+%idefine r1h ch
+%idefine r2h dh
+%idefine r3h bh
diff --git a/vere/ext/nasm/macros/fp.mac b/vere/ext/nasm/macros/fp.mac
new file mode 100644
index 0000000..3a094a5
--- /dev/null
+++ b/vere/ext/nasm/macros/fp.mac
@@ -0,0 +1,62 @@
+;; --------------------------------------------------------------------------
+;;
+;; Copyright 2010-2020 The NASM Authors - All Rights Reserved
+;; See the file AUTHORS included with the NASM distribution for
+;; the specific copyright holders.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following
+;; conditions are met:
+;;
+;; * Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; * Redistributions in binary form must reproduce the above
+;; copyright notice, this list of conditions and the following
+;; disclaimer in the documentation and/or other materials provided
+;; with the distribution.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;
+;; --------------------------------------------------------------------------
+
+;;
+;; fp.mac
+;;
+;; Floating-point utility macros
+;;
+
+USE: fp
+
+%define Inf __?Infinity?__
+%define NaN __?QNaN?__
+%define QNaN __?QNaN?__
+%define SNaN __?SNaN?__
+
+%define float8(x) __?float8?__(x)
+%define float16(x) __?float16?__(x)
+%define bfloat16(x) __?bfloat16?__(x)
+%define float32(x) __?float32?__(x)
+%define float64(x) __?float64?__(x)
+%define float80m(x) __?float80m?__(x)
+%define float80e(x) __?float80e?__(x)
+%define float128l(x) __?float128l?__(x)
+%define float128h(x) __?float128h?__(x)
+
+%imacro bf16 1-*.nolist
+ %rep %0
+ dw __?bfloat16?__(%1)
+ %rotate 1
+ %endrep
+%endmacro
diff --git a/vere/ext/nasm/macros/ifunc.mac b/vere/ext/nasm/macros/ifunc.mac
new file mode 100644
index 0000000..4db46d3
--- /dev/null
+++ b/vere/ext/nasm/macros/ifunc.mac
@@ -0,0 +1,48 @@
+;; --------------------------------------------------------------------------
+;;
+;; Copyright 2012-2016 The NASM Authors - All Rights Reserved
+;; See the file AUTHORS included with the NASM distribution for
+;; the specific copyright holders.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following
+;; conditions are met:
+;;
+;; * Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; * Redistributions in binary form must reproduce the above
+;; copyright notice, this list of conditions and the following
+;; disclaimer in the documentation and/or other materials provided
+;; with the distribution.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;
+;; --------------------------------------------------------------------------
+
+;;
+;; ifunc.mac
+;;
+;; Integer function utility macros
+;;
+
+USE: ifunc
+
+%idefine ilog2(x) (__?ilog2e?__(x))
+%idefine ilog2e(x) (__?ilog2e?__(x))
+%idefine ilog2w(x) (__?ilog2w?__(x))
+%idefine ilog2fw(x) (__?ilog2w?__(x))
+%idefine ilog2f(x) (__?ilog2f?__(x))
+%idefine ilog2cw(x) (__?ilog2w?__(x) * 0 + __?ilog2c?__(x))
+%idefine ilog2c(x) (__?ilog2c?__(x))
diff --git a/vere/ext/nasm/macros/macros.c b/vere/ext/nasm/macros/macros.c
new file mode 100644
index 0000000..b00e426
--- /dev/null
+++ b/vere/ext/nasm/macros/macros.c
@@ -0,0 +1,875 @@
+/*
+ * Do not edit - this file auto-generated by macros.pl from:
+ * version.mac
+ * ./macros/altreg.mac
+ * ./macros/fp.mac
+ * ./macros/ifunc.mac
+ * ./macros/masm.mac
+ * ./macros/smartalign.mac
+ * ./macros/standard.mac
+ * ./output/outaout.mac
+ * ./output/outas86.mac
+ * ./output/outbin.mac
+ * ./output/outcoff.mac
+ * ./output/outdbg.mac
+ * ./output/outelf.mac
+ * ./output/outmacho.mac
+ * ./output/outobj.mac
+ */
+
+#include "tables.h"
+#include "nasmlib.h"
+#include "hashtbl.h"
+#include "outform.h"
+
+#define p_if 128
+#define p_ifctx 129
+#define p_ifdef 130
+#define p_ifdefalias 131
+#define p_ifdifi 132
+#define p_ifempty 133
+#define p_ifenv 134
+#define p_ifid 135
+#define p_ifidn 136
+#define p_ifidni 137
+#define p_ifmacro 138
+#define p_ifnum 139
+#define p_ifstr 140
+#define p_iftoken 141
+#define p_ifusable 142
+#define p_ifusing 143
+#define p_ifn 144
+#define p_ifnctx 145
+#define p_ifndef 146
+#define p_ifndefalias 147
+#define p_ifndifi 148
+#define p_ifnempty 149
+#define p_ifnenv 150
+#define p_ifnid 151
+#define p_ifnidn 152
+#define p_ifnidni 153
+#define p_ifnmacro 154
+#define p_ifnnum 155
+#define p_ifnstr 156
+#define p_ifntoken 157
+#define p_ifnusable 158
+#define p_ifnusing 159
+#define p_elif 160
+#define p_elifctx 161
+#define p_elifdef 162
+#define p_elifdefalias 163
+#define p_elifdifi 164
+#define p_elifempty 165
+#define p_elifenv 166
+#define p_elifid 167
+#define p_elifidn 168
+#define p_elifidni 169
+#define p_elifmacro 170
+#define p_elifnum 171
+#define p_elifstr 172
+#define p_eliftoken 173
+#define p_elifusable 174
+#define p_elifusing 175
+#define p_elifn 176
+#define p_elifnctx 177
+#define p_elifndef 178
+#define p_elifndefalias 179
+#define p_elifndifi 180
+#define p_elifnempty 181
+#define p_elifnenv 182
+#define p_elifnid 183
+#define p_elifnidn 184
+#define p_elifnidni 185
+#define p_elifnmacro 186
+#define p_elifnnum 187
+#define p_elifnstr 188
+#define p_elifntoken 189
+#define p_elifnusable 190
+#define p_elifnusing 191
+#define p_aliases 192
+#define p_arg 193
+#define p_clear 194
+#define p_depend 195
+#define p_else 196
+#define p_endif 197
+#define p_endm 198
+#define p_endmacro 199
+#define p_endrep 200
+#define p_error 201
+#define p_exitmacro 202
+#define p_exitrep 203
+#define p_fatal 204
+#define p_include 205
+#define p_line 206
+#define p_local 207
+#define p_null 208
+#define p_pop 209
+#define p_pragma 210
+#define p_push 211
+#define p_rep 212
+#define p_repl 213
+#define p_require 214
+#define p_rotate 215
+#define p_stacksize 216
+#define p_undef 217
+#define p_undefalias 218
+#define p_use 219
+#define p_warning 220
+#define p_assign 222
+#define p_iassign 223
+#define p_defalias 224
+#define p_idefalias 225
+#define p_define 226
+#define p_idefine 227
+#define p_defstr 228
+#define p_idefstr 229
+#define p_deftok 230
+#define p_ideftok 231
+#define p_macro 232
+#define p_imacro 233
+#define p_pathsearch 234
+#define p_ipathsearch 235
+#define p_rmacro 236
+#define p_irmacro 237
+#define p_strcat 238
+#define p_istrcat 239
+#define p_strlen 240
+#define p_istrlen 241
+#define p_substr 242
+#define p_isubstr 243
+#define p_xdefine 244
+#define p_ixdefine 245
+#define p_unmacro 246
+#define p_unimacro 247
+#define EOL 127
+
+
+#if 1
+const unsigned char nasm_stdmac_version[] = {
+ /* From version.mac */
+ /* 0 */ p_define,'_','_','?','N','A','S','M','_','M','A','J','O','R','?','_','_',' ','2',EOL,
+ /* 20 */ p_define,'_','_','?','N','A','S','M','_','M','I','N','O','R','?','_','_',' ','1','6',EOL,
+ /* 41 */ p_define,'_','_','?','N','A','S','M','_','S','U','B','M','I','N','O','R','?','_','_',' ','1',EOL,
+ /* 64 */ p_define,'_','_','?','N','A','S','M','_','P','A','T','C','H','L','E','V','E','L','?','_','_',' ','0',EOL,
+ /* 89 */ p_define,'_','_','?','N','A','S','M','_','V','E','R','S','I','O','N','_','I','D','?','_','_',' ','0','0','2','1','0','0','1','0','0','h',EOL,
+ /* 123 */ p_define,'_','_','?','N','A','S','M','_','V','E','R','?','_','_',' ','\"','2','.','1','6','.','0','1','\"',EOL,
+ /* 149 */ EOL
+};
+#endif
+
+#if 1
+static const unsigned char nasm_usemac_altreg[] = {
+ /* From ./macros/altreg.mac */
+ /* 0 */ p_define,'_','_','?','U','S','E','_','A','L','T','R','E','G','?','_','_',EOL,
+ /* 0 */ p_defalias,'_','_','U','S','E','_','A','L','T','R','E','G','_','_',' ','_','_','?','U','S','E','A','L','T','R','E','G','?','_','_',EOL,
+ /* 32 */ p_idefine,'r','8','l',' ','r','8','b',EOL,
+ /* 41 */ p_idefine,'r','9','l',' ','r','9','b',EOL,
+ /* 50 */ p_idefine,'r','1','0','l',' ','r','1','0','b',EOL,
+ /* 61 */ p_idefine,'r','1','1','l',' ','r','1','1','b',EOL,
+ /* 72 */ p_idefine,'r','1','2','l',' ','r','1','2','b',EOL,
+ /* 83 */ p_idefine,'r','1','3','l',' ','r','1','3','b',EOL,
+ /* 94 */ p_idefine,'r','1','4','l',' ','r','1','4','b',EOL,
+ /* 105 */ p_idefine,'r','1','5','l',' ','r','1','5','b',EOL,
+ /* 116 */ p_idefine,'r','0',' ','r','a','x',EOL,
+ /* 124 */ p_idefine,'r','1',' ','r','c','x',EOL,
+ /* 132 */ p_idefine,'r','2',' ','r','d','x',EOL,
+ /* 140 */ p_idefine,'r','3',' ','r','b','x',EOL,
+ /* 148 */ p_idefine,'r','4',' ','r','s','p',EOL,
+ /* 156 */ p_idefine,'r','5',' ','r','b','p',EOL,
+ /* 164 */ p_idefine,'r','6',' ','r','s','i',EOL,
+ /* 172 */ p_idefine,'r','7',' ','r','d','i',EOL,
+ /* 180 */ p_idefine,'r','0','d',' ','e','a','x',EOL,
+ /* 189 */ p_idefine,'r','1','d',' ','e','c','x',EOL,
+ /* 198 */ p_idefine,'r','2','d',' ','e','d','x',EOL,
+ /* 207 */ p_idefine,'r','3','d',' ','e','b','x',EOL,
+ /* 216 */ p_idefine,'r','4','d',' ','e','s','p',EOL,
+ /* 225 */ p_idefine,'r','5','d',' ','e','b','p',EOL,
+ /* 234 */ p_idefine,'r','6','d',' ','e','s','i',EOL,
+ /* 243 */ p_idefine,'r','7','d',' ','e','d','i',EOL,
+ /* 252 */ p_idefine,'r','0','w',' ','a','x',EOL,
+ /* 260 */ p_idefine,'r','1','w',' ','c','x',EOL,
+ /* 268 */ p_idefine,'r','2','w',' ','d','x',EOL,
+ /* 276 */ p_idefine,'r','3','w',' ','b','x',EOL,
+ /* 284 */ p_idefine,'r','4','w',' ','s','p',EOL,
+ /* 292 */ p_idefine,'r','5','w',' ','b','p',EOL,
+ /* 300 */ p_idefine,'r','6','w',' ','s','i',EOL,
+ /* 308 */ p_idefine,'r','7','w',' ','d','i',EOL,
+ /* 316 */ p_idefine,'r','0','b',' ','a','l',EOL,
+ /* 324 */ p_idefine,'r','1','b',' ','c','l',EOL,
+ /* 332 */ p_idefine,'r','2','b',' ','d','l',EOL,
+ /* 340 */ p_idefine,'r','3','b',' ','b','l',EOL,
+ /* 348 */ p_idefine,'r','4','b',' ','s','p','l',EOL,
+ /* 357 */ p_idefine,'r','5','b',' ','b','p','l',EOL,
+ /* 366 */ p_idefine,'r','6','b',' ','s','i','l',EOL,
+ /* 375 */ p_idefine,'r','7','b',' ','d','i','l',EOL,
+ /* 384 */ p_idefine,'r','0','l',' ','a','l',EOL,
+ /* 392 */ p_idefine,'r','1','l',' ','c','l',EOL,
+ /* 400 */ p_idefine,'r','2','l',' ','d','l',EOL,
+ /* 408 */ p_idefine,'r','3','l',' ','b','l',EOL,
+ /* 416 */ p_idefine,'r','4','l',' ','s','p','l',EOL,
+ /* 425 */ p_idefine,'r','5','l',' ','b','p','l',EOL,
+ /* 434 */ p_idefine,'r','6','l',' ','s','i','l',EOL,
+ /* 443 */ p_idefine,'r','7','l',' ','d','i','l',EOL,
+ /* 452 */ p_idefine,'r','0','h',' ','a','h',EOL,
+ /* 460 */ p_idefine,'r','1','h',' ','c','h',EOL,
+ /* 468 */ p_idefine,'r','2','h',' ','d','h',EOL,
+ /* 476 */ p_idefine,'r','3','h',' ','b','h',EOL,
+ /* 484 */ EOL
+};
+#endif
+
+#if 1
+static const unsigned char nasm_usemac_fp[] = {
+ /* From ./macros/fp.mac */
+ /* 0 */ p_define,'_','_','?','U','S','E','_','F','P','?','_','_',EOL,
+ /* 0 */ p_defalias,'_','_','U','S','E','_','F','P','_','_',' ','_','_','?','U','S','E','F','P','?','_','_',EOL,
+ /* 24 */ p_define,'I','n','f',' ','_','_','?','I','n','f','i','n','i','t','y','?','_','_',EOL,
+ /* 44 */ p_define,'N','a','N',' ','_','_','?','Q','N','a','N','?','_','_',EOL,
+ /* 60 */ p_define,'Q','N','a','N',' ','_','_','?','Q','N','a','N','?','_','_',EOL,
+ /* 77 */ p_define,'S','N','a','N',' ','_','_','?','S','N','a','N','?','_','_',EOL,
+ /* 94 */ p_define,'f','l','o','a','t','8','(','x',')',' ','_','_','?','f','l','o','a','t','8','?','_','_','(','x',')',EOL,
+ /* 121 */ p_define,'f','l','o','a','t','1','6','(','x',')',' ','_','_','?','f','l','o','a','t','1','6','?','_','_','(','x',')',EOL,
+ /* 150 */ p_define,'b','f','l','o','a','t','1','6','(','x',')',' ','_','_','?','b','f','l','o','a','t','1','6','?','_','_','(','x',')',EOL,
+ /* 181 */ p_define,'f','l','o','a','t','3','2','(','x',')',' ','_','_','?','f','l','o','a','t','3','2','?','_','_','(','x',')',EOL,
+ /* 210 */ p_define,'f','l','o','a','t','6','4','(','x',')',' ','_','_','?','f','l','o','a','t','6','4','?','_','_','(','x',')',EOL,
+ /* 239 */ p_define,'f','l','o','a','t','8','0','m','(','x',')',' ','_','_','?','f','l','o','a','t','8','0','m','?','_','_','(','x',')',EOL,
+ /* 270 */ p_define,'f','l','o','a','t','8','0','e','(','x',')',' ','_','_','?','f','l','o','a','t','8','0','e','?','_','_','(','x',')',EOL,
+ /* 301 */ p_define,'f','l','o','a','t','1','2','8','l','(','x',')',' ','_','_','?','f','l','o','a','t','1','2','8','l','?','_','_','(','x',')',EOL,
+ /* 334 */ p_define,'f','l','o','a','t','1','2','8','h','(','x',')',' ','_','_','?','f','l','o','a','t','1','2','8','h','?','_','_','(','x',')',EOL,
+ /* 367 */ p_imacro,'b','f','1','6',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 384 */ p_rep,'%','0',EOL,
+ /* 388 */ 'd','w',' ','_','_','?','b','f','l','o','a','t','1','6','?','_','_','(','%','1',')',EOL,
+ /* 410 */ p_rotate,'1',EOL,
+ /* 413 */ p_endrep,EOL,
+ /* 415 */ p_endmacro,EOL,
+ /* 417 */ EOL
+};
+#endif
+
+#if 1
+static const unsigned char nasm_usemac_ifunc[] = {
+ /* From ./macros/ifunc.mac */
+ /* 0 */ p_define,'_','_','?','U','S','E','_','I','F','U','N','C','?','_','_',EOL,
+ /* 0 */ p_defalias,'_','_','U','S','E','_','I','F','U','N','C','_','_',' ','_','_','?','U','S','E','I','F','U','N','C','?','_','_',EOL,
+ /* 30 */ p_idefine,'i','l','o','g','2','(','x',')',' ','(','_','_','?','i','l','o','g','2','e','?','_','_','(','x',')',')',EOL,
+ /* 58 */ p_idefine,'i','l','o','g','2','e','(','x',')',' ','(','_','_','?','i','l','o','g','2','e','?','_','_','(','x',')',')',EOL,
+ /* 87 */ p_idefine,'i','l','o','g','2','w','(','x',')',' ','(','_','_','?','i','l','o','g','2','w','?','_','_','(','x',')',')',EOL,
+ /* 116 */ p_idefine,'i','l','o','g','2','f','w','(','x',')',' ','(','_','_','?','i','l','o','g','2','w','?','_','_','(','x',')',')',EOL,
+ /* 146 */ p_idefine,'i','l','o','g','2','f','(','x',')',' ','(','_','_','?','i','l','o','g','2','f','?','_','_','(','x',')',')',EOL,
+ /* 175 */ p_idefine,'i','l','o','g','2','c','w','(','x',')',' ','(','_','_','?','i','l','o','g','2','w','?','_','_','(','x',')',' ','*',' ','0',' ','+',' ','_','_','?','i','l','o','g','2','c','?','_','_','(','x',')',')',EOL,
+ /* 227 */ p_idefine,'i','l','o','g','2','c','(','x',')',' ','(','_','_','?','i','l','o','g','2','c','?','_','_','(','x',')',')',EOL,
+ /* 256 */ EOL
+};
+#endif
+
+#if 1
+static const unsigned char nasm_usemac_masm[] = {
+ /* From ./macros/masm.mac */
+ /* 0 */ p_define,'_','_','?','U','S','E','_','M','A','S','M','?','_','_',EOL,
+ /* 0 */ p_defalias,'_','_','U','S','E','_','M','A','S','M','_','_',' ','_','_','?','U','S','E','M','A','S','M','?','_','_',EOL,
+ /* 28 */ p_unimacro,'s','e','g','m','e','n','t',' ','1','+',EOL,
+ /* 40 */ p_imacro,'s','e','g','m','e','n','t',' ','0','-','1','+','.','n','o','l','i','s','t',EOL,
+ /* 61 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','g','m','e','n','t',' ','%','0','0',' ','%','1',']',EOL,
+ /* 90 */ '_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 101 */ p_endmacro,EOL,
+ /* 103 */ p_imacro,'e','n','d','s',' ','0','+','.','n','o','l','i','s','t',EOL,
+ /* 119 */ p_null,'e','n','d','s',' ','%','0','0',EOL,
+ /* 129 */ p_endmacro,EOL,
+ /* 131 */ p_imacro,'p','r','o','c',' ','0','-','*','.','n','o','l','i','s','t',EOL,
+ /* 148 */ p_rep,'%','0',EOL,
+ /* 152 */ p_ifidni,'%','1',',','f','a','r',EOL,
+ /* 160 */ p_idefine,'r','e','t',' ','r','e','t','f',EOL,
+ /* 170 */ p_else,EOL,
+ /* 172 */ p_idefine,'r','e','t',' ','r','e','t','n',EOL,
+ /* 182 */ p_endif,EOL,
+ /* 184 */ p_rotate,'1',EOL,
+ /* 187 */ p_endrep,EOL,
+ /* 189 */ p_endmacro,EOL,
+ /* 191 */ p_imacro,'e','n','d','p',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 206 */ p_null,'e','n','d','p',' ','%','0','0',EOL,
+ /* 216 */ p_undef,'r','e','t',EOL,
+ /* 221 */ p_endmacro,EOL,
+ /* 223 */ p_idefine,'p','t','r',' ','_','_','?','m','a','s','m','_','p','t','r','?','_','_',EOL,
+ /* 243 */ p_idefine,'f','l','a','t',' ','_','_','?','m','a','s','m','_','f','l','a','t','?','_','_',EOL,
+ /* 265 */ p_idefine,'o','f','f','s','e','t',EOL,
+ /* 273 */ p_imacro,'e','n','d',' ','0','+','.','n','o','l','i','s','t',EOL,
+ /* 288 */ p_endmacro,EOL,
+ /* 290 */ p_idefine,'t','b','y','t','e',' ','t','w','o','r','d',EOL,
+ /* 303 */ 'd','e','f','a','u','l','t',' ','r','e','l',EOL,
+ /* 315 */ EOL
+};
+#endif
+
+#if 1
+static const unsigned char nasm_usemac_smartalign[] = {
+ /* From ./macros/smartalign.mac */
+ /* 0 */ p_define,'_','_','?','U','S','E','_','S','M','A','R','T','A','L','I','G','N','?','_','_',EOL,
+ /* 0 */ p_defalias,'_','_','U','S','E','_','S','M','A','R','T','A','L','I','G','N','_','_',' ','_','_','?','U','S','E','S','M','A','R','T','A','L','I','G','N','?','_','_',EOL,
+ /* 40 */ p_imacro,'a','l','i','g','n','m','o','d','e',' ','1','-','2','.','n','o','l','i','s','t',EOL,
+ /* 62 */ p_ifidni,'%','1',',','n','o','p',EOL,
+ /* 70 */ p_define,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','1','6',EOL,
+ /* 100 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 127 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','?','_','_',' ','1',EOL,
+ /* 154 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 181 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','?','_','_',' ','1',EOL,
+ /* 208 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 235 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','?','_','_',' ','1',EOL,
+ /* 262 */ p_elifidni,'%','1',',','g','e','n','e','r','i','c',EOL,
+ /* 274 */ p_define,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','8',EOL,
+ /* 303 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 330 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','2','B','?','_','_',' ','0','x','8','9',',','0','x','f','6',EOL,
+ /* 362 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','3','B','?','_','_',' ','0','x','8','d',',','0','x','7','4',',','0','x','0','0',EOL,
+ /* 399 */ p_define,'_','_','?','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',EOL,
+ /* 441 */ p_define,'_','_','?','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',EOL,
+ /* 488 */ p_define,'_','_','?','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',EOL,
+ /* 540 */ p_define,'_','_','?','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',EOL,
+ /* 597 */ p_define,'_','_','?','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',EOL,
+ /* 659 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','?','_','_',' ','8',EOL,
+ /* 686 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 713 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','2','B','?','_','_',' ','0','x','8','9',',','0','x','f','6',EOL,
+ /* 745 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','3','B','?','_','_',' ','0','x','8','d',',','0','x','7','6',',','0','x','0','0',EOL,
+ /* 782 */ p_define,'_','_','?','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',EOL,
+ /* 824 */ p_define,'_','_','?','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',EOL,
+ /* 871 */ p_define,'_','_','?','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',EOL,
+ /* 923 */ p_define,'_','_','?','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',EOL,
+ /* 980 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','?','_','_',' ','7',EOL,
+ /* 1007 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 1034 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1066 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','3','B','?','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1103 */ p_define,'_','_','?','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',EOL,
+ /* 1145 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 1172 */ p_elifidni,'%','1',',','k','8',EOL,
+ /* 1179 */ p_define,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','1','6',EOL,
+ /* 1209 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 1236 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1268 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','3','B','?','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1305 */ p_define,'_','_','?','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',EOL,
+ /* 1347 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 1374 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 1401 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1433 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','3','B','?','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1470 */ p_define,'_','_','?','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',EOL,
+ /* 1512 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 1539 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 1566 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1598 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','3','B','?','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1635 */ p_define,'_','_','?','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',EOL,
+ /* 1677 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 1704 */ p_elifidni,'%','1',',','k','7',EOL,
+ /* 1711 */ p_define,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','1','6',EOL,
+ /* 1741 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 1768 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1800 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','3','B','?','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',EOL,
+ /* 1837 */ p_define,'_','_','?','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',EOL,
+ /* 1879 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 1906 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 1933 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','2','B','?','_','_',' ','0','x','8','b',',','0','x','c','0',EOL,
+ /* 1965 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','3','B','?','_','_',' ','0','x','8','d',',','0','x','0','4',',','0','x','2','0',EOL,
+ /* 2002 */ p_define,'_','_','?','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',EOL,
+ /* 2044 */ p_define,'_','_','?','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',EOL,
+ /* 2091 */ p_define,'_','_','?','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',EOL,
+ /* 2143 */ p_define,'_','_','?','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',EOL,
+ /* 2200 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','?','_','_',' ','7',EOL,
+ /* 2227 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 2254 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 2286 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','3','B','?','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',EOL,
+ /* 2323 */ p_define,'_','_','?','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',EOL,
+ /* 2365 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 2392 */ p_elifidni,'%','1',',','p','6',EOL,
+ /* 2399 */ p_define,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','1','6',EOL,
+ /* 2429 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 2456 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 2488 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','3','B','?','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',EOL,
+ /* 2525 */ p_define,'_','_','?','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',EOL,
+ /* 2567 */ p_define,'_','_','?','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','?','_','_',' ','4',EOL,
+ /* 2594 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 2621 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 2653 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','3','B','?','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',EOL,
+ /* 2690 */ p_define,'_','_','?','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',EOL,
+ /* 2732 */ p_define,'_','_','?','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',EOL,
+ /* 2779 */ p_define,'_','_','?','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',EOL,
+ /* 2831 */ p_define,'_','_','?','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',EOL,
+ /* 2888 */ p_define,'_','_','?','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',EOL,
+ /* 2950 */ p_define,'_','_','?','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','?','_','_',' ','8',EOL,
+ /* 2977 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','1','B','?','_','_',' ','0','x','9','0',EOL,
+ /* 3004 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','2','B','?','_','_',' ','0','x','6','6',',','0','x','9','0',EOL,
+ /* 3036 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','3','B','?','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',EOL,
+ /* 3073 */ p_define,'_','_','?','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',EOL,
+ /* 3115 */ p_define,'_','_','?','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',EOL,
+ /* 3162 */ p_define,'_','_','?','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',EOL,
+ /* 3214 */ p_define,'_','_','?','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',EOL,
+ /* 3271 */ p_define,'_','_','?','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',EOL,
+ /* 3333 */ p_define,'_','_','?','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','?','_','_',' ','8',EOL,
+ /* 3360 */ p_else,EOL,
+ /* 3362 */ p_error,'u','n','k','n','o','w','n',' ','a','l','i','g','n','m','e','n','t',' ','m','o','d','e',':',' ','%','1',EOL,
+ /* 3390 */ p_endif,EOL,
+ /* 3392 */ p_ifnempty,'%','2',EOL,
+ /* 3396 */ p_ifidni,'%','2',',','n','o','j','m','p',EOL,
+ /* 3406 */ p_xdefine,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','-','1',EOL,
+ /* 3436 */ p_else,EOL,
+ /* 3438 */ p_xdefine,'_','_','?','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','?','_','_',' ','%','2',EOL,
+ /* 3468 */ p_endif,EOL,
+ /* 3470 */ p_endif,EOL,
+ /* 3472 */ p_xdefine,'_','_','?','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','?','_','_',EOL,
+ /* 3518 */ p_endmacro,EOL,
+ /* 3520 */ p_defalias,'_','_','A','L','I','G','N','M','O','D','E','_','_',' ','_','_','?','A','L','I','G','N','M','O','D','E','?','_','_',EOL,
+ /* 3551 */ p_unimacro,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',EOL,
+ /* 3570 */ p_imacro,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',EOL,
+ /* 3589 */ 's','e','c','t','a','l','i','g','n',' ','%','1',EOL,
+ /* 3602 */ p_ifnempty,'%','2',EOL,
+ /* 3606 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',EOL,
+ /* 3649 */ p_elif,'_','_','?','P','A','S','S','?','_','_',' ','=','=',' ','0',' ','|','|',' ','_','_','?','P','A','S','S','?','_','_',' ','=','=',' ','3',EOL,
+ /* 3685 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','n','o','p',EOL,
+ /* 3729 */ p_else,EOL,
+ /* 3731 */ p_push,EOL,
+ /* 3733 */ p_assign,'%','$','p','a','d',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',EOL,
+ /* 3774 */ p_if,'_','_','?','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','?','_','_',EOL,
+ /* 3844 */ 'j','m','p',' ','%','$','e','n','d',EOL,
+ /* 3854 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','n','o','p',EOL,
+ /* 3898 */ p_else,EOL,
+ /* 3900 */ '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','?','_','_',EOL,
+ /* 4022 */ p_assign,'%','$','p','a','d',' ','%','$','p','a','d',' ','%',' ','_','_','?','A','L','I','G','N','_','%','[','_','_','?','B','I','T','S','?','_','_',']','B','I','T','_','G','R','O','U','P','?','_','_',EOL,
+ /* 4072 */ p_if,'%','$','p','a','d',' ','>',' ','0',EOL,
+ /* 4083 */ 'd','b',' ','_','_','?','A','L','I','G','N','_','%','[','_','_','?','B','I','T','S','?','_','_',']','B','I','T','_','%','[','%','$','p','a','d',']','B','?','_','_',EOL,
+ /* 4125 */ p_endif,EOL,
+ /* 4127 */ p_endif,EOL,
+ /* 4129 */ '%','$','e','n','d',':',EOL,
+ /* 4136 */ p_pop,EOL,
+ /* 4138 */ p_endif,EOL,
+ /* 4140 */ p_endmacro,EOL,
+ /* 4142 */ 'a','l','i','g','n','m','o','d','e',' ','g','e','n','e','r','i','c',EOL,
+ /* 4160 */ EOL
+};
+#endif
+
+#if 1
+const unsigned char nasm_stdmac_tasm[] = {
+ /* From ./macros/standard.mac */
+ /* 0 */ p_idefine,'I','D','E','A','L',EOL,
+ /* 7 */ p_idefine,'J','U','M','P','S',EOL,
+ /* 14 */ p_idefine,'P','3','8','6',EOL,
+ /* 20 */ p_idefine,'P','4','8','6',EOL,
+ /* 26 */ p_idefine,'P','5','8','6',EOL,
+ /* 32 */ p_idefine,'E','N','D',EOL,
+ /* 37 */ EOL
+};
+#endif
+
+#if 1
+const unsigned char nasm_stdmac_nasm[] = {
+ /* From ./macros/standard.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 12 */ p_defalias,'_','_','S','E','C','T','_','_',' ','_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 33 */ p_imacro,'s','e','c','t','i','o','n',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 52 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','%','1',']',EOL,
+ /* 77 */ '_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 88 */ p_endmacro,EOL,
+ /* 90 */ p_imacro,'s','e','g','m','e','n','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 109 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','g','m','e','n','t',' ','%','1',']',EOL,
+ /* 134 */ '_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 145 */ p_endmacro,EOL,
+ /* 147 */ p_define,'_','_','?','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',EOL,
+ /* 188 */ p_imacro,'s','e','c','t','a','l','i','g','n',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 209 */ p_ifidni,'%','1',',','o','f','f',EOL,
+ /* 217 */ p_define,'_','_','?','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',EOL,
+ /* 258 */ p_elifidni,'%','1',',','o','n',EOL,
+ /* 265 */ p_define,'_','_','?','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',EOL,
+ /* 306 */ p_else,EOL,
+ /* 308 */ '[','s','e','c','t','a','l','i','g','n',' ','%','1',']',EOL,
+ /* 323 */ p_endif,EOL,
+ /* 325 */ p_endmacro,EOL,
+ /* 327 */ p_defalias,'_','_','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','_','_',' ','_','_','?','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','?','_','_',EOL,
+ /* 402 */ p_imacro,'a','b','s','o','l','u','t','e',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 422 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','a','b','s','o','l','u','t','e',' ','%','1',']',EOL,
+ /* 448 */ '_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 459 */ p_endmacro,EOL,
+ /* 461 */ p_imacro,'s','t','r','u','c',' ','1','-','2','.','n','o','l','i','s','t',' ','0',EOL,
+ /* 481 */ p_push,EOL,
+ /* 483 */ p_define,'%','$','s','t','r','u','c','n','a','m','e',' ','%','1',EOL,
+ /* 499 */ '[','a','b','s','o','l','u','t','e',' ','%','2',']',EOL,
+ /* 513 */ '%','$','s','t','r','u','c','n','a','m','e',':',EOL,
+ /* 526 */ p_endmacro,EOL,
+ /* 528 */ p_imacro,'e','n','d','s','t','r','u','c',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 547 */ '%','{','$','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',')',EOL,
+ /* 586 */ p_pop,EOL,
+ /* 588 */ '_','_','?','S','E','C','T','?','_','_',EOL,
+ /* 599 */ p_endmacro,EOL,
+ /* 601 */ p_imacro,'i','s','t','r','u','c',' ','1','.','n','o','l','i','s','t',EOL,
+ /* 618 */ p_push,EOL,
+ /* 620 */ p_define,'%','$','s','t','r','u','c','n','a','m','e',' ','%','1',EOL,
+ /* 636 */ '%','$','s','t','r','u','c','s','t','a','r','t',':',EOL,
+ /* 650 */ p_endmacro,EOL,
+ /* 652 */ p_imacro,'a','t',' ','1','-','2','+','.','n','o','l','i','s','t',EOL,
+ /* 668 */ p_defstr,'%','$','m','e','m','b','e','r',' ','%','1',EOL,
+ /* 681 */ p_substr,'%','$','m','e','m','b','e','r','1',' ','%','$','m','e','m','b','e','r',' ','1',EOL,
+ /* 703 */ p_ifidn,'%','$','m','e','m','b','e','r','1',',',' ','\'','.','\'',EOL,
+ /* 719 */ 't','i','m','e','s',' ','(','%','$','s','t','r','u','c','n','a','m','e','%','1','-','%','$','s','t','r','u','c','n','a','m','e',')','-','(','$','-','%','$','s','t','r','u','c','s','t','a','r','t',')',' ','d','b',' ','0',EOL,
+ /* 775 */ p_else,EOL,
+ /* 777 */ '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',EOL,
+ /* 822 */ p_endif,EOL,
+ /* 824 */ '%','2',EOL,
+ /* 827 */ p_endmacro,EOL,
+ /* 829 */ p_imacro,'i','e','n','d',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 844 */ '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',EOL,
+ /* 891 */ p_pop,EOL,
+ /* 893 */ p_endmacro,EOL,
+ /* 895 */ p_imacro,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',' ','n','o','p',EOL,
+ /* 918 */ p_if,'_','_','?','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','?','_','_',EOL,
+ /* 957 */ 's','e','c','t','a','l','i','g','n',' ','%','1',EOL,
+ /* 970 */ p_endif,EOL,
+ /* 972 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',EOL,
+ /* 1015 */ p_endmacro,EOL,
+ /* 1017 */ p_imacro,'a','l','i','g','n','b',' ','1','-','2','+','.','n','o','l','i','s','t',EOL,
+ /* 1037 */ p_if,'_','_','?','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','?','_','_',EOL,
+ /* 1076 */ 's','e','c','t','a','l','i','g','n',' ','%','1',EOL,
+ /* 1089 */ p_endif,EOL,
+ /* 1091 */ p_ifempty,'%','2',EOL,
+ /* 1095 */ '[','w','a','r','n','i','n','g',' ','p','u','s','h',']',EOL,
+ /* 1110 */ '[','w','a','r','n','i','n','g',' ','-','z','e','r','o','i','n','g',']',EOL,
+ /* 1129 */ 'r','e','s','b',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',EOL,
+ /* 1168 */ '[','w','a','r','n','i','n','g',' ','p','o','p',']',EOL,
+ /* 1182 */ p_else,EOL,
+ /* 1184 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',EOL,
+ /* 1227 */ p_endif,EOL,
+ /* 1229 */ p_endmacro,EOL,
+ /* 1231 */ p_imacro,'b','i','t','s',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 1247 */ '[','b','i','t','s',' ','%','1',']',EOL,
+ /* 1257 */ p_endmacro,EOL,
+ /* 1259 */ p_imacro,'u','s','e','1','6',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 1275 */ '[','b','i','t','s',' ','1','6',']',EOL,
+ /* 1285 */ p_endmacro,EOL,
+ /* 1287 */ p_imacro,'u','s','e','3','2',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 1303 */ '[','b','i','t','s',' ','3','2',']',EOL,
+ /* 1313 */ p_endmacro,EOL,
+ /* 1315 */ p_imacro,'u','s','e','6','4',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 1331 */ '[','b','i','t','s',' ','6','4',']',EOL,
+ /* 1341 */ p_endmacro,EOL,
+ /* 1343 */ p_imacro,'e','x','t','e','r','n',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 1362 */ p_rep,'%','0',EOL,
+ /* 1366 */ '[','e','x','t','e','r','n',' ','%','1',']',EOL,
+ /* 1378 */ p_rotate,'1',EOL,
+ /* 1381 */ p_endrep,EOL,
+ /* 1383 */ p_endmacro,EOL,
+ /* 1385 */ p_imacro,'s','t','a','t','i','c',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 1404 */ p_rep,'%','0',EOL,
+ /* 1408 */ '[','s','t','a','t','i','c',' ','%','1',']',EOL,
+ /* 1420 */ p_rotate,'1',EOL,
+ /* 1423 */ p_endrep,EOL,
+ /* 1425 */ p_endmacro,EOL,
+ /* 1427 */ p_imacro,'g','l','o','b','a','l',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 1446 */ p_rep,'%','0',EOL,
+ /* 1450 */ '[','g','l','o','b','a','l',' ','%','1',']',EOL,
+ /* 1462 */ p_rotate,'1',EOL,
+ /* 1465 */ p_endrep,EOL,
+ /* 1467 */ p_endmacro,EOL,
+ /* 1469 */ p_imacro,'r','e','q','u','i','r','e','d',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 1490 */ p_rep,'%','0',EOL,
+ /* 1494 */ '[','r','e','q','u','i','r','e','d',' ','%','1',']',EOL,
+ /* 1508 */ p_rotate,'1',EOL,
+ /* 1511 */ p_endrep,EOL,
+ /* 1513 */ p_endmacro,EOL,
+ /* 1515 */ p_imacro,'c','o','m','m','o','n',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 1534 */ p_rep,'%','0',EOL,
+ /* 1538 */ '[','c','o','m','m','o','n',' ','%','1',']',EOL,
+ /* 1550 */ p_rotate,'1',EOL,
+ /* 1553 */ p_endrep,EOL,
+ /* 1555 */ p_endmacro,EOL,
+ /* 1557 */ p_imacro,'c','p','u',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 1572 */ '[','c','p','u',' ','%','1',']',EOL,
+ /* 1581 */ p_endmacro,EOL,
+ /* 1583 */ p_define,'_','_','?','F','L','O','A','T','_','D','A','Z','?','_','_',' ','n','o','d','a','z',EOL,
+ /* 1606 */ p_define,'_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',' ','n','e','a','r',EOL,
+ /* 1630 */ p_define,'_','_','?','F','L','O','A','T','?','_','_',' ','_','_','?','F','L','O','A','T','_','D','A','Z','?','_','_',',','_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',EOL,
+ /* 1677 */ p_defalias,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','_','_','?','F','L','O','A','T','_','D','A','Z','?','_','_',EOL,
+ /* 1708 */ p_defalias,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',EOL,
+ /* 1743 */ p_defalias,'_','_','F','L','O','A','T','_','_',' ','_','_','?','F','L','O','A','T','?','_','_',EOL,
+ /* 1766 */ p_imacro,'f','l','o','a','t',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 1784 */ p_rep,'%','0',EOL,
+ /* 1788 */ '[','f','l','o','a','t',' ','%','1',']',EOL,
+ /* 1799 */ p_ifidni,'%','1',',','d','a','z',EOL,
+ /* 1807 */ p_define,'_','_','?','F','L','O','A','T','_','D','A','Z','?','_','_',' ','d','a','z',EOL,
+ /* 1828 */ p_elifidni,'%','1',',','n','o','d','a','z',EOL,
+ /* 1838 */ p_define,'_','_','?','F','L','O','A','T','_','D','A','Z','?','_','_',' ','n','o','d','a','z',EOL,
+ /* 1861 */ p_elifidni,'%','1',',','n','e','a','r',EOL,
+ /* 1870 */ p_define,'_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',' ','n','e','a','r',EOL,
+ /* 1894 */ p_elifidni,'%','1',',','u','p',EOL,
+ /* 1901 */ p_define,'_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',' ','u','p',EOL,
+ /* 1923 */ p_elifidni,'%','1',',','d','o','w','n',EOL,
+ /* 1932 */ p_define,'_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',' ','d','o','w','n',EOL,
+ /* 1956 */ p_elifidni,'%','1',',','z','e','r','o',EOL,
+ /* 1965 */ p_define,'_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',' ','z','e','r','o',EOL,
+ /* 1989 */ p_elifidni,'%','1',',','d','e','f','a','u','l','t',EOL,
+ /* 2001 */ p_define,'_','_','?','F','L','O','A','T','_','D','A','Z','?','_','_',' ','n','o','d','a','z',EOL,
+ /* 2024 */ p_define,'_','_','?','F','L','O','A','T','_','R','O','U','N','D','?','_','_',' ','n','e','a','r',EOL,
+ /* 2048 */ p_endif,EOL,
+ /* 2050 */ p_rotate,'1',EOL,
+ /* 2053 */ p_endrep,EOL,
+ /* 2055 */ p_endmacro,EOL,
+ /* 2057 */ p_imacro,'d','e','f','a','u','l','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 2076 */ '[','d','e','f','a','u','l','t',' ','%','1',']',EOL,
+ /* 2089 */ p_endmacro,EOL,
+ /* 2091 */ p_imacro,'u','s','e','r','e','l',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 2108 */ '[','d','e','f','a','u','l','t',' ','r','e','l',']',EOL,
+ /* 2122 */ p_endmacro,EOL,
+ /* 2124 */ p_imacro,'u','s','e','a','b','s',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 2141 */ '[','d','e','f','a','u','l','t',' ','a','b','s',']',EOL,
+ /* 2155 */ p_endmacro,EOL,
+ /* 2157 */ p_imacro,'u','s','e','b','n','d',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 2174 */ '[','d','e','f','a','u','l','t',' ','b','n','d',']',EOL,
+ /* 2188 */ p_endmacro,EOL,
+ /* 2190 */ p_imacro,'u','s','e','n','o','b','n','d',' ','0','.','n','o','l','i','s','t',EOL,
+ /* 2209 */ '[','d','e','f','a','u','l','t',' ','n','o','b','n','d',']',EOL,
+ /* 2225 */ p_endmacro,EOL,
+ /* 2227 */ p_imacro,'i','n','c','b','i','n',' ','1','-','2','+','.','n','o','l','i','s','t',' ','0',EOL,
+ /* 2249 */ p_push,EOL,
+ /* 2251 */ p_pathsearch,'%','$','d','e','p',' ','%','1',EOL,
+ /* 2261 */ p_depend,'%','$','d','e','p',EOL,
+ /* 2268 */ '%','?',' ','%','$','d','e','p',',','%','2',EOL,
+ /* 2280 */ p_pop,EOL,
+ /* 2282 */ p_endmacro,EOL,
+ /* 2284 */ p_defalias,'_','_','N','A','S','M','_','M','A','J','O','R','_','_',' ','_','_','?','N','A','S','M','_','M','A','J','O','R','?','_','_',EOL,
+ /* 2317 */ p_defalias,'_','_','N','A','S','M','_','M','I','N','O','R','_','_',' ','_','_','?','N','A','S','M','_','M','I','N','O','R','?','_','_',EOL,
+ /* 2350 */ p_defalias,'_','_','N','A','S','M','_','S','U','B','M','I','N','O','R','_','_',' ','_','_','?','N','A','S','M','_','S','U','B','M','I','N','O','R','?','_','_',EOL,
+ /* 2389 */ p_defalias,'_','_','N','A','S','M','_','P','A','T','C','H','L','E','V','E','L','_','_',' ','_','_','?','N','A','S','M','_','P','A','T','C','H','L','E','V','E','L','?','_','_',EOL,
+ /* 2432 */ p_defalias,'_','_','N','A','S','M','_','S','N','A','P','S','H','O','T','_','_',' ','_','_','?','N','A','S','M','_','S','N','A','P','S','H','O','T','?','_','_',EOL,
+ /* 2471 */ p_defalias,'_','_','N','A','S','M','_','V','E','R','S','I','O','N','_','I','D','_','_',' ','_','_','?','N','A','S','M','_','V','E','R','S','I','O','N','_','I','D','?','_','_',EOL,
+ /* 2514 */ p_defalias,'_','_','N','A','S','M','_','V','E','R','_','_',' ','_','_','?','N','A','S','M','_','V','E','R','?','_','_',EOL,
+ /* 2543 */ p_defalias,'_','_','O','U','T','P','U','T','_','F','O','R','M','A','T','_','_',' ','_','_','?','O','U','T','P','U','T','_','F','O','R','M','A','T','?','_','_',EOL,
+ /* 2582 */ p_defalias,'_','_','D','E','B','U','G','_','F','O','R','M','A','T','_','_',' ','_','_','?','D','E','B','U','G','_','F','O','R','M','A','T','?','_','_',EOL,
+ /* 2619 */ p_defalias,'_','_','D','A','T','E','_','_',' ','_','_','?','D','A','T','E','?','_','_',EOL,
+ /* 2640 */ p_defalias,'_','_','D','A','T','E','_','N','U','M','_','_',' ','_','_','?','D','A','T','E','_','N','U','M','?','_','_',EOL,
+ /* 2669 */ p_defalias,'_','_','T','I','M','E','_','_',' ','_','_','?','T','I','M','E','?','_','_',EOL,
+ /* 2690 */ p_defalias,'_','_','T','I','M','E','_','N','U','M','_','_',' ','_','_','?','T','I','M','E','_','N','U','M','?','_','_',EOL,
+ /* 2719 */ p_defalias,'_','_','U','T','C','_','D','A','T','E','_','_',' ','_','_','?','U','T','C','_','D','A','T','E','?','_','_',EOL,
+ /* 2748 */ p_defalias,'_','_','U','T','C','_','D','A','T','E','_','N','U','M','_','_',' ','_','_','?','U','T','C','_','D','A','T','E','_','N','U','M','?','_','_',EOL,
+ /* 2785 */ p_defalias,'_','_','U','T','C','_','T','I','M','E','_','_',' ','_','_','?','U','T','C','_','T','I','M','E','?','_','_',EOL,
+ /* 2814 */ p_defalias,'_','_','U','T','C','_','T','I','M','E','_','N','U','M','_','_',' ','_','_','?','U','T','C','_','T','I','M','E','_','N','U','M','?','_','_',EOL,
+ /* 2851 */ p_defalias,'_','_','P','O','S','I','X','_','T','I','M','E','_','_',' ','_','_','?','P','O','S','I','X','_','T','I','M','E','?','_','_',EOL,
+ /* 2884 */ p_defalias,'_','_','F','I','L','E','_','_',' ','_','_','?','F','I','L','E','?','_','_',EOL,
+ /* 2905 */ p_defalias,'_','_','L','I','N','E','_','_',' ','_','_','?','L','I','N','E','?','_','_',EOL,
+ /* 2926 */ p_defalias,'_','_','B','I','T','S','_','_',' ','_','_','?','B','I','T','S','?','_','_',EOL,
+ /* 2947 */ p_defalias,'_','_','P','T','R','_','_',' ','_','_','?','P','T','R','?','_','_',EOL,
+ /* 2966 */ p_defalias,'_','_','P','A','S','S','_','_',' ','_','_','?','P','A','S','S','?','_','_',EOL,
+ /* 2987 */ p_idefine,'_','_','?','i','n','f','i','n','i','t','y','?','_','_',' ','%','?',EOL,
+ /* 3006 */ p_idefine,'_','_','?','n','a','n','?','_','_',' ','%','?',EOL,
+ /* 3020 */ p_idefine,'_','_','?','q','n','a','n','?','_','_',' ','%','?',EOL,
+ /* 3035 */ p_idefine,'_','_','?','s','n','a','n','?','_','_',' ','%','?',EOL,
+ /* 3050 */ p_idefine,'_','_','?','f','l','o','a','t','8','?','_','_',' ','%','?',EOL,
+ /* 3067 */ p_idefine,'_','_','?','f','l','o','a','t','1','6','?','_','_',' ','%','?',EOL,
+ /* 3085 */ p_idefine,'_','_','?','f','l','o','a','t','3','2','?','_','_',' ','%','?',EOL,
+ /* 3103 */ p_idefine,'_','_','?','f','l','o','a','t','6','4','?','_','_',' ','%','?',EOL,
+ /* 3121 */ p_idefine,'_','_','?','f','l','o','a','t','8','0','m','?','_','_',' ','%','?',EOL,
+ /* 3140 */ p_idefine,'_','_','?','f','l','o','a','t','8','0','e','?','_','_',' ','%','?',EOL,
+ /* 3159 */ p_idefine,'_','_','?','f','l','o','a','t','1','2','8','l','?','_','_',' ','%','?',EOL,
+ /* 3179 */ p_idefine,'_','_','?','f','l','o','a','t','1','2','8','h','?','_','_',' ','%','?',EOL,
+ /* 3199 */ p_idefine,'_','_','?','u','t','f','1','6','?','_','_',' ','%','?',EOL,
+ /* 3215 */ p_idefine,'_','_','?','u','t','f','1','6','l','e','?','_','_',' ','%','?',EOL,
+ /* 3233 */ p_idefine,'_','_','?','u','t','f','1','6','b','e','?','_','_',' ','%','?',EOL,
+ /* 3251 */ p_idefine,'_','_','?','u','t','f','3','2','?','_','_',' ','%','?',EOL,
+ /* 3267 */ p_idefine,'_','_','?','u','t','f','3','2','l','e','?','_','_',' ','%','?',EOL,
+ /* 3285 */ p_idefine,'_','_','?','u','t','f','3','2','b','e','?','_','_',' ','%','?',EOL,
+ /* 3303 */ p_idefine,'_','_','?','i','l','o','g','2','e','?','_','_',' ','%','?',EOL,
+ /* 3320 */ p_idefine,'_','_','?','i','l','o','g','2','w','?','_','_',' ','%','?',EOL,
+ /* 3337 */ p_idefine,'_','_','?','i','l','o','g','2','f','?','_','_',' ','%','?',EOL,
+ /* 3354 */ p_idefine,'_','_','?','i','l','o','g','2','c','?','_','_',' ','%','?',EOL,
+ /* 3371 */ p_idefalias,'_','_','i','n','f','i','n','i','t','y','_','_',' ','_','_','?','i','n','f','i','n','i','t','y','?','_','_',EOL,
+ /* 3400 */ p_idefalias,'_','_','n','a','n','_','_',' ','_','_','?','n','a','n','?','_','_',EOL,
+ /* 3419 */ p_idefalias,'_','_','q','n','a','n','_','_',' ','_','_','?','q','n','a','n','?','_','_',EOL,
+ /* 3440 */ p_idefalias,'_','_','s','n','a','n','_','_',' ','_','_','?','s','n','a','n','?','_','_',EOL,
+ /* 3461 */ p_idefalias,'_','_','f','l','o','a','t','8','_','_',' ','_','_','?','f','l','o','a','t','8','?','_','_',EOL,
+ /* 3486 */ p_idefalias,'_','_','f','l','o','a','t','1','6','_','_',' ','_','_','?','f','l','o','a','t','1','6','?','_','_',EOL,
+ /* 3513 */ p_idefalias,'_','_','f','l','o','a','t','3','2','_','_',' ','_','_','?','f','l','o','a','t','3','2','?','_','_',EOL,
+ /* 3540 */ p_idefalias,'_','_','f','l','o','a','t','6','4','_','_',' ','_','_','?','f','l','o','a','t','6','4','?','_','_',EOL,
+ /* 3567 */ p_idefalias,'_','_','f','l','o','a','t','8','0','m','_','_',' ','_','_','?','f','l','o','a','t','8','0','m','?','_','_',EOL,
+ /* 3596 */ p_idefalias,'_','_','f','l','o','a','t','8','0','e','_','_',' ','_','_','?','f','l','o','a','t','8','0','e','?','_','_',EOL,
+ /* 3625 */ p_idefalias,'_','_','f','l','o','a','t','1','2','8','l','_','_',' ','_','_','?','f','l','o','a','t','1','2','8','l','?','_','_',EOL,
+ /* 3656 */ p_idefalias,'_','_','f','l','o','a','t','1','2','8','h','_','_',' ','_','_','?','f','l','o','a','t','1','2','8','h','?','_','_',EOL,
+ /* 3687 */ p_idefalias,'_','_','u','t','f','1','6','_','_',' ','_','_','?','u','t','f','1','6','?','_','_',EOL,
+ /* 3710 */ p_idefalias,'_','_','u','t','f','1','6','l','e','_','_',' ','_','_','?','u','t','f','1','6','l','e','?','_','_',EOL,
+ /* 3737 */ p_idefalias,'_','_','u','t','f','1','6','b','e','_','_',' ','_','_','?','u','t','f','1','6','b','e','?','_','_',EOL,
+ /* 3764 */ p_idefalias,'_','_','u','t','f','3','2','_','_',' ','_','_','?','u','t','f','3','2','?','_','_',EOL,
+ /* 3787 */ p_idefalias,'_','_','u','t','f','3','2','l','e','_','_',' ','_','_','?','u','t','f','3','2','l','e','?','_','_',EOL,
+ /* 3814 */ p_idefalias,'_','_','u','t','f','3','2','b','e','_','_',' ','_','_','?','u','t','f','3','2','b','e','?','_','_',EOL,
+ /* 3841 */ p_idefalias,'_','_','i','l','o','g','2','e','_','_',' ','_','_','?','i','l','o','g','2','e','?','_','_',EOL,
+ /* 3866 */ p_idefalias,'_','_','i','l','o','g','2','w','_','_',' ','_','_','?','i','l','o','g','2','w','?','_','_',EOL,
+ /* 3891 */ p_idefalias,'_','_','i','l','o','g','2','f','_','_',' ','_','_','?','i','l','o','g','2','f','?','_','_',EOL,
+ /* 3916 */ p_idefalias,'_','_','i','l','o','g','2','c','_','_',' ','_','_','?','i','l','o','g','2','c','?','_','_',EOL,
+ /* 3941 */ EOL
+};
+#endif
+
+#if defined(OF_AOUT) || defined(OF_AOUTB)
+const unsigned char aout_stdmac[] = {
+ /* From ./output/outaout.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 48 */ p_endmacro,EOL,
+ /* 50 */ EOL
+};
+#endif
+
+#if defined(OF_AS86)
+const unsigned char as86_stdmac[] = {
+ /* From ./output/outas86.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 48 */ p_endmacro,EOL,
+ /* 50 */ EOL
+};
+#endif
+
+#if defined(OF_BIN)
+const unsigned char bin_stdmac[] = {
+ /* From ./output/outbin.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_imacro,'o','r','g',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 43 */ '[','o','r','g',' ','%','1',']',EOL,
+ /* 52 */ p_endmacro,EOL,
+ /* 54 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 74 */ p_endmacro,EOL,
+ /* 76 */ EOL
+};
+#endif
+
+#if defined(OF_COFF) || defined(OF_WIN32) || defined(OF_WIN64)
+const unsigned char coff_stdmac[] = {
+ /* From ./output/outcoff.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 48 */ p_endmacro,EOL,
+ /* 50 */ p_imacro,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 68 */ '[','e','x','p','o','r','t',' ','%','1',']',EOL,
+ /* 80 */ p_endmacro,EOL,
+ /* 82 */ p_imacro,'s','a','f','e','s','e','h',' ','1','.','n','o','l','i','s','t',EOL,
+ /* 100 */ '[','s','a','f','e','s','e','h',' ','%','1',']',EOL,
+ /* 113 */ p_endmacro,EOL,
+ /* 115 */ EOL
+};
+#endif
+
+#if defined(OF_DBG)
+const unsigned char dbg_stdmac[] = {
+ /* From ./output/outdbg.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_imacro,'g','r','o','u','p',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 45 */ '[','g','r','o','u','p',' ','%','1',']',EOL,
+ /* 56 */ p_endmacro,EOL,
+ /* 58 */ p_imacro,'u','p','p','e','r','c','a','s','e',' ','0','+','.','n','o','l','i','s','t',EOL,
+ /* 79 */ p_pragma,'d','b','g',' ','u','p','p','e','r','c','a','s','e',' ','%','1',EOL,
+ /* 97 */ p_endmacro,EOL,
+ /* 99 */ p_imacro,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 117 */ p_pragma,'d','b','g',' ','e','x','p','o','r','t',' ','%','1',EOL,
+ /* 132 */ p_endmacro,EOL,
+ /* 134 */ p_imacro,'i','m','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 152 */ p_pragma,'d','b','g',' ','i','m','p','o','r','t',' ','%','1',EOL,
+ /* 167 */ p_endmacro,EOL,
+ /* 169 */ p_imacro,'o','r','g',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 184 */ p_pragma,'d','b','g',' ','o','r','g',' ','%','1',EOL,
+ /* 196 */ p_endmacro,EOL,
+ /* 198 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 218 */ p_endmacro,EOL,
+ /* 220 */ EOL
+};
+#endif
+
+#if defined(OF_ELF) || defined(OF_ELF32) || defined(OF_ELF64)
+const unsigned char elf_stdmac[] = {
+ /* From ./output/outelf.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 48 */ p_define,'$','_','%','1',' ','$','%','1',EOL,
+ /* 58 */ p_endmacro,EOL,
+ /* 60 */ p_imacro,'o','s','a','b','i',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 77 */ '[','%','?',' ','%','1',']',EOL,
+ /* 85 */ p_endmacro,EOL,
+ /* 87 */ EOL
+};
+#endif
+
+#if defined(OF_MACHO) || defined(OF_MACHO32) || defined(OF_MACHO64)
+const unsigned char macho_stdmac[] = {
+ /* From ./output/outmacho.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 48 */ p_endmacro,EOL,
+ /* 50 */ p_imacro,'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',EOL,
+ /* 84 */ p_pragma,'_','_','?','O','U','T','P','U','T','_','F','O','R','M','A','T','?','_','_',' ','%','?',EOL,
+ /* 108 */ p_endmacro,EOL,
+ /* 110 */ p_imacro,'n','o','_','d','e','a','d','_','s','t','r','i','p',' ','1','-','*','.','n','o','l','i','s','t',EOL,
+ /* 136 */ p_rep,'%','0',EOL,
+ /* 140 */ p_pragma,'_','_','?','O','U','T','P','U','T','_','F','O','R','M','A','T','?','_','_',' ','%','?',' ','%','1',EOL,
+ /* 167 */ p_rotate,'1',EOL,
+ /* 170 */ p_endrep,EOL,
+ /* 172 */ p_endmacro,EOL,
+ /* 174 */ EOL
+};
+#endif
+
+#if defined(OF_OBJ)
+const unsigned char obj_stdmac[] = {
+ /* From ./output/outobj.mac */
+ /* 0 */ p_define,'_','_','?','S','E','C','T','?','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',EOL,
+ /* 28 */ p_imacro,'g','r','o','u','p',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 45 */ '[','g','r','o','u','p',' ','%','1',']',EOL,
+ /* 56 */ p_endmacro,EOL,
+ /* 58 */ p_imacro,'u','p','p','e','r','c','a','s','e',' ','0','+','.','n','o','l','i','s','t',EOL,
+ /* 79 */ '[','u','p','p','e','r','c','a','s','e',' ','%','1',']',EOL,
+ /* 94 */ p_endmacro,EOL,
+ /* 96 */ p_imacro,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 114 */ '[','e','x','p','o','r','t',' ','%','1',']',EOL,
+ /* 126 */ p_endmacro,EOL,
+ /* 128 */ p_imacro,'i','m','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',EOL,
+ /* 146 */ '[','i','m','p','o','r','t',' ','%','1',']',EOL,
+ /* 158 */ p_endmacro,EOL,
+ /* 160 */ p_macro,'_','_','?','N','A','S','M','_','C','D','e','c','l','?','_','_',' ','1',EOL,
+ /* 180 */ p_endmacro,EOL,
+ /* 182 */ EOL
+};
+#endif
+const int use_package_count = 5;
+
+const struct use_package *nasm_find_use_package(const char *name)
+{
+ static const struct use_package packages[5] = {
+ { "altreg", nasm_usemac_altreg, 0 },
+ { "fp", nasm_usemac_fp, 1 },
+ { "ifunc", nasm_usemac_ifunc, 2 },
+ { "masm", nasm_usemac_masm, 3 },
+ { "smartalign", nasm_usemac_smartalign, 4 },
+ };
+#define INVALID_HASH_ENTRY (65535/3)
+ static const int16_t hashdata[16] = {
+ INVALID_HASH_ENTRY,
+ 0,
+ INVALID_HASH_ENTRY,
+ INVALID_HASH_ENTRY,
+ 2,
+ 0,
+ INVALID_HASH_ENTRY,
+ 3,
+ 0,
+ 1,
+ 0,
+ INVALID_HASH_ENTRY,
+ INVALID_HASH_ENTRY,
+ 4,
+ INVALID_HASH_ENTRY,
+ INVALID_HASH_ENTRY,
+ };
+ uint32_t k1, k2;
+ uint64_t crc;
+ uint16_t ix;
+
+ crc = crc64i(UINT64_C(0x076259c3e291c26c), name);
+ k1 = ((uint32_t)crc & 0xe) + 0;
+ k2 = ((uint32_t)(crc >> 32) & 0xe) + 1;
+
+ ix = hashdata[k1] + hashdata[k2];
+ if (ix >= 5)
+ return NULL;
+
+ if (nasm_stricmp(packages[ix].package, name))
+ return NULL;
+
+ return &packages[ix];
+}
diff --git a/vere/ext/nasm/macros/macros.pl b/vere/ext/nasm/macros/macros.pl
new file mode 100755
index 0000000..03a6486
--- /dev/null
+++ b/vere/ext/nasm/macros/macros.pl
@@ -0,0 +1,311 @@
+#!/usr/bin/perl
+## --------------------------------------------------------------------------
+##
+## Copyright 1996-2009 The NASM Authors - All Rights Reserved
+## See the file AUTHORS included with the NASM distribution for
+## the specific copyright holders.
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following
+## conditions are met:
+##
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above
+## copyright notice, this list of conditions and the following
+## disclaimer in the documentation and/or other materials provided
+## with the distribution.
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+## CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+## NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+## OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+## EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##
+## --------------------------------------------------------------------------
+
+#
+# macros.pl produce macros.c from standard.mac
+#
+
+require 'phash.ph';
+require 'asm/pptok.ph';
+
+use bytes;
+
+my $fname;
+my $line = 0;
+my $index = 0;
+my $tasm_count = 0;
+my @pname;
+
+# Default names for various bytes
+for (my $o = 0; $o < 256; $o++) {
+ my $c = chr($o);
+ if ($o < 32 || $o > 126) {
+ $pname[$o] = sprintf("%d", $o);
+ } elsif ($c =~ /^[\'\"\\]$/) {
+ $pname[$o] = "\'\\".$c."\'";
+ } else {
+ $pname[$o] = "\'".$c."\'";
+ }
+}
+
+#
+# Print out a string as a character array
+#
+sub charcify(@) {
+ my $l = '';
+ my ($c, $o);
+ my $space = 1;
+ my $quote = 0;
+
+ foreach $o (unpack("C*", join('',@_))) {
+ $c = pack("C", $o);
+ if ($quote) {
+ if ($o == $quote) {
+ $quote = 0;
+ }
+ } elsif ($c =~ /^[\'\"\`]$/) {
+ $quote = $o;
+ } else {
+ if ($c eq ' ') {
+ next if ($space);
+ $o = 32;
+ $c = ' ';
+ $space = 1;
+ } elsif ($o < 32 || $o > 126) {
+ $space = 1; # Implicit space after compacted directive
+ } else {
+ $space = 0;
+ }
+ }
+ $l .= $pname[$o];
+ $l .= ',';
+ }
+ return $l;
+}
+
+
+#
+# Generate macros.c
+#
+open(OUT, '>', 'macros/macros.c') or die "unable to open macros.c\n";
+
+print OUT "/*\n";
+print OUT " * Do not edit - this file auto-generated by macros.pl from:\n";
+print OUT " * ", join("\n * ", @ARGV), "\n";
+print OUT " */\n";
+print OUT "\n";
+print OUT "#include \"tables.h\"\n";
+print OUT "#include \"nasmlib.h\"\n";
+print OUT "#include \"hashtbl.h\"\n";
+print OUT "#include \"outform.h\"\n";
+print OUT "\n";
+
+my $name = undef;
+my $npkg = 0;
+my @pkg_list = ();
+my %pkg_number = ();
+my $pkg;
+my @out_list = ();
+my @std_list = ();
+my $outfmt;
+my $lastname;
+my $z;
+
+my @pptok_list = sort { $pptok_hash{$a} <=> $pptok_hash{$b} } keys %pptok_hash;
+my %pnum;
+
+foreach my $pt (@pptok_list) {
+ my $n = $pptok_hash{$pt};
+ if ($pt !~ /[A-Z]/ && $n < 256-96) {
+ $n = ($n+128) & 255;
+ (my $et = $pt) =~ s/^\%/p_/;
+ printf OUT "#define %-24s %3d\n", $et, $n;
+ $pnum{$pt} = $n;
+ $pname[$n] = $et;
+ }
+}
+printf OUT "#define %-24s %3d\n\n", 'EOL', 127;
+
+foreach $args ( @ARGV ) {
+ my @file_list = glob ( $args );
+ foreach $fname ( @file_list ) {
+ open(INPUT,'<', $fname) or die "$0: $fname: $!\n";
+ while (<INPUT>) {
+ $line++;
+ chomp;
+ while (/^(.*)\\$/) {
+ $_ = $1;
+ $_ .= <INPUT>;
+ chomp;
+ $line++;
+ }
+ s/^\s*(([^\'\"\;]|\"[^\"]*\"|\'[^\']*\')*?)\s*(\;.*)?$/$1/;
+ s/\s+/ /g;
+ next if ($_ eq '');
+
+ if (m/^OUT:\s*(\S.*)$/) {
+ undef $pkg;
+ my @out_alias = split(/\s+/, $1);
+ if (defined($name)) {
+ printf OUT " /* %4d */ EOL\n", $index++;
+ print OUT "};\n#endif\n";
+ undef $name;
+ }
+ $index = 0;
+ print OUT "\n";
+ my $pfx = '#if';
+ foreach my $al (@out_alias) {
+ print OUT $pfx, " defined(OF_\U${al}\E)";
+ $pfx = ' ||';
+ }
+ $name = $out_alias[0] . '_stdmac';
+ print OUT "\nconst unsigned char ${name}[] = {\n";
+ print OUT " /* From $fname */\n";
+ $lastname = $fname;
+ } elsif (m/^STD:\s*(\S+)$/) {
+ undef $pkg;
+ my $std = $1;
+ if (defined($name)) {
+ printf OUT " /* %4d */ EOL\n", $index++;
+ print OUT "};\n#endif\n";
+ undef $name;
+ }
+ $index = 0;
+ print OUT "\n#if 1";
+ $name = 'nasm_stdmac_' . $std;
+ print OUT "\nconst unsigned char ${name}[] = {\n";
+ print OUT " /* From $fname */\n";
+ $lastname = $fname;
+ } elsif (m/^USE:\s*(\S+)$/) {
+ $pkg = $1;
+ if (defined($pkg_number{$pkg})) {
+ die "$0: $fname: duplicate package: $pkg\n";
+ }
+ if (defined($name)) {
+ printf OUT " /* %4d */ EOL\n", $index++;
+ print OUT "};\n#endif\n";
+ undef $name;
+ }
+ $index = 0;
+ print OUT "\n#if 1";
+ $name = 'nasm_usemac_' . $pkg;
+ print OUT "\nstatic const unsigned char ${name}[] = {\n";
+ print OUT " /* From $fname */\n";
+ $lastname = $fname;
+ push(@pkg_list, $pkg);
+ $pkg_number{$pkg} = $npkg++;
+ $z = pack("C", $pnum{'%define'})."__?USE_\U$pkg\E?__";
+ printf OUT " /* %4d */ %sEOL,\n", $index, charcify($z);
+ $z = pack("C", $pnum{'%defalias'})."__USE_\U$pkg\E__ __?USE\U$pkg\E?__";
+ printf OUT " /* %4d */ %sEOL,\n", $index, charcify($z);
+ $index += length($z)+1;
+ } else {
+ my($s1, $s2, $pd, $ws);
+
+ if (!defined($name)) {
+ die "$0: $fname: macro declarations outside a known block\n";
+ }
+
+ $s1 = $_;
+ $s2 = '';
+ while ($s1 =~ /(\%[a-zA-Z_][a-zA-Z0-9_]*)((\s+)(.*)|)$/) {
+ $s2 .= "$'";
+ $pd = $1;
+ $ws = $3;
+ $s1 = $4;
+ if (defined($pnum{$pd})) {
+ $s2 .= pack("C", $pnum{$pd});
+ } else {
+ $s2 .= $pd.$ws;
+ }
+ }
+ $s2 .= $s1;
+ if (length($s2) > 0) {
+ if ($lastname ne $fname) {
+ print OUT "\n /* From $fname */\n";
+ $lastname = $fname;
+ }
+ printf OUT " /* %4d */ %sEOL,\n",
+ $index, charcify($s2);
+ $index += length($s2)+1;
+ }
+ }
+ }
+ close(INPUT);
+ }
+}
+
+if (defined($name)) {
+ printf OUT " /* %4d */ EOL\n", $index++;
+ print OUT "};\n#endif\n";
+ undef $name;
+}
+
+my @hashinfo = gen_perfect_hash(\%pkg_number);
+if (!@hashinfo) {
+ die "$0: no hash found\n";
+}
+# Paranoia...
+verify_hash_table(\%pkg_number, \@hashinfo);
+my ($n, $sv, $g) = @hashinfo;
+die if ($n & ($n-1));
+$n <<= 1;
+
+printf OUT "const int use_package_count = %d;\n\n", $npkg;
+
+print OUT "const struct use_package *nasm_find_use_package(const char *name)\n";
+print OUT "{\n";
+print OUT " static const struct use_package packages[$npkg] = {\n";
+my $ix = 0;
+foreach $pkg (@pkg_list) {
+ printf OUT " { \"%s\", nasm_usemac_%s, %d },\n",
+ $pkg, $pkg, $ix++;
+}
+print OUT " };\n";
+
+# Put a large value in unused slots. This makes it extremely unlikely
+# that any combination that involves unused slot will pass the range test.
+# This speeds up rejection of unrecognized tokens, i.e. identifiers.
+print OUT "#define INVALID_HASH_ENTRY (65535/3)\n";
+
+print OUT " static const int16_t hashdata[$n] = {\n";
+for ($i = 0; $i < $n; $i++) {
+ my $h = ${$g}[$i];
+ print OUT " ", defined($h) ? $h : 'INVALID_HASH_ENTRY', ",\n";
+}
+print OUT " };\n";
+
+print OUT " uint32_t k1, k2;\n";
+print OUT " uint64_t crc;\n";
+# For correct overflow behavior, "ix" should be unsigned of the same
+# width as the hash arrays.
+print OUT " uint16_t ix;\n";
+print OUT "\n";
+
+printf OUT " crc = crc64i(UINT64_C(0x%08x%08x), name);\n",
+ $$sv[0], $$sv[1];
+printf OUT " k1 = ((uint32_t)crc & 0x%x) + 0;\n", $n-2;
+printf OUT " k2 = ((uint32_t)(crc >> 32) & 0x%x) + 1;\n", $n-2;
+print OUT "\n";
+printf OUT " ix = hashdata[k1] + hashdata[k2];\n";
+printf OUT " if (ix >= %d)\n", scalar(@pkg_list);
+print OUT " return NULL;\n";
+print OUT "\n";
+print OUT " if (nasm_stricmp(packages[ix].package, name))\n";
+print OUT " return NULL;\n";
+print OUT "\n";
+print OUT " return &packages[ix];\n";
+print OUT "}\n";
+
+close(OUT);
diff --git a/vere/ext/nasm/macros/masm.mac b/vere/ext/nasm/macros/masm.mac
new file mode 100644
index 0000000..f476364
--- /dev/null
+++ b/vere/ext/nasm/macros/masm.mac
@@ -0,0 +1,82 @@
+;; --------------------------------------------------------------------------
+;;
+;; Copyright 2019 The NASM Authors - All Rights Reserved
+;; See the file AUTHORS included with the NASM distribution for
+;; the specific copyright holders.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following
+;; conditions are met:
+;;
+;; * Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; * Redistributions in binary form must reproduce the above
+;; copyright notice, this list of conditions and the following
+;; disclaimer in the documentation and/or other materials provided
+;; with the distribution.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;
+;; --------------------------------------------------------------------------
+
+;;
+;; masm.mac
+;;
+;; Very limited MASM compatibility package; intended to be used
+;; primarily with machine-generated code. It does not include any
+;; "programmer friendly" shortcuts, nor does it in any way support
+;; ASSUME, symbol typing, or MASM-style structures.
+;;
+
+USE: masm
+
+%unimacro segment 1+
+
+%imacro segment 0-1+.nolist
+ %define __?SECT?__ [segment %00 %1]
+ __?SECT?__
+%endmacro
+
+%imacro ends 0+.nolist
+ %null ends %00
+%endmacro
+
+%imacro proc 0-*.nolist
+ %rep %0
+ %ifidni %1,far
+ %idefine ret retf
+ %else
+ %idefine ret retn
+ %endif
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro endp 0.nolist
+ %null endp %00
+ %undef ret
+%endmacro
+
+%idefine ptr __?masm_ptr?__
+%idefine flat __?masm_flat?__ ; is %idefine really correct here?
+%idefine offset
+
+%imacro end 0+.nolist
+ ; Nothing
+%endmacro
+
+%idefine tbyte tword
+
+ default rel
diff --git a/vere/ext/nasm/macros/smartalign.mac b/vere/ext/nasm/macros/smartalign.mac
new file mode 100644
index 0000000..abd496e
--- /dev/null
+++ b/vere/ext/nasm/macros/smartalign.mac
@@ -0,0 +1,191 @@
+;; --------------------------------------------------------------------------
+;;
+;; Copyright 1996-2017 The NASM Authors - All Rights Reserved
+;; See the file AUTHORS included with the NASM distribution for
+;; the specific copyright holders.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following
+;; conditions are met:
+;;
+;; * Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; * Redistributions in binary form must reproduce the above
+;; copyright notice, this list of conditions and the following
+;; disclaimer in the documentation and/or other materials provided
+;; with the distribution.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;
+;; --------------------------------------------------------------------------
+
+;
+; Smart alignment macros
+;
+USE: smartalign
+
+%imacro alignmode 1-2.nolist
+ %ifidni %1,nop
+ %define __?ALIGN_JMP_THRESHOLD?__ 16
+
+ %define __?ALIGN_16BIT_1B?__ 0x90
+ %define __?ALIGN_16BIT_GROUP?__ 1
+
+ %define __?ALIGN_32BIT_1B?__ 0x90
+ %define __?ALIGN_32BIT_GROUP?__ 1
+
+ %define __?ALIGN_64BIT_1B?__ 0x90
+ %define __?ALIGN_64BIT_GROUP?__ 1
+ %elifidni %1,generic
+ %define __?ALIGN_JMP_THRESHOLD?__ 8
+
+ %define __?ALIGN_16BIT_1B?__ 0x90
+ %define __?ALIGN_16BIT_2B?__ 0x89,0xf6
+ %define __?ALIGN_16BIT_3B?__ 0x8d,0x74,0x00
+ %define __?ALIGN_16BIT_4B?__ 0x8d,0xb4,0x00,0x00
+ %define __?ALIGN_16BIT_5B?__ 0x8d,0xb4,0x00,0x00,0x90
+ %define __?ALIGN_16BIT_6B?__ 0x8d,0xb4,0x00,0x00,0x89,0xff
+ %define __?ALIGN_16BIT_7B?__ 0x8d,0xb4,0x00,0x00,0x8d,0x7d,0x00
+ %define __?ALIGN_16BIT_8B?__ 0x8d,0xb4,0x00,0x00,0x8d,0xbd,0x00,0x00
+ %define __?ALIGN_16BIT_GROUP?__ 8
+
+ %define __?ALIGN_32BIT_1B?__ 0x90
+ %define __?ALIGN_32BIT_2B?__ 0x89,0xf6
+ %define __?ALIGN_32BIT_3B?__ 0x8d,0x76,0x00
+ %define __?ALIGN_32BIT_4B?__ 0x8d,0x74,0x26,0x00
+ %define __?ALIGN_32BIT_5B?__ 0x90,0x8d,0x74,0x26,0x00
+ %define __?ALIGN_32BIT_6B?__ 0x8d,0xb6,0x00,0x00,0x00,0x00
+ %define __?ALIGN_32BIT_7B?__ 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00
+ %define __?ALIGN_32BIT_GROUP?__ 7
+
+ %define __?ALIGN_64BIT_1B?__ 0x90
+ %define __?ALIGN_64BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_64BIT_3B?__ 0x66,0x66,0x90
+ %define __?ALIGN_64BIT_4B?__ 0x66,0x66,0x66,0x90
+ %define __?ALIGN_64BIT_GROUP?__ 4
+ %elifidni %1,k8
+ %define __?ALIGN_JMP_THRESHOLD?__ 16
+
+ %define __?ALIGN_16BIT_1B?__ 0x90
+ %define __?ALIGN_16BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_16BIT_3B?__ 0x66,0x66,0x90
+ %define __?ALIGN_16BIT_4B?__ 0x66,0x66,0x66,0x90
+ %define __?ALIGN_16BIT_GROUP?__ 4
+
+ %define __?ALIGN_32BIT_1B?__ 0x90
+ %define __?ALIGN_32BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_32BIT_3B?__ 0x66,0x66,0x90
+ %define __?ALIGN_32BIT_4B?__ 0x66,0x66,0x66,0x90
+ %define __?ALIGN_32BIT_GROUP?__ 4
+
+ %define __?ALIGN_64BIT_1B?__ 0x90
+ %define __?ALIGN_64BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_64BIT_3B?__ 0x66,0x66,0x90
+ %define __?ALIGN_64BIT_4B?__ 0x66,0x66,0x66,0x90
+ %define __?ALIGN_64BIT_GROUP?__ 4
+ %elifidni %1,k7
+ %define __?ALIGN_JMP_THRESHOLD?__ 16
+
+ %define __?ALIGN_16BIT_1B?__ 0x90
+ %define __?ALIGN_16BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_16BIT_3B?__ 0x66,0x66,0x90
+ %define __?ALIGN_16BIT_4B?__ 0x66,0x66,0x66,0x90
+ %define __?ALIGN_64BIT_GROUP?__ 4
+
+ %define __?ALIGN_32BIT_1B?__ 0x90
+ %define __?ALIGN_32BIT_2B?__ 0x8b,0xc0
+ %define __?ALIGN_32BIT_3B?__ 0x8d,0x04,0x20
+ %define __?ALIGN_32BIT_4B?__ 0x8d,0x44,0x20,0x00
+ %define __?ALIGN_32BIT_5B?__ 0x8d,0x44,0x20,0x00,0x90
+ %define __?ALIGN_32BIT_6B?__ 0x8d,0x80,0x00,0x00,0x00,0x00
+ %define __?ALIGN_32BIT_7B?__ 0x8d,0x04,0x05,0x00,0x00,0x00,0x00
+ %define __?ALIGN_32BIT_GROUP?__ 7
+
+ %define __?ALIGN_64BIT_1B?__ 0x90
+ %define __?ALIGN_64BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_64BIT_3B?__ 0x66,0x66,0x90
+ %define __?ALIGN_64BIT_4B?__ 0x66,0x66,0x66,0x90
+ %define __?ALIGN_64BIT_GROUP?__ 4
+ %elifidni %1,p6
+ %define __?ALIGN_JMP_THRESHOLD?__ 16
+
+ %define __?ALIGN_16BIT_1B?__ 0x90
+ %define __?ALIGN_16BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_16BIT_3B?__ 0x0f,0x1f,0x00
+ %define __?ALIGN_16BIT_4B?__ 0x0f,0x1f,0x40,0x00
+ %define __?ALIGN_16BIT_GROUP?__ 4
+
+ %define __?ALIGN_32BIT_1B?__ 0x90
+ %define __?ALIGN_32BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_32BIT_3B?__ 0x0f,0x1f,0x00
+ %define __?ALIGN_32BIT_4B?__ 0x0f,0x1f,0x40,0x00
+ %define __?ALIGN_32BIT_5B?__ 0x0f,0x1f,0x44,0x00,0x00
+ %define __?ALIGN_32BIT_6B?__ 0x66,0x0f,0x1f,0x44,0x00,0x00
+ %define __?ALIGN_32BIT_7B?__ 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00
+ %define __?ALIGN_32BIT_8B?__ 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
+ %define __?ALIGN_32BIT_GROUP?__ 8
+
+ %define __?ALIGN_64BIT_1B?__ 0x90
+ %define __?ALIGN_64BIT_2B?__ 0x66,0x90
+ %define __?ALIGN_64BIT_3B?__ 0x0f,0x1f,0x00
+ %define __?ALIGN_64BIT_4B?__ 0x0f,0x1f,0x40,0x00
+ %define __?ALIGN_64BIT_5B?__ 0x0f,0x1f,0x44,0x00,0x00
+ %define __?ALIGN_64BIT_6B?__ 0x66,0x0f,0x1f,0x44,0x00,0x00
+ %define __?ALIGN_64BIT_7B?__ 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00
+ %define __?ALIGN_64BIT_8B?__ 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
+ %define __?ALIGN_64BIT_GROUP?__ 8
+ %else
+ %error unknown alignment mode: %1
+ %endif
+ %ifnempty %2
+ %ifidni %2,nojmp
+ %xdefine __?ALIGN_JMP_THRESHOLD?__ -1
+ %else
+ %xdefine __?ALIGN_JMP_THRESHOLD?__ %2
+ %endif
+ %endif
+ %xdefine __?ALIGNMODE?__ %1,__?ALIGN_JMP_THRESHOLD?__
+%endmacro
+
+%defalias __ALIGNMODE__ __?ALIGNMODE?__
+
+%unimacro align 1-2+.nolist
+%imacro align 1-2+.nolist
+ sectalign %1 ; align a segment as well
+ %ifnempty %2
+ times (((%1) - (($-$$) % (%1))) % (%1)) %2
+ %elif __?PASS?__ == 0 || __?PASS?__ == 3
+ times (((%1) - (($-$$) % (%1))) % (%1)) nop
+ %else
+ %push
+ %assign %$pad (((%1) - (($-$$) % (%1))) % (%1))
+ %if __?ALIGN_JMP_THRESHOLD?__ != -1 && %$pad > __?ALIGN_JMP_THRESHOLD?__
+ jmp %$end
+ ; We can't re-use %$pad here as $ will have changed!
+ times (((%1) - (($-$$) % (%1))) % (%1)) nop
+ %else
+ times (%$pad / __?ALIGN_%[__?BITS?__]BIT_GROUP?__) \
+ db __?ALIGN_%[__?BITS?__]BIT_%[__?ALIGN_%[__?BITS?__]BIT_GROUP?__]B?__
+ %assign %$pad %$pad % __?ALIGN_%[__?BITS?__]BIT_GROUP?__
+ %if %$pad > 0
+ db __?ALIGN_%[__?BITS?__]BIT_%[%$pad]B?__
+ %endif
+ %endif
+%$end:
+ %pop
+ %endif
+%endmacro
+
+ alignmode generic
diff --git a/vere/ext/nasm/macros/standard.mac b/vere/ext/nasm/macros/standard.mac
new file mode 100644
index 0000000..3d875e3
--- /dev/null
+++ b/vere/ext/nasm/macros/standard.mac
@@ -0,0 +1,331 @@
+;; --------------------------------------------------------------------------
+;;
+;; Copyright 1996-2019 The NASM Authors - All Rights Reserved
+;; See the file AUTHORS included with the NASM distribution for
+;; the specific copyright holders.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following
+;; conditions are met:
+;;
+;; * Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; * Redistributions in binary form must reproduce the above
+;; copyright notice, this list of conditions and the following
+;; disclaimer in the documentation and/or other materials provided
+;; with the distribution.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;
+;; --------------------------------------------------------------------------
+
+; Standard macro set for NASM -*- nasm -*-
+
+; Macros to make NASM ignore some TASM directives
+STD: tasm
+ %idefine IDEAL
+ %idefine JUMPS
+ %idefine P386
+ %idefine P486
+ %idefine P586
+ %idefine END
+
+; The normal standard macros
+STD: nasm
+
+; Note that although some user-level forms of directives are defined
+; here, not all of them are: the user-level form of a format-specific
+; directive should be defined in the module for that directive.
+
+%define __?SECT?__ ; it ought to be defined, even if as nothing
+%defalias __SECT__ __?SECT?__
+
+%imacro section 1+.nolist
+ %define __?SECT?__ [section %1]
+ __?SECT?__
+%endmacro
+
+%imacro segment 1+.nolist
+ %define __?SECT?__ [segment %1]
+ __?SECT?__
+%endmacro
+
+%define __?SECTALIGN_ALIGN_UPDATES_SECTION?__ 1
+%imacro sectalign 1+.nolist
+ %ifidni %1,off
+ %define __?SECTALIGN_ALIGN_UPDATES_SECTION?__ 0
+ %elifidni %1,on
+ %define __?SECTALIGN_ALIGN_UPDATES_SECTION?__ 1
+ %else
+ [sectalign %1]
+ %endif
+%endmacro
+%defalias __SECTALIGN_ALIGN_UPDATES_SECTION__ __?SECTALIGN_ALIGN_UPDATES_SECTION?__
+
+%imacro absolute 1+.nolist
+ %define __?SECT?__ [absolute %1]
+ __?SECT?__
+%endmacro
+
+%imacro struc 1-2.nolist 0
+ %push
+ %define %$strucname %1
+ [absolute %2]
+ %$strucname: ; allow definition of `.member' to work sanely
+%endmacro
+
+%imacro endstruc 0.nolist
+ %{$strucname}_size equ ($-%$strucname)
+ %pop
+ __?SECT?__
+%endmacro
+
+%imacro istruc 1.nolist
+ %push
+ %define %$strucname %1
+ %$strucstart:
+%endmacro
+
+%imacro at 1-2+.nolist
+ %defstr %$member %1
+ %substr %$member1 %$member 1
+ %ifidn %$member1, '.'
+ times (%$strucname%1-%$strucname)-($-%$strucstart) db 0
+ %else
+ times (%1-%$strucname)-($-%$strucstart) db 0
+ %endif
+ %2
+%endmacro
+
+%imacro iend 0.nolist
+ times %{$strucname}_size-($-%$strucstart) db 0
+ %pop
+%endmacro
+
+%imacro align 1-2+.nolist nop
+ %if __?SECTALIGN_ALIGN_UPDATES_SECTION?__
+ sectalign %1
+ %endif
+ times (((%1) - (($-$$) % (%1))) % (%1)) %2
+%endmacro
+
+%imacro alignb 1-2+.nolist
+ %if __?SECTALIGN_ALIGN_UPDATES_SECTION?__
+ sectalign %1
+ %endif
+ %ifempty %2
+ [warning push]
+ [warning -zeroing]
+ resb (((%1) - (($-$$) % (%1))) % (%1))
+ [warning pop]
+ %else
+ times (((%1) - (($-$$) % (%1))) % (%1)) %2
+ %endif
+%endmacro
+
+%imacro bits 1+.nolist
+ [bits %1]
+%endmacro
+
+%imacro use16 0.nolist
+ [bits 16]
+%endmacro
+
+%imacro use32 0.nolist
+ [bits 32]
+%endmacro
+
+%imacro use64 0.nolist
+ [bits 64]
+%endmacro
+
+%imacro extern 1-*.nolist
+ %rep %0
+ [extern %1]
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro static 1-*.nolist
+ %rep %0
+ [static %1]
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro global 1-*.nolist
+ %rep %0
+ [global %1]
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro required 1-*.nolist
+ %rep %0
+ [required %1]
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro common 1-*.nolist
+ %rep %0
+ [common %1]
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro cpu 1+.nolist
+ [cpu %1]
+%endmacro
+
+%define __?FLOAT_DAZ?__ nodaz
+%define __?FLOAT_ROUND?__ near
+; __?FLOAT?__ contains the whole floating-point configuration so it can
+; be saved and restored
+%define __?FLOAT?__ __?FLOAT_DAZ?__,__?FLOAT_ROUND?__
+
+%defalias __FLOAT_DAZ__ __?FLOAT_DAZ?__
+%defalias __FLOAT_ROUND__ __?FLOAT_ROUND?__
+%defalias __FLOAT__ __?FLOAT?__
+
+%imacro float 1-*.nolist
+ %rep %0
+ [float %1]
+ %ifidni %1,daz
+ %define __?FLOAT_DAZ?__ daz
+ %elifidni %1,nodaz
+ %define __?FLOAT_DAZ?__ nodaz
+ %elifidni %1,near
+ %define __?FLOAT_ROUND?__ near
+ %elifidni %1,up
+ %define __?FLOAT_ROUND?__ up
+ %elifidni %1,down
+ %define __?FLOAT_ROUND?__ down
+ %elifidni %1,zero
+ %define __?FLOAT_ROUND?__ zero
+ %elifidni %1,default
+ %define __?FLOAT_DAZ?__ nodaz
+ %define __?FLOAT_ROUND?__ near
+ %endif
+ %rotate 1
+ %endrep
+%endmacro
+
+%imacro default 1+.nolist
+ [default %1]
+%endmacro
+
+%imacro userel 0.nolist
+ [default rel]
+%endmacro
+%imacro useabs 0.nolist
+ [default abs]
+%endmacro
+%imacro usebnd 0.nolist
+ [default bnd]
+%endmacro
+%imacro usenobnd 0.nolist
+ [default nobnd]
+%endmacro
+
+%imacro incbin 1-2+.nolist 0
+ %push
+ %pathsearch %$dep %1
+ %depend %$dep
+ %? %$dep,%2
+ %pop
+%endmacro
+
+; Compatibility macro aliases
+%defalias __NASM_MAJOR__ __?NASM_MAJOR?__
+%defalias __NASM_MINOR__ __?NASM_MINOR?__
+%defalias __NASM_SUBMINOR__ __?NASM_SUBMINOR?__
+%defalias __NASM_PATCHLEVEL__ __?NASM_PATCHLEVEL?__
+%defalias __NASM_SNAPSHOT__ __?NASM_SNAPSHOT?__
+%defalias __NASM_VERSION_ID__ __?NASM_VERSION_ID?__
+%defalias __NASM_VER__ __?NASM_VER?__
+
+%defalias __OUTPUT_FORMAT__ __?OUTPUT_FORMAT?__
+%defalias __DEBUG_FORMAT__ __?DEBUG_FORMAT?__
+
+%defalias __DATE__ __?DATE?__
+%defalias __DATE_NUM__ __?DATE_NUM?__
+%defalias __TIME__ __?TIME?__
+%defalias __TIME_NUM__ __?TIME_NUM?__
+%defalias __UTC_DATE__ __?UTC_DATE?__
+%defalias __UTC_DATE_NUM__ __?UTC_DATE_NUM?__
+%defalias __UTC_TIME__ __?UTC_TIME?__
+%defalias __UTC_TIME_NUM__ __?UTC_TIME_NUM?__
+%defalias __POSIX_TIME__ __?POSIX_TIME?__
+
+%defalias __FILE__ __?FILE?__
+%defalias __LINE__ __?LINE?__
+%defalias __BITS__ __?BITS?__
+%defalias __PTR__ __?PTR?__
+%defalias __PASS__ __?PASS?__
+
+; Backwards compatibility aliases for tokens. The extra level of indirection here
+; means %aliases on|off will do the right thing for these as well.
+%idefine __?infinity?__ %?
+%idefine __?nan?__ %?
+%idefine __?qnan?__ %?
+%idefine __?snan?__ %?
+
+%idefine __?float8?__ %?
+%idefine __?float16?__ %?
+%idefine __?float32?__ %?
+%idefine __?float64?__ %?
+%idefine __?float80m?__ %?
+%idefine __?float80e?__ %?
+%idefine __?float128l?__ %?
+%idefine __?float128h?__ %?
+
+%idefine __?utf16?__ %?
+%idefine __?utf16le?__ %?
+%idefine __?utf16be?__ %?
+%idefine __?utf32?__ %?
+%idefine __?utf32le?__ %?
+%idefine __?utf32be?__ %?
+
+%idefine __?ilog2e?__ %?
+%idefine __?ilog2w?__ %?
+%idefine __?ilog2f?__ %?
+%idefine __?ilog2c?__ %?
+
+%idefalias __infinity__ __?infinity?__
+%idefalias __nan__ __?nan?__
+%idefalias __qnan__ __?qnan?__
+%idefalias __snan__ __?snan?__
+
+%idefalias __float8__ __?float8?__
+%idefalias __float16__ __?float16?__
+%idefalias __float32__ __?float32?__
+%idefalias __float64__ __?float64?__
+%idefalias __float80m__ __?float80m?__
+%idefalias __float80e__ __?float80e?__
+%idefalias __float128l__ __?float128l?__
+%idefalias __float128h__ __?float128h?__
+
+%idefalias __utf16__ __?utf16?__
+%idefalias __utf16le__ __?utf16le?__
+%idefalias __utf16be__ __?utf16be?__
+%idefalias __utf32__ __?utf32?__
+%idefalias __utf32le__ __?utf32le?__
+%idefalias __utf32be__ __?utf32be?__
+
+%idefalias __ilog2e__ __?ilog2e?__
+%idefalias __ilog2w__ __?ilog2w?__
+%idefalias __ilog2f__ __?ilog2f?__
+%idefalias __ilog2c__ __?ilog2c?__