@specy/x86 2.8.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler-output.mjs","names":[],"sources":["../src/compiler-output/profile.ts","../src/compiler-output/lexer.ts","../src/compiler-output/nasm-instruction-set.ts","../src/compiler-output/nasm-reserved.ts","../src/compiler-output/operands.ts","../src/compiler-output/instructions.ts","../src/compiler-output/locations.ts","../src/compiler-output/names.ts","../src/compiler-output/sections.ts","../src/compiler-output/analyze.ts","../src/compiler-output/diagnostics.ts","../src/compiler-output/emit.ts","../src/compiler-output/translate.ts"],"sourcesContent":["import type { TranslationProfile, TranslationProfileId } from './types'\n\nfunction freeze<T>(value: T): T {\n if (value && typeof value === 'object') {\n for (const child of Object.values(value)) freeze(child)\n Object.freeze(value)\n }\n return value\n}\n\n/**\n * GCC 14.2's x86-64 output under the flag groups below (`docs/design/x86-compiler-assembly-\n * translation-plan.md`, \"Input profile\"). The optimization levels are the ones the corpus\n * (`tests/fixtures/gcc-intel-v1`) passes at.\n */\nexport const GCC_INTEL_V1: TranslationProfile = freeze({\n id: 'gcc-intel-v1',\n compiler: { name: 'GCC', version: '14.2', target: 'x86-64' },\n flags: {\n translation: ['-masm=intel', '-fno-pie', '-fno-stack-protector', '-fcf-protection=none', '-fno-verbose-asm'],\n locations: ['-g1'],\n target: ['-march=x86-64', '-mtune=generic'],\n language: {\n c: ['-std=c17'],\n cpp: ['-std=c++17', '-fno-exceptions', '-fno-rtti'],\n },\n },\n optimizations: ['0', '1', '2', '3', 's'],\n} as const satisfies TranslationProfile)\n\n/**\n * Rules a pending decision can still change within a profile, kept apart from the profile itself so\n * that switching one is a one-line change here rather than a search through the translator.\n */\nexport type TranslationRules = {\n /**\n * `.type x, @gnu_unique_object` (gate 7): `'weak-object'` drops it like `@object`, keeping the\n * symbol's `.weak` binding, which is equivalent in a static link, and makes it an error for a\n * symbol that is not `.weak`; `'reject'` makes every one an `unsupported-symbol` error. The\n * corpus capture found GCC writing `.weak x` before every one of 201 occurrences.\n */\n readonly gnuUniqueObject: 'reject' | 'weak-object'\n}\n\nconst PROFILES: Readonly<Record<TranslationProfileId, { profile: TranslationProfile; rules: TranslationRules }>> =\n freeze({\n 'gcc-intel-v1': { profile: GCC_INTEL_V1, rules: { gnuUniqueObject: 'weak-object' } },\n })\n\n/** The profile and its rules for an id; throws for an id this package does not know. */\nexport function resolveProfile(id: unknown): { profile: TranslationProfile; rules: TranslationRules } {\n if (typeof id !== 'string' || !Object.hasOwn(PROFILES, id)) {\n throw new Error(\n `Unknown compiler-output translation profile ${JSON.stringify(id)}; known profiles: ${Object.keys(PROFILES).join(', ')}`,\n )\n }\n return PROFILES[id as TranslationProfileId]\n}\n","/** A piece of an input line and the one-based column it starts at. */\nexport type Token = { readonly text: string; readonly column: number }\n\n/** One statement of a line, classified by its first word. */\nexport type LexedStatement =\n | { readonly kind: 'label'; readonly name: Token }\n | { readonly kind: 'numeric-label'; readonly name: Token }\n | { readonly kind: 'quoted-label'; readonly name: Token }\n /** `name` keeps the dot and the compiler's case; `body` is everything after it. */\n | { readonly kind: 'directive'; readonly name: Token; readonly body: Token }\n | { readonly kind: 'assignment'; readonly name: Token }\n | { readonly kind: 'instruction'; readonly body: Token }\n | { readonly kind: 'unreadable'; readonly body: Token }\n\nexport type LexedLine =\n | { readonly kind: 'blank' }\n /** A line whose first character is `#`, from the `#` on. */\n | { readonly kind: 'comment'; readonly text: Token }\n | {\n readonly kind: 'code'\n readonly statements: readonly LexedStatement[]\n /** Column of a `#` comment after the code, if any. */\n readonly trailingComment: number | null\n /** Columns of the `;` separating statements, if any. */\n readonly separators: readonly number[]\n }\n\n/** GNU as symbol names; quoted names and names with other characters are not read. */\nexport const GAS_SYMBOL = /^[A-Za-z_.$][A-Za-z0-9_.$]*$/\n\n/**\n * Control characters other than a tab (C0, DEL and C1) and the Unicode line and paragraph\n * separators. GCC writes none of them inside a line, and the separators and a carriage return end a\n * line for `.` in a regular expression, so the statement patterns cannot read past them.\n */\nconst UNREADABLE_CHARACTER = /[\\u0000-\\u0008\\u000a-\\u001f\\u007f-\\u009f\\u2028\\u2029]/\n\n/**\n * The first character of a line that the lexer does not read, with its one-based column, or null.\n * A carriage return at the very end is part of a CRLF line ending, which {@link lexLine} drops.\n */\nexport function unreadableCharacter(raw: string): { readonly codePoint: number; readonly column: number } | null {\n const line = raw.endsWith('\\r') ? raw.slice(0, -1) : raw\n const found = UNREADABLE_CHARACTER.exec(line)\n return found ? { codePoint: found[0].charCodeAt(0), column: found.index + 1 } : null\n}\n\n/**\n * Splits a line into statements the way GNU as does for x86: `#` starts a comment and `;` separates\n * statements, except inside a string. A line with an {@link unreadableCharacter} is not lexed.\n */\nexport function lexLine(raw: string): LexedLine {\n const line = raw.endsWith('\\r') ? raw.slice(0, -1) : raw\n const first = line.search(/\\S/)\n if (first < 0) return { kind: 'blank' }\n if (line[first] === '#') return { kind: 'comment', text: { text: line.slice(first).trimEnd(), column: first + 1 } }\n\n let inString = false\n let comment: number | null = null\n const separators: number[] = []\n for (let index = first; index < line.length; index += 1) {\n const character = line[index]\n if (inString) {\n if (character === '\\\\') index += 1\n else if (character === '\"') inString = false\n continue\n }\n if (character === '\"') inString = true\n else if (character === '#') {\n comment = index\n break\n } else if (character === ';') separators.push(index)\n }\n\n const end = comment ?? line.length\n const statements: LexedStatement[] = []\n let start = first\n for (const cut of [...separators, end]) {\n lexStatements(line.slice(start, cut), start + 1, statements)\n start = cut + 1\n }\n return {\n kind: 'code',\n statements,\n trailingComment: comment === null ? null : comment + 1,\n separators: separators.map((index) => index + 1),\n }\n}\n\n/** The label forms a statement can start with, in the order they are tried. */\nconst LABEL_FORMS = [\n { kind: 'label', pattern: /^([A-Za-z_.$][A-Za-z0-9_.$]*):/ },\n { kind: 'numeric-label', pattern: /^(\\d+):/ },\n { kind: 'quoted-label', pattern: /^(\"(?:[^\"\\\\]|\\\\.)*\"):/ },\n] as const\n\n/** The label `text` starts with, and how many characters it and its colon take. */\nfunction leadingLabel(\n text: string,\n): { readonly kind: (typeof LABEL_FORMS)[number]['kind']; readonly name: string; readonly length: number } | null {\n for (const { kind, pattern } of LABEL_FORMS) {\n const match = pattern.exec(text)\n if (match) return { kind, name: match[1]!, length: match[0].length }\n }\n return null\n}\n\n/**\n * Appends the statements of one `;`-delimited piece to `statements`: normally one, more when labels\n * share its line. A loop rather than recursion, so that any number of labels on one line is read in\n * time and stack proportional to its length.\n */\nfunction lexStatements(piece: string, pieceColumn: number, statements: LexedStatement[]): void {\n let rest = piece\n let restColumn = pieceColumn\n for (;;) {\n const leading = rest.search(/\\S/)\n if (leading < 0) return\n const text = rest.slice(leading).trimEnd()\n const column = restColumn + leading\n\n const label = leadingLabel(text)\n if (label) {\n statements.push({ kind: label.kind, name: { text: label.name, column } })\n rest = text.slice(label.length)\n restColumn = column + label.length\n continue\n }\n const directive = /^\\.[A-Za-z_][A-Za-z0-9_]*(?=\\s|$)/.exec(text)\n if (directive) {\n const after = text.slice(directive[0].length)\n const bodyStart = after.search(/\\S/)\n statements.push({\n kind: 'directive',\n name: { text: directive[0], column },\n body:\n bodyStart < 0\n ? { text: '', column: column + text.length }\n : { text: after.slice(bodyStart), column: column + directive[0].length + bodyStart },\n })\n return\n }\n const assignment = /^([A-Za-z_.$][A-Za-z0-9_.$]*)\\s*=/.exec(text)\n if (assignment) statements.push({ kind: 'assignment', name: { text: assignment[1]!, column } })\n else if (/^[A-Za-z][A-Za-z0-9]*(?=\\s|$)/.test(text))\n statements.push({ kind: 'instruction', body: { text, column } })\n else statements.push({ kind: 'unreadable', body: { text, column } })\n return\n }\n}\n\n/** Splits at commas outside strings, brackets and parentheses, keeping empty pieces. */\nexport function splitCommas(body: Token): Token[] {\n if (!body.text.trim()) return []\n const pieces: Token[] = []\n let depth = 0\n let inString = false\n let start = 0\n const push = (end: number) => {\n const raw = body.text.slice(start, end)\n const leading = raw.search(/\\S/)\n pieces.push(\n leading < 0\n ? { text: '', column: body.column + start }\n : { text: raw.slice(leading).trimEnd(), column: body.column + start + leading },\n )\n }\n for (let index = 0; index < body.text.length; index += 1) {\n const character = body.text[index]\n if (inString) {\n if (character === '\\\\') index += 1\n else if (character === '\"') inString = false\n continue\n }\n if (character === '\"') inString = true\n else if (character === '[' || character === '(') depth += 1\n else if (character === ']' || character === ')') depth -= 1\n else if (character === ',' && depth === 0) {\n push(index)\n start = index + 1\n }\n }\n push(body.text.length)\n return pieces\n}\n\n/** Splits at whitespace outside strings, which is how `.file` and `.loc` separate their fields. */\nexport function splitWords(body: Token): Token[] {\n const words: Token[] = []\n let index = 0\n const text = body.text\n while (index < text.length) {\n while (index < text.length && /\\s/.test(text[index]!)) index += 1\n if (index >= text.length) break\n const start = index\n let inString = false\n while (index < text.length && (inString || !/\\s/.test(text[index]!))) {\n if (inString && text[index] === '\\\\') index += 1\n else if (text[index] === '\"') inString = !inString\n index += 1\n }\n words.push({ text: text.slice(start, index), column: body.column + start })\n }\n return words\n}\n\n/**\n * An integer as GNU as reads it where GCC writes one: decimal, or hexadecimal with `0x`. A decimal\n * with a leading zero is octal to GNU as and decimal to NASM, so it is not read at all.\n */\nexport function parseInteger(text: string): bigint | null {\n if (/^(?:0|[1-9][0-9]*)$/.test(text)) return BigInt(text)\n if (/^0[xX][0-9a-fA-F]+$/.test(text)) return BigInt(text)\n return null\n}\n\nconst SIMPLE_ESCAPES: ReadonlyMap<string, number> = new Map([\n ['b', 8],\n ['f', 12],\n ['n', 10],\n ['r', 13],\n ['t', 9],\n ['\"', 34],\n ['\\\\', 92],\n])\n\n/**\n * The bytes of a GNU as string literal, quotes included in `token`. Every escape GNU as gives a\n * meaning is read; anything it would only warn about, or read differently from a C compiler, is an\n * error rather than a guess.\n */\nexport function decodeGasString(token: Token): { bytes: Uint8Array } | { error: string } {\n const text = token.text\n if (text.length < 2 || !text.startsWith('\"') || !text.endsWith('\"')) {\n return { error: `expected a string in double quotes, found \\`${text}\\`` }\n }\n const bytes: number[] = []\n const encoder = new TextEncoder()\n for (let index = 1; index < text.length - 1; index += 1) {\n const character = text[index]!\n if (character === '\"') return { error: `unexpected \\`\"\\` inside \\`${text}\\`` }\n if (character !== '\\\\') {\n // By code point, so that a character outside the BMP, two UTF-16 units, is one character.\n const code = text.codePointAt(index)!\n if (code < 0x80) bytes.push(code)\n else {\n const unit = String.fromCodePoint(code)\n bytes.push(...encoder.encode(unit))\n index += unit.length - 1\n }\n continue\n }\n const escape = text[index + 1]\n if (escape === undefined || index + 1 >= text.length - 1) return { error: `unfinished escape in \\`${text}\\`` }\n const simple = SIMPLE_ESCAPES.get(escape)\n if (simple !== undefined) {\n bytes.push(simple)\n index += 1\n continue\n }\n const octal = /^[0-7]{1,3}/.exec(text.slice(index + 1, text.length - 1))\n if (octal) {\n // GNU as reads up to three decimal digits here, so `\\18` is not `\\1` then `8` to it.\n if (octal[0].length < 3 && /[89]/.test(text[index + 1 + octal[0].length] ?? '')) {\n return { error: `octal escape followed by a digit GNU as would read into it, in \\`${text}\\`` }\n }\n const value = Number.parseInt(octal[0], 8)\n if (value > 0xff) return { error: `octal escape \\\\${octal[0]} is larger than a byte in \\`${text}\\`` }\n bytes.push(value)\n index += octal[0].length\n continue\n }\n if (escape === 'x' || escape === 'X') {\n const hex = /^[0-9a-fA-F]{1,2}(?![0-9a-fA-F])/.exec(text.slice(index + 2, text.length - 1))\n if (!hex) return { error: `hexadecimal escape GNU as and NASM read differently in \\`${text}\\`` }\n bytes.push(Number.parseInt(hex[0], 16))\n index += 1 + hex[0].length\n continue\n }\n return { error: `escape \\\\${escape} has no meaning GNU as defines, in \\`${text}\\`` }\n }\n return { bytes: Uint8Array.from(bytes) }\n}\n\nconst NASM_SIMPLE_ESCAPES: ReadonlyMap<number, string> = new Map([\n [8, '\\\\b'],\n [9, '\\\\t'],\n [10, '\\\\n'],\n [12, '\\\\f'],\n [13, '\\\\r'],\n [92, '\\\\\\\\'],\n [96, '\\\\`'],\n])\n\n/**\n * A NASM backquote string with exactly these bytes. Printable ASCII is written as itself, the C\n * escapes GNU as and NASM share are kept, and every other byte is a three-digit octal escape, which\n * NASM reads up to three digits of, so a following digit can never join it.\n */\nexport function encodeNasmString(bytes: Uint8Array): string {\n let text = '`'\n for (const byte of bytes) {\n const simple = NASM_SIMPLE_ESCAPES.get(byte)\n if (simple) text += simple\n else if (byte >= 0x20 && byte <= 0x7e) text += String.fromCharCode(byte)\n else text += `\\\\${byte.toString(8).padStart(3, '0')}`\n }\n return `${text}\\``\n}\n","/**\n * Every mnemonic NASM 3.00 assembles, with the operand forms the compiler-output translator lets\n * through and why its other forms are rejected. A form is allowed when its template is neither VEX,\n * EVEX nor XOP encoded, needs no extension beyond x87, SSE, SSE2 and SSE3, no processor newer than\n * the x86-64 baseline, works in 64-bit mode, and is documented, unprivileged and no system\n * instruction; `endbr64` is admitted on top. That is what Blink, as the Core builds it, runs.\n *\n * Generated by `node scripts/generate-nasm-reserved-names.mjs`; edit that script, never this file.\n *\n * Sources: NASM 3.00 (`../wasm_nasm/nasm`, downloaded by `compile_wasm_nasm.sh`):\n * `x86/insns.xda`, `x86/iflags.ph` and `x86/insns.pl`,\n * SPDX-License-Identifier: BSD-2-Clause, Copyright 1996-2025 The NASM Authors.\n */\n\n/** Why forms are rejected, as predicates of the mnemonic (`needs SSSE3`, `is privileged`). */\nexport const NASM_REJECTION_REASONS: readonly string[] = [\n \"is not available in 64-bit mode\",\n \"needs RAOINT\",\n \"needs RAOINT and APX (EVEX-encoded)\",\n \"needs APX (EVEX-encoded)\",\n \"needs ADX\",\n \"needs APX and ADX (EVEX-encoded)\",\n \"needs AVX-512 DQ (VEX-encoded)\",\n \"needs AVX-512 BW (VEX-encoded)\",\n \"needs Westmere, beyond the x86-64 baseline\",\n \"needs AESKLE\",\n \"needs AESKLEWIDE_KL\",\n \"needs AVX-512 F (VEX-encoded)\",\n \"needs BMI1 (VEX-encoded)\",\n \"needs BMI1 and APX (EVEX-encoded)\",\n \"was removed from the architecture\",\n \"needs TBM (XOP-encoded)\",\n \"needs SSE4.1\",\n \"needs MPX\",\n \"is a system instruction\",\n \"needs BMI2 (VEX-encoded)\",\n \"needs SMAP\",\n \"needs CLDEMOTE\",\n \"needs CLFLUSHOPT\",\n \"needs VMX\",\n \"needs CET\",\n \"is privileged\",\n \"needs UINTR\",\n \"needs CLWB\",\n \"needs CLZERO\",\n \"needs CMPCCXADD (VEX-encoded)\",\n \"needs CMPCCXADD and APX (EVEX-encoded)\",\n \"is undocumented\",\n \"needs SSE4.2\",\n \"needs SSE4.2 and APX (EVEX-encoded)\",\n \"needs MMX\",\n \"is a NASM pseudo-instruction, not an instruction\",\n \"needs SGX\",\n \"needs ENQCMD\",\n \"needs ENQCMD and APX (EVEX-encoded)\",\n \"needs FRED\",\n \"needs SSE4a\",\n \"needs 3DNow!\",\n \"needs GFNI\",\n \"needs HRESET\",\n \"needs VMX and APX (EVEX-encoded)\",\n \"needs INVPCID\",\n \"needs APX and INVPCID (EVEX-encoded)\",\n \"needs APX\",\n \"needs AMXTILE (VEX-encoded)\",\n \"needs LKGS\",\n \"needs APX (XOP-encoded)\",\n \"needs LZCNT\",\n \"needs APX and LZCNT (EVEX-encoded)\",\n \"needs MONITOR\",\n \"needs MONITORX\",\n \"needs MOVBE\",\n \"needs APX and MOVBE (EVEX-encoded)\",\n \"needs MOVDIR64B\",\n \"needs APX and MOVDIR64B (EVEX-encoded)\",\n \"needs MOVDIRI\",\n \"needs APX and MOVDIRI (EVEX-encoded)\",\n \"needs Ivy Bridge or newer, beyond the x86-64 baseline\",\n \"needs MMX and SSSE3\",\n \"needs SSSE3\",\n \"needs PBNDKB\",\n \"needs PCONFIG\",\n \"needs Nehalem, beyond the x86-64 baseline\",\n \"needs PREFETCHI\",\n \"needs MOVRS\",\n \"needs PREFETCHWT1\",\n \"needs PTWRITE\",\n \"needs APX and MSR_IMM (VEX-encoded)\",\n \"needs MSRLIST\",\n \"needs RDPID\",\n \"needs PKU\",\n \"needs RDRAND\",\n \"needs RDSEED\",\n \"runs only in system-management mode\",\n \"needs SERIALIZE\",\n \"needs SHA\",\n \"needs APX (VEX-encoded)\",\n \"needs AMXBF16 (VEX-encoded)\",\n \"needs AMXINT8 (VEX-encoded)\",\n \"needs AMXFP16 (VEX-encoded)\",\n \"needs AMXTILE and APX (VEX-encoded)\",\n \"needs WAITPKG\",\n \"needs BMI1\",\n \"needs AVX-512 4VNNIW (EVEX-encoded)\",\n \"needs AVX-512 4FMAPS (EVEX-encoded)\",\n \"needs AVX10_2 (EVEX-encoded)\",\n \"needs AVX (VEX-encoded)\",\n \"needs AVX-512 and AVX-512 VL (EVEX-encoded)\",\n \"needs AVX-512 (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 FP16 and AVX10_1 (EVEX-encoded)\",\n \"needs AVX-512 FP16 and AVX10_1 (EVEX-encoded)\",\n \"needs AVX-512 FP16 (EVEX-encoded)\",\n \"needs AVX-512 and AVX-512 VL and VAES (EVEX-encoded)\",\n \"needs VAES (VEX-encoded)\",\n \"needs AVX-512 and VAES (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 DQ (EVEX-encoded)\",\n \"needs AVX-512 DQ (EVEX-encoded)\",\n \"needs AVXNECONVERT (VEX-encoded)\",\n \"needs AVX2 (VEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 FP16 (EVEX-encoded)\",\n \"needs AVX-512 BF16 (EVEX-encoded)\",\n \"needs AVX-512 FC16 (VEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 FC16 (VEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 BW (EVEX-encoded)\",\n \"needs AVX-512 BW (EVEX-encoded)\",\n \"needs AVX-512 ER (EVEX-encoded)\",\n \"needs AVX-512 F and AVX-512 VL and AVX10_1 (EVEX-encoded)\",\n \"needs AVX-512 F and AVX10_1 (EVEX-encoded)\",\n \"needs AVX-512 DQ and AVX10_1 (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 DQ and AVX10_1 (EVEX-encoded)\",\n \"needs FMA (VEX-encoded)\",\n \"needs SSE5 (XOP) (VEX-encoded)\",\n \"needs SSE5 (XOP) (XOP-encoded)\",\n \"needs AVX2\",\n \"needs AVX-512 and AVX-512 VL\",\n \"needs AVX-512\",\n \"needs AVX-512 PF\",\n \"needs AVX and GFNI (VEX-encoded)\",\n \"needs AVX-512 VL and GFNI (EVEX-encoded)\",\n \"needs AVX-512 and GFNI (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 VP2INTERSECT (EVEX-encoded)\",\n \"needs AVX-512 F and AVX-512 VP2INTERSECT (EVEX-encoded)\",\n \"needs AVX-512 CD and AVX-512 VL (EVEX-encoded)\",\n \"needs AVX-512 CD (EVEX-encoded)\",\n \"needs AVX-512 VL and VPCLMULQDQ (EVEX-encoded)\",\n \"needs VPCLMULQDQ (VEX-encoded)\",\n \"needs AVX-512 and VPCLMULQDQ (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 VBMI2 (EVEX-encoded)\",\n \"needs AVX-512 VBMI2 (EVEX-encoded)\",\n \"needs AVXVNNIINT8 (VEX-encoded)\",\n \"needs AVX10_2 and AVX10_VNNIINT (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 VNNI (EVEX-encoded)\",\n \"needs AVX-512 VNNI (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 VBMI (EVEX-encoded)\",\n \"needs AVX-512 VBMI (EVEX-encoded)\",\n \"needs AVXIFMA (VEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 IFMA (EVEX-encoded)\",\n \"needs AVX-512 IFMA (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 BITALG (EVEX-encoded)\",\n \"needs AVX-512 BITALG (EVEX-encoded)\",\n \"needs AVX-512 VL and AVX-512 VPOPCNTDQ (EVEX-encoded)\",\n \"needs AVX-512 VPOPCNTDQ (EVEX-encoded)\",\n \"needs AVX and SHA512 (VEX-encoded)\",\n \"needs AVX and HSM3 (VEX-encoded)\",\n \"needs AVX and HSM4 (VEX-encoded)\",\n \"needs AVX and HSM4 (EVEX-encoded)\",\n \"needs WBNOINVD\",\n \"needs WRMSRNS\",\n \"needs CET and APX (EVEX-encoded)\",\n \"needs RTM\",\n \"needs TSXLDTRK\",\n]\n\n/** A mnemonic's allowed forms and its rejected forms with their reasons. */\nexport type InstructionForms = readonly [allowed: string, rejected: string]\n\n/**\n * Each mnemonic with its [allowed forms, rejected forms]. Forms are `|`-separated operand lists,\n * `_` for none; each operand is the kinds it accepts: `g` a general register, `m` memory, `i` an\n * immediate or branch target, `x` an `xmm` register, `f` an x87 register, so `gm` is a register\n * or memory, and `-` a kind no translated operand is (MMX, AVX, mask and system registers). A\n * rejected form is followed by `=` and the `+`-separated indices of its reasons in\n * {@link NASM_REJECTION_REASONS}. An empty allowed list means no form at all is allowed, and its\n * rejected forms are then the single `*`, standing for every form.\n *\n * A Map rather than an object, so that no mnemonic in the input reads a property every object has,\n * such as `constructor`.\n */\nexport const NASM_INSTRUCTION_SET: ReadonlyMap<string, InstructionForms> = new Map<string, InstructionForms>([\n [\"aaa\", [\"\", \"*=0\"]],\n [\"aad\", [\"\", \"*=0\"]],\n [\"aadd\", [\"\", \"*=1+2\"]],\n [\"aam\", [\"\", \"*=0\"]],\n [\"aand\", [\"\", \"*=1+2\"]],\n [\"aas\", [\"\", \"*=0\"]],\n [\"adc\", [\"g,i|g,gm|gm,g|gm,i\", \"g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"adcx\", [\"\", \"*=4+5\"]],\n [\"add\", [\"g,i|g,gm|gm,g|gm,i\", \"-,-=6+7|-,-,-=6+7|g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"addb\", [\"\", \"*=6\"]],\n [\"addd\", [\"\", \"*=7\"]],\n [\"addpd\", [\"x,xm\", \"\"]],\n [\"addps\", [\"x,xm\", \"\"]],\n [\"addq\", [\"\", \"*=7\"]],\n [\"addsd\", [\"x,xm\", \"\"]],\n [\"addss\", [\"x,xm\", \"\"]],\n [\"addsubpd\", [\"x,xm\", \"\"]],\n [\"addsubps\", [\"x,xm\", \"\"]],\n [\"addw\", [\"\", \"*=6\"]],\n [\"adox\", [\"\", \"*=4+5\"]],\n [\"aesdec\", [\"\", \"*=8\"]],\n [\"aesdec128kl\", [\"\", \"*=9\"]],\n [\"aesdec256kl\", [\"\", \"*=9\"]],\n [\"aesdeclast\", [\"\", \"*=8\"]],\n [\"aesdecwide128kl\", [\"\", \"*=10\"]],\n [\"aesdecwide256kl\", [\"\", \"*=10\"]],\n [\"aesenc\", [\"\", \"*=8\"]],\n [\"aesenc128kl\", [\"\", \"*=9\"]],\n [\"aesenc256kl\", [\"\", \"*=9\"]],\n [\"aesenclast\", [\"\", \"*=8\"]],\n [\"aesencwide128kl\", [\"\", \"*=10\"]],\n [\"aesencwide256kl\", [\"\", \"*=10\"]],\n [\"aesimc\", [\"\", \"*=8\"]],\n [\"aeskeygenassist\", [\"\", \"*=8\"]],\n [\"and\", [\"g,i|g,gm|gm,g|gm,i\", \"-,-=6+7+11|-,-,-=6+7+11|g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"andb\", [\"\", \"*=6\"]],\n [\"andd\", [\"\", \"*=7\"]],\n [\"andn\", [\"\", \"*=6+7+11+12+13\"]],\n [\"andnb\", [\"\", \"*=6\"]],\n [\"andnd\", [\"\", \"*=7\"]],\n [\"andnpd\", [\"x,xm\", \"\"]],\n [\"andnps\", [\"x,xm\", \"\"]],\n [\"andnq\", [\"\", \"*=7\"]],\n [\"andnw\", [\"\", \"*=11\"]],\n [\"andpd\", [\"x,xm\", \"\"]],\n [\"andps\", [\"x,xm\", \"\"]],\n [\"andq\", [\"\", \"*=7\"]],\n [\"andw\", [\"\", \"*=11\"]],\n [\"aor\", [\"\", \"*=1+2\"]],\n [\"arpl\", [\"\", \"*=0\"]],\n [\"axor\", [\"\", \"*=1+2\"]],\n [\"bb0_reset\", [\"\", \"*=14\"]],\n [\"bb1_reset\", [\"\", \"*=14\"]],\n [\"bextr\", [\"\", \"*=12+13+15\"]],\n [\"blcfill\", [\"\", \"*=15\"]],\n [\"blci\", [\"\", \"*=15\"]],\n [\"blcic\", [\"\", \"*=15\"]],\n [\"blcmsk\", [\"\", \"*=15\"]],\n [\"blcs\", [\"\", \"*=15\"]],\n [\"blendpd\", [\"\", \"*=16\"]],\n [\"blendps\", [\"\", \"*=16\"]],\n [\"blendvpd\", [\"\", \"*=16\"]],\n [\"blendvps\", [\"\", \"*=16\"]],\n [\"blsfill\", [\"\", \"*=15\"]],\n [\"blsi\", [\"\", \"*=12+13\"]],\n [\"blsic\", [\"\", \"*=15\"]],\n [\"blsmsk\", [\"\", \"*=12+13\"]],\n [\"blsr\", [\"\", \"*=12+13\"]],\n [\"bndcl\", [\"\", \"*=17\"]],\n [\"bndcn\", [\"\", \"*=17\"]],\n [\"bndcu\", [\"\", \"*=17\"]],\n [\"bndldx\", [\"\", \"*=17\"]],\n [\"bndmk\", [\"\", \"*=17\"]],\n [\"bndmov\", [\"\", \"*=17\"]],\n [\"bndstx\", [\"\", \"*=17\"]],\n [\"bound\", [\"\", \"*=0\"]],\n [\"brkpt\", [\"\", \"*=18\"]],\n [\"bsf\", [\"g,gm\", \"\"]],\n [\"bsr\", [\"g,gm\", \"\"]],\n [\"bswap\", [\"g\", \"\"]],\n [\"bt\", [\"gm,g|gm,i\", \"\"]],\n [\"btc\", [\"gm,g|gm,i\", \"\"]],\n [\"btr\", [\"gm,g|gm,i\", \"\"]],\n [\"bts\", [\"gm,g|gm,i\", \"\"]],\n [\"bzhi\", [\"\", \"*=13+19\"]],\n [\"call\", [\"i|m|gm\", \"-=0\"]],\n [\"cbw\", [\"_\", \"\"]],\n [\"ccmp\", [\"\", \"*=3\"]],\n [\"ccmpa\", [\"\", \"*=3\"]],\n [\"ccmpae\", [\"\", \"*=3\"]],\n [\"ccmpb\", [\"\", \"*=3\"]],\n [\"ccmpbe\", [\"\", \"*=3\"]],\n [\"ccmpc\", [\"\", \"*=3\"]],\n [\"ccmpe\", [\"\", \"*=3\"]],\n [\"ccmpf\", [\"\", \"*=3\"]],\n [\"ccmpg\", [\"\", \"*=3\"]],\n [\"ccmpge\", [\"\", \"*=3\"]],\n [\"ccmpl\", [\"\", \"*=3\"]],\n [\"ccmple\", [\"\", \"*=3\"]],\n [\"ccmpna\", [\"\", \"*=3\"]],\n [\"ccmpnae\", [\"\", \"*=3\"]],\n [\"ccmpnb\", [\"\", \"*=3\"]],\n [\"ccmpnbe\", [\"\", \"*=3\"]],\n [\"ccmpnc\", [\"\", \"*=3\"]],\n [\"ccmpne\", [\"\", \"*=3\"]],\n [\"ccmpng\", [\"\", \"*=3\"]],\n [\"ccmpnge\", [\"\", \"*=3\"]],\n [\"ccmpnl\", [\"\", \"*=3\"]],\n [\"ccmpnle\", [\"\", \"*=3\"]],\n [\"ccmpno\", [\"\", \"*=3\"]],\n [\"ccmpns\", [\"\", \"*=3\"]],\n [\"ccmpnz\", [\"\", \"*=3\"]],\n [\"ccmpo\", [\"\", \"*=3\"]],\n [\"ccmps\", [\"\", \"*=3\"]],\n [\"ccmpt\", [\"\", \"*=3\"]],\n [\"ccmpz\", [\"\", \"*=3\"]],\n [\"cdq\", [\"_\", \"\"]],\n [\"cdqe\", [\"_\", \"\"]],\n [\"cfcmova\", [\"\", \"*=3\"]],\n [\"cfcmovae\", [\"\", \"*=3\"]],\n [\"cfcmovb\", [\"\", \"*=3\"]],\n [\"cfcmovbe\", [\"\", \"*=3\"]],\n [\"cfcmovc\", [\"\", \"*=3\"]],\n [\"cfcmove\", [\"\", \"*=3\"]],\n [\"cfcmovg\", [\"\", \"*=3\"]],\n [\"cfcmovge\", [\"\", \"*=3\"]],\n [\"cfcmovl\", [\"\", \"*=3\"]],\n [\"cfcmovle\", [\"\", \"*=3\"]],\n [\"cfcmovna\", [\"\", \"*=3\"]],\n [\"cfcmovnae\", [\"\", \"*=3\"]],\n [\"cfcmovnb\", [\"\", \"*=3\"]],\n [\"cfcmovnbe\", [\"\", \"*=3\"]],\n [\"cfcmovnc\", [\"\", \"*=3\"]],\n [\"cfcmovne\", [\"\", \"*=3\"]],\n [\"cfcmovng\", [\"\", \"*=3\"]],\n [\"cfcmovnge\", [\"\", \"*=3\"]],\n [\"cfcmovnl\", [\"\", \"*=3\"]],\n [\"cfcmovnle\", [\"\", \"*=3\"]],\n [\"cfcmovno\", [\"\", \"*=3\"]],\n [\"cfcmovnp\", [\"\", \"*=3\"]],\n [\"cfcmovns\", [\"\", \"*=3\"]],\n [\"cfcmovnz\", [\"\", \"*=3\"]],\n [\"cfcmovo\", [\"\", \"*=3\"]],\n [\"cfcmovp\", [\"\", \"*=3\"]],\n [\"cfcmovpe\", [\"\", \"*=3\"]],\n [\"cfcmovpo\", [\"\", \"*=3\"]],\n [\"cfcmovs\", [\"\", \"*=3\"]],\n [\"cfcmovz\", [\"\", \"*=3\"]],\n [\"clac\", [\"\", \"*=20\"]],\n [\"clc\", [\"_\", \"\"]],\n [\"cld\", [\"_\", \"\"]],\n [\"cldemote\", [\"\", \"*=21\"]],\n [\"clflush\", [\"m\", \"\"]],\n [\"clflushopt\", [\"\", \"*=22\"]],\n [\"clgi\", [\"\", \"*=23\"]],\n [\"cli\", [\"\", \"*=18\"]],\n [\"clrssbsy\", [\"\", \"*=24\"]],\n [\"clts\", [\"\", \"*=25\"]],\n [\"clui\", [\"\", \"*=26\"]],\n [\"clwb\", [\"\", \"*=27\"]],\n [\"clzero\", [\"\", \"*=28\"]],\n [\"cmc\", [\"_\", \"\"]],\n [\"cmova\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovae\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovb\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovbe\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovc\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmove\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovg\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovge\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovl\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovle\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovna\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnae\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnb\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnbe\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnc\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovne\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovng\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnge\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnl\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnle\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovno\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnp\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovns\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovnz\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovo\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovp\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovpe\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovpo\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovs\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmovz\", [\"g,gm\", \"g,g,gm=3\"]],\n [\"cmp\", [\"g,i|g,gm|gm,g|gm,i\", \"\"]],\n [\"cmpaexadd\", [\"\", \"*=29+30\"]],\n [\"cmpaxadd\", [\"\", \"*=29+30\"]],\n [\"cmpbexadd\", [\"\", \"*=29+30\"]],\n [\"cmpbxadd\", [\"\", \"*=29+30\"]],\n [\"cmpcxadd\", [\"\", \"*=29+30\"]],\n [\"cmpeqpd\", [\"x,xm\", \"\"]],\n [\"cmpeqps\", [\"x,xm\", \"\"]],\n [\"cmpeqsd\", [\"x,xm\", \"\"]],\n [\"cmpeqss\", [\"x,xm\", \"\"]],\n [\"cmpexadd\", [\"\", \"*=29+30\"]],\n [\"cmpgexadd\", [\"\", \"*=29+30\"]],\n [\"cmpgxadd\", [\"\", \"*=29+30\"]],\n [\"cmplepd\", [\"x,xm\", \"\"]],\n [\"cmpleps\", [\"x,xm\", \"\"]],\n [\"cmplesd\", [\"x,xm\", \"\"]],\n [\"cmpless\", [\"x,xm\", \"\"]],\n [\"cmplexadd\", [\"\", \"*=29+30\"]],\n [\"cmpltpd\", [\"x,xm\", \"\"]],\n [\"cmpltps\", [\"x,xm\", \"\"]],\n [\"cmpltsd\", [\"x,xm\", \"\"]],\n [\"cmpltss\", [\"x,xm\", \"\"]],\n [\"cmplxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnaexadd\", [\"\", \"*=29+30\"]],\n [\"cmpnaxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnbexadd\", [\"\", \"*=29+30\"]],\n [\"cmpnbxadd\", [\"\", \"*=29+30\"]],\n [\"cmpncxadd\", [\"\", \"*=29+30\"]],\n [\"cmpneqpd\", [\"x,xm\", \"\"]],\n [\"cmpneqps\", [\"x,xm\", \"\"]],\n [\"cmpneqsd\", [\"x,xm\", \"\"]],\n [\"cmpneqss\", [\"x,xm\", \"\"]],\n [\"cmpnexadd\", [\"\", \"*=29+30\"]],\n [\"cmpngexadd\", [\"\", \"*=29+30\"]],\n [\"cmpngxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnlepd\", [\"x,xm\", \"\"]],\n [\"cmpnleps\", [\"x,xm\", \"\"]],\n [\"cmpnlesd\", [\"x,xm\", \"\"]],\n [\"cmpnless\", [\"x,xm\", \"\"]],\n [\"cmpnlexadd\", [\"\", \"*=29+30\"]],\n [\"cmpnltpd\", [\"x,xm\", \"\"]],\n [\"cmpnltps\", [\"x,xm\", \"\"]],\n [\"cmpnltsd\", [\"x,xm\", \"\"]],\n [\"cmpnltss\", [\"x,xm\", \"\"]],\n [\"cmpnlxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnoxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnpxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnsxadd\", [\"\", \"*=29+30\"]],\n [\"cmpnzxadd\", [\"\", \"*=29+30\"]],\n [\"cmpordpd\", [\"x,xm\", \"\"]],\n [\"cmpordps\", [\"x,xm\", \"\"]],\n [\"cmpordsd\", [\"x,xm\", \"\"]],\n [\"cmpordss\", [\"x,xm\", \"\"]],\n [\"cmpoxadd\", [\"\", \"*=29+30\"]],\n [\"cmppd\", [\"x,xm,i\", \"\"]],\n [\"cmppexadd\", [\"\", \"*=29+30\"]],\n [\"cmppoxadd\", [\"\", \"*=29+30\"]],\n [\"cmpps\", [\"x,xm,i\", \"\"]],\n [\"cmppxadd\", [\"\", \"*=29+30\"]],\n [\"cmpsb\", [\"_\", \"\"]],\n [\"cmpsd\", [\"_|x,xm,i\", \"\"]],\n [\"cmpsq\", [\"_\", \"\"]],\n [\"cmpss\", [\"x,xm,i\", \"\"]],\n [\"cmpsw\", [\"_\", \"\"]],\n [\"cmpsxadd\", [\"\", \"*=29+30\"]],\n [\"cmpunordpd\", [\"x,xm\", \"\"]],\n [\"cmpunordps\", [\"x,xm\", \"\"]],\n [\"cmpunordsd\", [\"x,xm\", \"\"]],\n [\"cmpunordss\", [\"x,xm\", \"\"]],\n [\"cmpxchg\", [\"gm,g\", \"\"]],\n [\"cmpxchg16b\", [\"m\", \"\"]],\n [\"cmpxchg486\", [\"\", \"*=31\"]],\n [\"cmpxchg8b\", [\"m\", \"\"]],\n [\"cmpzxadd\", [\"\", \"*=29+30\"]],\n [\"comisd\", [\"x,xm\", \"\"]],\n [\"comiss\", [\"x,xm\", \"\"]],\n [\"cpu_read\", [\"\", \"*=14\"]],\n [\"cpu_write\", [\"\", \"*=14\"]],\n [\"cpuid\", [\"\", \"*=18\"]],\n [\"cqo\", [\"_\", \"\"]],\n [\"crc32\", [\"\", \"*=32+33\"]],\n [\"ctest\", [\"\", \"*=3\"]],\n [\"ctesta\", [\"\", \"*=3\"]],\n [\"ctestae\", [\"\", \"*=3\"]],\n [\"ctestb\", [\"\", \"*=3\"]],\n [\"ctestbe\", [\"\", \"*=3\"]],\n [\"ctestc\", [\"\", \"*=3\"]],\n [\"cteste\", [\"\", \"*=3\"]],\n [\"ctestf\", [\"\", \"*=3\"]],\n [\"ctestg\", [\"\", \"*=3\"]],\n [\"ctestge\", [\"\", \"*=3\"]],\n [\"ctestl\", [\"\", \"*=3\"]],\n [\"ctestle\", [\"\", \"*=3\"]],\n [\"ctestna\", [\"\", \"*=3\"]],\n [\"ctestnae\", [\"\", \"*=3\"]],\n [\"ctestnb\", [\"\", \"*=3\"]],\n [\"ctestnbe\", [\"\", \"*=3\"]],\n [\"ctestnc\", [\"\", \"*=3\"]],\n [\"ctestne\", [\"\", \"*=3\"]],\n [\"ctestng\", [\"\", \"*=3\"]],\n [\"ctestnge\", [\"\", \"*=3\"]],\n [\"ctestnl\", [\"\", \"*=3\"]],\n [\"ctestnle\", [\"\", \"*=3\"]],\n [\"ctestno\", [\"\", \"*=3\"]],\n [\"ctestns\", [\"\", \"*=3\"]],\n [\"ctestnz\", [\"\", \"*=3\"]],\n [\"ctesto\", [\"\", \"*=3\"]],\n [\"ctests\", [\"\", \"*=3\"]],\n [\"ctestt\", [\"\", \"*=3\"]],\n [\"ctestz\", [\"\", \"*=3\"]],\n [\"cvtdq2pd\", [\"x,xm\", \"\"]],\n [\"cvtdq2ps\", [\"x,xm\", \"\"]],\n [\"cvtpd2dq\", [\"x,xm\", \"\"]],\n [\"cvtpd2pi\", [\"\", \"\"]],\n [\"cvtpd2ps\", [\"x,xm\", \"\"]],\n [\"cvtpi2pd\", [\"\", \"\"]],\n [\"cvtpi2ps\", [\"\", \"*=34\"]],\n [\"cvtps2dq\", [\"x,xm\", \"\"]],\n [\"cvtps2pd\", [\"x,xm\", \"\"]],\n [\"cvtps2pi\", [\"\", \"*=34\"]],\n [\"cvtsd2si\", [\"g,xm\", \"\"]],\n [\"cvtsd2ss\", [\"x,xm\", \"\"]],\n [\"cvtsi2sd\", [\"x,gm\", \"\"]],\n [\"cvtsi2ss\", [\"x,gm\", \"\"]],\n [\"cvtss2sd\", [\"x,xm\", \"\"]],\n [\"cvtss2si\", [\"g,xm\", \"\"]],\n [\"cvttpd2dq\", [\"x,xm\", \"\"]],\n [\"cvttpd2pi\", [\"\", \"\"]],\n [\"cvttps2dq\", [\"x,xm\", \"\"]],\n [\"cvttps2pi\", [\"\", \"*=34\"]],\n [\"cvttsd2si\", [\"g,xm\", \"\"]],\n [\"cvttss2si\", [\"g,xm\", \"\"]],\n [\"cwd\", [\"_\", \"\"]],\n [\"cwde\", [\"_\", \"\"]],\n [\"daa\", [\"\", \"*=0\"]],\n [\"das\", [\"\", \"*=0\"]],\n [\"db\", [\"\", \"*=35\"]],\n [\"dd\", [\"\", \"*=35\"]],\n [\"dec\", [\"gm\", \"g=0|g,gm=3\"]],\n [\"div\", [\"gm\", \"\"]],\n [\"divpd\", [\"x,xm\", \"\"]],\n [\"divps\", [\"x,xm\", \"\"]],\n [\"divsd\", [\"x,xm\", \"\"]],\n [\"divss\", [\"x,xm\", \"\"]],\n [\"dmint\", [\"\", \"*=14\"]],\n [\"do\", [\"\", \"*=35\"]],\n [\"dppd\", [\"\", \"*=16\"]],\n [\"dpps\", [\"\", \"*=16\"]],\n [\"dq\", [\"\", \"*=35\"]],\n [\"dt\", [\"\", \"*=35\"]],\n [\"dw\", [\"\", \"*=35\"]],\n [\"dy\", [\"\", \"*=35\"]],\n [\"dz\", [\"\", \"*=35\"]],\n [\"emms\", [\"\", \"*=34\"]],\n [\"encls\", [\"\", \"*=36\"]],\n [\"enclu\", [\"\", \"*=36\"]],\n [\"enclv\", [\"\", \"*=36\"]],\n [\"encodekey128\", [\"\", \"*=9\"]],\n [\"encodekey256\", [\"\", \"*=9\"]],\n [\"endbr32\", [\"\", \"*=24\"]],\n [\"endbr64\", [\"_\", \"\"]],\n [\"enqcmd\", [\"\", \"*=37+38\"]],\n [\"enqcmds\", [\"\", \"*=37+38\"]],\n [\"enter\", [\"i|i,i\", \"\"]],\n [\"enterd\", [\"i|i,i\", \"\"]],\n [\"enterq\", [\"i|i,i\", \"\"]],\n [\"enterw\", [\"i|i,i\", \"\"]],\n [\"equ\", [\"\", \"*=35\"]],\n [\"erets\", [\"\", \"*=39\"]],\n [\"eretu\", [\"\", \"*=39\"]],\n [\"extractps\", [\"\", \"*=16\"]],\n [\"extrq\", [\"\", \"*=40\"]],\n [\"f2xm1\", [\"_\", \"\"]],\n [\"fabs\", [\"_\", \"\"]],\n [\"fadd\", [\"_|f|m|f,f\", \"\"]],\n [\"faddp\", [\"_|f|f,f\", \"\"]],\n [\"fbld\", [\"m\", \"\"]],\n [\"fbstp\", [\"m\", \"\"]],\n [\"fchs\", [\"_\", \"\"]],\n [\"fclex\", [\"_\", \"\"]],\n [\"fcmovb\", [\"_|f|f,f\", \"\"]],\n [\"fcmovbe\", [\"_|f|f,f\", \"\"]],\n [\"fcmove\", [\"_|f|f,f\", \"\"]],\n [\"fcmovnb\", [\"_|f|f,f\", \"\"]],\n [\"fcmovnbe\", [\"_|f|f,f\", \"\"]],\n [\"fcmovne\", [\"_|f|f,f\", \"\"]],\n [\"fcmovnu\", [\"_|f|f,f\", \"\"]],\n [\"fcmovu\", [\"_|f|f,f\", \"\"]],\n [\"fcom\", [\"_|f|m|f,f\", \"\"]],\n [\"fcomi\", [\"_|f|f,f\", \"\"]],\n [\"fcomip\", [\"_|f|f,f\", \"\"]],\n [\"fcomp\", [\"_|f|m|f,f\", \"\"]],\n [\"fcompp\", [\"_\", \"\"]],\n [\"fcos\", [\"_\", \"\"]],\n [\"fdecstp\", [\"_\", \"\"]],\n [\"fdisi\", [\"_\", \"\"]],\n [\"fdiv\", [\"_|f|m|f,f\", \"\"]],\n [\"fdivp\", [\"_|f|f,f\", \"\"]],\n [\"fdivr\", [\"_|f|m|f,f\", \"\"]],\n [\"fdivrp\", [\"_|f|f,f\", \"\"]],\n [\"femms\", [\"\", \"*=41\"]],\n [\"feni\", [\"_\", \"\"]],\n [\"ffree\", [\"_|f\", \"\"]],\n [\"ffreep\", [\"\", \"*=31\"]],\n [\"fiadd\", [\"m\", \"\"]],\n [\"ficom\", [\"m\", \"\"]],\n [\"ficomp\", [\"m\", \"\"]],\n [\"fidiv\", [\"m\", \"\"]],\n [\"fidivr\", [\"m\", \"\"]],\n [\"fild\", [\"m\", \"\"]],\n [\"fimul\", [\"m\", \"\"]],\n [\"fincstp\", [\"_\", \"\"]],\n [\"finit\", [\"_\", \"\"]],\n [\"fist\", [\"m\", \"\"]],\n [\"fistp\", [\"m\", \"\"]],\n [\"fisttp\", [\"m\", \"\"]],\n [\"fisub\", [\"m\", \"\"]],\n [\"fisubr\", [\"m\", \"\"]],\n [\"fld\", [\"_|f|m\", \"\"]],\n [\"fld1\", [\"_\", \"\"]],\n [\"fldcw\", [\"m\", \"\"]],\n [\"fldenv\", [\"m\", \"\"]],\n [\"fldl2e\", [\"_\", \"\"]],\n [\"fldl2t\", [\"_\", \"\"]],\n [\"fldlg2\", [\"_\", \"\"]],\n [\"fldln2\", [\"_\", \"\"]],\n [\"fldpi\", [\"_\", \"\"]],\n [\"fldz\", [\"_\", \"\"]],\n [\"fmul\", [\"_|f|m|f,f\", \"\"]],\n [\"fmulp\", [\"_|f|f,f\", \"\"]],\n [\"fnclex\", [\"_\", \"\"]],\n [\"fndisi\", [\"_\", \"\"]],\n [\"fneni\", [\"_\", \"\"]],\n [\"fninit\", [\"_\", \"\"]],\n [\"fnop\", [\"_\", \"\"]],\n [\"fnsave\", [\"m\", \"\"]],\n [\"fnstcw\", [\"m\", \"\"]],\n [\"fnstenv\", [\"m\", \"\"]],\n [\"fnstsw\", [\"g|m\", \"\"]],\n [\"fpatan\", [\"_\", \"\"]],\n [\"fprem\", [\"_\", \"\"]],\n [\"fprem1\", [\"_\", \"\"]],\n [\"fptan\", [\"_\", \"\"]],\n [\"frndint\", [\"_\", \"\"]],\n [\"frstor\", [\"m\", \"\"]],\n [\"fsave\", [\"m\", \"\"]],\n [\"fscale\", [\"_\", \"\"]],\n [\"fsetpm\", [\"_\", \"\"]],\n [\"fsin\", [\"_\", \"\"]],\n [\"fsincos\", [\"_\", \"\"]],\n [\"fsqrt\", [\"_\", \"\"]],\n [\"fst\", [\"_|f|m\", \"\"]],\n [\"fstcw\", [\"m\", \"\"]],\n [\"fstenv\", [\"m\", \"\"]],\n [\"fstp\", [\"_|f|m\", \"\"]],\n [\"fstsw\", [\"g|m\", \"\"]],\n [\"fsub\", [\"_|f|m|f,f\", \"\"]],\n [\"fsubp\", [\"_|f|f,f\", \"\"]],\n [\"fsubr\", [\"_|f|m|f,f\", \"\"]],\n [\"fsubrp\", [\"_|f|f,f\", \"\"]],\n [\"ftst\", [\"_\", \"\"]],\n [\"fucom\", [\"_|f|f,f\", \"\"]],\n [\"fucomi\", [\"_|f|f,f\", \"\"]],\n [\"fucomip\", [\"_|f|f,f\", \"\"]],\n [\"fucomp\", [\"_|f|f,f\", \"\"]],\n [\"fucompp\", [\"_\", \"\"]],\n [\"fwait\", [\"_\", \"\"]],\n [\"fxam\", [\"_\", \"\"]],\n [\"fxch\", [\"_|f|f,f\", \"\"]],\n [\"fxrstor\", [\"m\", \"\"]],\n [\"fxrstor64\", [\"m\", \"\"]],\n [\"fxsave\", [\"m\", \"\"]],\n [\"fxsave64\", [\"m\", \"\"]],\n [\"fxtract\", [\"_\", \"\"]],\n [\"fyl2x\", [\"_\", \"\"]],\n [\"fyl2xp1\", [\"_\", \"\"]],\n [\"getsec\", [\"\", \"*=18\"]],\n [\"gf2p8affineinvqb\", [\"\", \"*=42\"]],\n [\"gf2p8affineqb\", [\"\", \"*=42\"]],\n [\"gf2p8mulb\", [\"\", \"*=42\"]],\n [\"haddpd\", [\"x,xm\", \"\"]],\n [\"haddps\", [\"x,xm\", \"\"]],\n [\"hint_nop\", [\"\", \"*=31\"]],\n [\"hint_nop0\", [\"\", \"*=31\"]],\n [\"hint_nop1\", [\"\", \"*=31\"]],\n [\"hint_nop10\", [\"\", \"*=31\"]],\n [\"hint_nop11\", [\"\", \"*=31\"]],\n [\"hint_nop12\", [\"\", \"*=31\"]],\n [\"hint_nop13\", [\"\", \"*=31\"]],\n [\"hint_nop14\", [\"\", \"*=31\"]],\n [\"hint_nop15\", [\"\", \"*=31\"]],\n [\"hint_nop16\", [\"\", \"*=31\"]],\n [\"hint_nop17\", [\"\", \"*=31\"]],\n [\"hint_nop18\", [\"\", \"*=31\"]],\n [\"hint_nop19\", [\"\", \"*=31\"]],\n [\"hint_nop2\", [\"\", \"*=31\"]],\n [\"hint_nop20\", [\"\", \"*=31\"]],\n [\"hint_nop21\", [\"\", \"*=31\"]],\n [\"hint_nop22\", [\"\", \"*=31\"]],\n [\"hint_nop23\", [\"\", \"*=31\"]],\n [\"hint_nop24\", [\"\", \"*=31\"]],\n [\"hint_nop25\", [\"\", \"*=31\"]],\n [\"hint_nop26\", [\"\", \"*=31\"]],\n [\"hint_nop27\", [\"\", \"*=31\"]],\n [\"hint_nop28\", [\"\", \"*=31\"]],\n [\"hint_nop29\", [\"\", \"*=31\"]],\n [\"hint_nop3\", [\"\", \"*=31\"]],\n [\"hint_nop30\", [\"\", \"*=31\"]],\n [\"hint_nop31\", [\"\", \"*=31\"]],\n [\"hint_nop32\", [\"\", \"*=31\"]],\n [\"hint_nop33\", [\"\", \"*=31\"]],\n [\"hint_nop34\", [\"\", \"*=31\"]],\n [\"hint_nop35\", [\"\", \"*=31\"]],\n [\"hint_nop36\", [\"\", \"*=31\"]],\n [\"hint_nop37\", [\"\", \"*=31\"]],\n [\"hint_nop38\", [\"\", \"*=31\"]],\n [\"hint_nop39\", [\"\", \"*=31\"]],\n [\"hint_nop4\", [\"\", \"*=31\"]],\n [\"hint_nop40\", [\"\", \"*=31\"]],\n [\"hint_nop41\", [\"\", \"*=31\"]],\n [\"hint_nop42\", [\"\", \"*=31\"]],\n [\"hint_nop43\", [\"\", \"*=31\"]],\n [\"hint_nop44\", [\"\", \"*=31\"]],\n [\"hint_nop45\", [\"\", \"*=31\"]],\n [\"hint_nop46\", [\"\", \"*=31\"]],\n [\"hint_nop47\", [\"\", \"*=31\"]],\n [\"hint_nop48\", [\"\", \"*=31\"]],\n [\"hint_nop49\", [\"\", \"*=31\"]],\n [\"hint_nop5\", [\"\", \"*=31\"]],\n [\"hint_nop50\", [\"\", \"*=31\"]],\n [\"hint_nop51\", [\"\", \"*=31\"]],\n [\"hint_nop52\", [\"\", \"*=31\"]],\n [\"hint_nop53\", [\"\", \"*=31\"]],\n [\"hint_nop54\", [\"\", \"*=31\"]],\n [\"hint_nop55\", [\"\", \"*=31\"]],\n [\"hint_nop56\", [\"\", \"*=31\"]],\n [\"hint_nop57\", [\"\", \"*=31\"]],\n [\"hint_nop58\", [\"\", \"*=31\"]],\n [\"hint_nop59\", [\"\", \"*=31\"]],\n [\"hint_nop6\", [\"\", \"*=31\"]],\n [\"hint_nop60\", [\"\", \"*=31\"]],\n [\"hint_nop61\", [\"\", \"*=31\"]],\n [\"hint_nop62\", [\"\", \"*=31\"]],\n [\"hint_nop63\", [\"\", \"*=31\"]],\n [\"hint_nop7\", [\"\", \"*=31\"]],\n [\"hint_nop8\", [\"\", \"*=31\"]],\n [\"hint_nop9\", [\"\", \"*=31\"]],\n [\"hlt\", [\"\", \"*=25\"]],\n [\"hreset\", [\"\", \"*=43\"]],\n [\"hsubpd\", [\"x,xm\", \"\"]],\n [\"hsubps\", [\"x,xm\", \"\"]],\n [\"ibts\", [\"\", \"*=31\"]],\n [\"icebp\", [\"\", \"*=18\"]],\n [\"idiv\", [\"gm\", \"\"]],\n [\"imul\", [\"gm|g,i|g,gm|g,gm,i\", \"g,g,gm=3\"]],\n [\"in\", [\"\", \"*=18\"]],\n [\"inc\", [\"gm\", \"g=0|g,gm=3\"]],\n [\"incbin\", [\"\", \"*=35\"]],\n [\"incsspd\", [\"\", \"*=24\"]],\n [\"incsspq\", [\"\", \"*=24\"]],\n [\"insb\", [\"\", \"*=18\"]],\n [\"insd\", [\"\", \"*=18\"]],\n [\"insertps\", [\"\", \"*=16\"]],\n [\"insertq\", [\"\", \"*=40\"]],\n [\"insw\", [\"\", \"*=18\"]],\n [\"int\", [\"\", \"*=18\"]],\n [\"int01\", [\"\", \"*=18\"]],\n [\"int03\", [\"\", \"*=18\"]],\n [\"int1\", [\"\", \"*=18\"]],\n [\"int3\", [\"\", \"*=18\"]],\n [\"into\", [\"\", \"*=0\"]],\n [\"invd\", [\"\", \"*=25\"]],\n [\"invept\", [\"\", \"*=23+44\"]],\n [\"invlpg\", [\"\", \"*=25\"]],\n [\"invlpga\", [\"\", \"*=0+18\"]],\n [\"invpcid\", [\"\", \"*=45+46\"]],\n [\"invvpid\", [\"\", \"*=23+44\"]],\n [\"iret\", [\"\", \"*=18\"]],\n [\"iretd\", [\"\", \"*=18\"]],\n [\"iretq\", [\"\", \"*=18\"]],\n [\"iretw\", [\"\", \"*=18\"]],\n [\"ja\", [\"i\", \"\"]],\n [\"jae\", [\"i\", \"\"]],\n [\"jb\", [\"i\", \"\"]],\n [\"jbe\", [\"i\", \"\"]],\n [\"jc\", [\"i\", \"\"]],\n [\"jcxz\", [\"i,g\", \"i=0\"]],\n [\"je\", [\"i\", \"\"]],\n [\"jecxz\", [\"i\", \"\"]],\n [\"jg\", [\"i\", \"\"]],\n [\"jge\", [\"i\", \"\"]],\n [\"jl\", [\"i\", \"\"]],\n [\"jle\", [\"i\", \"\"]],\n [\"jmp\", [\"i|m|gm\", \"-=0\"]],\n [\"jmpabs\", [\"\", \"*=47\"]],\n [\"jmpe\", [\"\", \"*=18\"]],\n [\"jna\", [\"i\", \"\"]],\n [\"jnae\", [\"i\", \"\"]],\n [\"jnb\", [\"i\", \"\"]],\n [\"jnbe\", [\"i\", \"\"]],\n [\"jnc\", [\"i\", \"\"]],\n [\"jne\", [\"i\", \"\"]],\n [\"jng\", [\"i\", \"\"]],\n [\"jnge\", [\"i\", \"\"]],\n [\"jnl\", [\"i\", \"\"]],\n [\"jnle\", [\"i\", \"\"]],\n [\"jno\", [\"i\", \"\"]],\n [\"jnp\", [\"i\", \"\"]],\n [\"jns\", [\"i\", \"\"]],\n [\"jnz\", [\"i\", \"\"]],\n [\"jo\", [\"i\", \"\"]],\n [\"jp\", [\"i\", \"\"]],\n [\"jpe\", [\"i\", \"\"]],\n [\"jpo\", [\"i\", \"\"]],\n [\"jrcxz\", [\"i\", \"\"]],\n [\"js\", [\"i\", \"\"]],\n [\"jz\", [\"i\", \"\"]],\n [\"kadd\", [\"\", \"*=6+7\"]],\n [\"kaddb\", [\"\", \"*=6\"]],\n [\"kaddd\", [\"\", \"*=7\"]],\n [\"kaddq\", [\"\", \"*=7\"]],\n [\"kaddw\", [\"\", \"*=6\"]],\n [\"kand\", [\"\", \"*=6+7+11\"]],\n [\"kandb\", [\"\", \"*=6\"]],\n [\"kandd\", [\"\", \"*=7\"]],\n [\"kandn\", [\"\", \"*=6+7+11\"]],\n [\"kandnb\", [\"\", \"*=6\"]],\n [\"kandnd\", [\"\", \"*=7\"]],\n [\"kandnq\", [\"\", \"*=7\"]],\n [\"kandnw\", [\"\", \"*=11\"]],\n [\"kandq\", [\"\", \"*=7\"]],\n [\"kandw\", [\"\", \"*=11\"]],\n [\"kmov\", [\"\", \"*=6+7+11\"]],\n [\"kmovb\", [\"\", \"*=6\"]],\n [\"kmovd\", [\"\", \"*=7\"]],\n [\"kmovq\", [\"\", \"*=7\"]],\n [\"kmovw\", [\"\", \"*=6+11\"]],\n [\"knot\", [\"\", \"*=6+7+11\"]],\n [\"knotb\", [\"\", \"*=6\"]],\n [\"knotd\", [\"\", \"*=7\"]],\n [\"knotq\", [\"\", \"*=7\"]],\n [\"knotw\", [\"\", \"*=11\"]],\n [\"kor\", [\"\", \"*=6+7+11\"]],\n [\"korb\", [\"\", \"*=6\"]],\n [\"kord\", [\"\", \"*=7\"]],\n [\"korq\", [\"\", \"*=7\"]],\n [\"kortest\", [\"\", \"*=6+7+11\"]],\n [\"kortestb\", [\"\", \"*=6\"]],\n [\"kortestd\", [\"\", \"*=7\"]],\n [\"kortestq\", [\"\", \"*=7\"]],\n [\"kortestw\", [\"\", \"*=11\"]],\n [\"korw\", [\"\", \"*=11\"]],\n [\"kshiftl\", [\"\", \"*=6+7+11\"]],\n [\"kshiftlb\", [\"\", \"*=6\"]],\n [\"kshiftld\", [\"\", \"*=7\"]],\n [\"kshiftlq\", [\"\", \"*=7\"]],\n [\"kshiftlw\", [\"\", \"*=11\"]],\n [\"kshiftr\", [\"\", \"*=6+7+11\"]],\n [\"kshiftrb\", [\"\", \"*=6\"]],\n [\"kshiftrd\", [\"\", \"*=7\"]],\n [\"kshiftrq\", [\"\", \"*=7\"]],\n [\"kshiftrw\", [\"\", \"*=11\"]],\n [\"kshl\", [\"\", \"*=6+7+11\"]],\n [\"kshlb\", [\"\", \"*=6\"]],\n [\"kshld\", [\"\", \"*=7\"]],\n [\"kshlq\", [\"\", \"*=7\"]],\n [\"kshlw\", [\"\", \"*=11\"]],\n [\"kshr\", [\"\", \"*=6+7+11\"]],\n [\"kshrb\", [\"\", \"*=6\"]],\n [\"kshrd\", [\"\", \"*=7\"]],\n [\"kshrq\", [\"\", \"*=7\"]],\n [\"kshrw\", [\"\", \"*=11\"]],\n [\"ktest\", [\"\", \"*=6+7\"]],\n [\"ktestb\", [\"\", \"*=6\"]],\n [\"ktestd\", [\"\", \"*=7\"]],\n [\"ktestq\", [\"\", \"*=7\"]],\n [\"ktestw\", [\"\", \"*=6\"]],\n [\"kunpck\", [\"\", \"*=7+11\"]],\n [\"kunpckbw\", [\"\", \"*=11\"]],\n [\"kunpckd\", [\"\", \"*=7\"]],\n [\"kunpckdq\", [\"\", \"*=7\"]],\n [\"kunpckq\", [\"\", \"*=7\"]],\n [\"kunpckw\", [\"\", \"*=11\"]],\n [\"kunpckwd\", [\"\", \"*=7\"]],\n [\"kxnor\", [\"\", \"*=6+7+11\"]],\n [\"kxnorb\", [\"\", \"*=6\"]],\n [\"kxnord\", [\"\", \"*=7\"]],\n [\"kxnorq\", [\"\", \"*=7\"]],\n [\"kxnorw\", [\"\", \"*=11\"]],\n [\"kxor\", [\"\", \"*=6+7+11\"]],\n [\"kxorb\", [\"\", \"*=6\"]],\n [\"kxord\", [\"\", \"*=7\"]],\n [\"kxorq\", [\"\", \"*=7\"]],\n [\"kxorw\", [\"\", \"*=11\"]],\n [\"lahf\", [\"_\", \"\"]],\n [\"lar\", [\"\", \"*=18\"]],\n [\"lddqu\", [\"x,m\", \"\"]],\n [\"ldmxcsr\", [\"m\", \"\"]],\n [\"lds\", [\"\", \"*=0\"]],\n [\"ldtilecfg\", [\"\", \"*=48\"]],\n [\"lea\", [\"g,i|g,m\", \"\"]],\n [\"leave\", [\"_\", \"\"]],\n [\"leaved\", [\"_\", \"\"]],\n [\"leaveq\", [\"_\", \"\"]],\n [\"leavew\", [\"_\", \"\"]],\n [\"les\", [\"\", \"*=0\"]],\n [\"lfence\", [\"_\", \"\"]],\n [\"lfs\", [\"\", \"*=18\"]],\n [\"lgdt\", [\"\", \"*=25\"]],\n [\"lgs\", [\"\", \"*=18\"]],\n [\"lidt\", [\"\", \"*=25\"]],\n [\"lkgs\", [\"\", \"*=49\"]],\n [\"lldt\", [\"\", \"*=25\"]],\n [\"llwpcb\", [\"\", \"*=50\"]],\n [\"lmsw\", [\"\", \"*=25\"]],\n [\"loadall\", [\"\", \"*=31\"]],\n [\"loadall286\", [\"\", \"*=31\"]],\n [\"loadiwkey\", [\"\", \"*=9\"]],\n [\"lodsb\", [\"_\", \"\"]],\n [\"lodsd\", [\"_\", \"\"]],\n [\"lodsq\", [\"_\", \"\"]],\n [\"lodsw\", [\"_\", \"\"]],\n [\"loop\", [\"i|i,g\", \"\"]],\n [\"loopd\", [\"i\", \"\"]],\n [\"loope\", [\"i|i,g\", \"\"]],\n [\"looped\", [\"i\", \"\"]],\n [\"loopeq\", [\"i\", \"\"]],\n [\"loopew\", [\"\", \"*=0\"]],\n [\"loopne\", [\"i|i,g\", \"\"]],\n [\"loopned\", [\"i\", \"\"]],\n [\"loopneq\", [\"i\", \"\"]],\n [\"loopnew\", [\"\", \"*=0\"]],\n [\"loopnz\", [\"i|i,g\", \"\"]],\n [\"loopnzd\", [\"i\", \"\"]],\n [\"loopnzq\", [\"i\", \"\"]],\n [\"loopnzw\", [\"\", \"*=0\"]],\n [\"loopq\", [\"i\", \"\"]],\n [\"loopw\", [\"\", \"*=0\"]],\n [\"loopz\", [\"i|i,g\", \"\"]],\n [\"loopzd\", [\"i\", \"\"]],\n [\"loopzq\", [\"i\", \"\"]],\n [\"loopzw\", [\"\", \"*=0\"]],\n [\"lsl\", [\"\", \"*=18\"]],\n [\"lss\", [\"\", \"*=18\"]],\n [\"ltr\", [\"\", \"*=25\"]],\n [\"lwpins\", [\"\", \"*=50\"]],\n [\"lwpval\", [\"\", \"*=50\"]],\n [\"lzcnt\", [\"\", \"*=51+52\"]],\n [\"maskmovdqu\", [\"x,x\", \"\"]],\n [\"maskmovq\", [\"\", \"*=34\"]],\n [\"maxpd\", [\"x,xm\", \"\"]],\n [\"maxps\", [\"x,xm\", \"\"]],\n [\"maxsd\", [\"x,xm\", \"\"]],\n [\"maxss\", [\"x,xm\", \"\"]],\n [\"mfence\", [\"_\", \"\"]],\n [\"minpd\", [\"x,xm\", \"\"]],\n [\"minps\", [\"x,xm\", \"\"]],\n [\"minsd\", [\"x,xm\", \"\"]],\n [\"minss\", [\"x,xm\", \"\"]],\n [\"monitor\", [\"\", \"*=53\"]],\n [\"monitord\", [\"\", \"*=53\"]],\n [\"monitorq\", [\"\", \"*=53\"]],\n [\"monitorw\", [\"\", \"*=53\"]],\n [\"monitorx\", [\"\", \"*=54\"]],\n [\"montmul\", [\"\", \"*=18\"]],\n [\"mov\", [\"g,i|g,m|m,g|g,gm|gm,g|gm,i\", \"-,-=6+7+11|-,g=6+7+11+14+18+25|-,m=18|g,-=6+7+11+14+18+25|m,-=6+7+18\"]],\n [\"movabs\", [\"g,i|g,m|m,g\", \"\"]],\n [\"movapd\", [\"x,xm|xm,x\", \"\"]],\n [\"movaps\", [\"x,xm|xm,x\", \"\"]],\n [\"movb\", [\"\", \"*=6\"]],\n [\"movbe\", [\"\", \"*=55+56\"]],\n [\"movd\", [\"m,x|x,m|gm,x|x,gm\", \"-,-=7|-,g=7|g,-=7|m,-=7|-,gm=34|gm,-=34\"]],\n [\"movddup\", [\"x,xm\", \"\"]],\n [\"movdir64b\", [\"\", \"*=57+58\"]],\n [\"movdiri\", [\"\", \"*=59+60\"]],\n [\"movdq2q\", [\"\", \"\"]],\n [\"movdqa\", [\"x,xm|xm,x\", \"\"]],\n [\"movdqu\", [\"x,xm|xm,x\", \"\"]],\n [\"movhlps\", [\"x,x\", \"\"]],\n [\"movhpd\", [\"m,x|x,m\", \"\"]],\n [\"movhps\", [\"m,x|x,m\", \"\"]],\n [\"movlhps\", [\"x,x\", \"\"]],\n [\"movlpd\", [\"m,x|x,m\", \"\"]],\n [\"movlps\", [\"m,x|x,m\", \"\"]],\n [\"movmskpd\", [\"g,x\", \"\"]],\n [\"movmskps\", [\"g,x\", \"\"]],\n [\"movntdq\", [\"m,x\", \"\"]],\n [\"movntdqa\", [\"\", \"*=16\"]],\n [\"movnti\", [\"m,g\", \"\"]],\n [\"movntpd\", [\"m,x\", \"\"]],\n [\"movntps\", [\"m,x\", \"\"]],\n [\"movntq\", [\"\", \"*=34\"]],\n [\"movntsd\", [\"\", \"*=40\"]],\n [\"movntss\", [\"\", \"*=40\"]],\n [\"movq\", [\"m,x|x,m|x,x|gm,x|x,gm\", \"-,-=7+34|-,g=7|g,-=7|m,-=7|-,gm=34|gm,-=34\"]],\n [\"movq2dq\", [\"\", \"\"]],\n [\"movrs\", [\"\", \"*=3+61\"]],\n [\"movsb\", [\"_\", \"\"]],\n [\"movsd\", [\"_|x,xm|xm,x\", \"\"]],\n [\"movshdup\", [\"x,xm\", \"\"]],\n [\"movsldup\", [\"x,xm\", \"\"]],\n [\"movsq\", [\"_\", \"\"]],\n [\"movss\", [\"x,xm|xm,x\", \"\"]],\n [\"movsw\", [\"_\", \"\"]],\n [\"movsx\", [\"g,g|g,gm\", \"\"]],\n [\"movsxb\", [\"g,g|g,gm\", \"\"]],\n [\"movsxd\", [\"g,g|g,gm\", \"\"]],\n [\"movsxw\", [\"g,g|g,gm\", \"\"]],\n [\"movupd\", [\"x,xm|xm,x\", \"\"]],\n [\"movups\", [\"x,xm|xm,x\", \"\"]],\n [\"movw\", [\"\", \"*=6+11\"]],\n [\"movzx\", [\"g,gm\", \"\"]],\n [\"movzxb\", [\"g,gm\", \"\"]],\n [\"movzxd\", [\"g,gm\", \"\"]],\n [\"movzxw\", [\"g,gm\", \"\"]],\n [\"mpsadbw\", [\"\", \"*=16\"]],\n [\"mul\", [\"gm|g,i|g,gm|g,gm,i\", \"g,g,gm=3+19\"]],\n [\"mulpd\", [\"x,xm\", \"\"]],\n [\"mulps\", [\"x,xm\", \"\"]],\n [\"mulsd\", [\"x,xm\", \"\"]],\n [\"mulss\", [\"x,xm\", \"\"]],\n [\"mulx\", [\"\", \"*=19\"]],\n [\"mwait\", [\"\", \"*=53\"]],\n [\"mwaitx\", [\"\", \"*=54\"]],\n [\"neg\", [\"gm\", \"g,gm=3\"]],\n [\"nop\", [\"_|gm\", \"i,g,gm=31\"]],\n [\"nop2\", [\"_\", \"\"]],\n [\"not\", [\"gm\", \"-=6+7+11|-,-=6+7+11|g,gm=3\"]],\n [\"notb\", [\"\", \"*=6\"]],\n [\"notd\", [\"\", \"*=7\"]],\n [\"notq\", [\"\", \"*=7\"]],\n [\"notw\", [\"\", \"*=11\"]],\n [\"or\", [\"g,i|g,gm|gm,g|gm,i\", \"-,-=6+7+11|-,-,-=6+7+11|g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"orb\", [\"\", \"*=6\"]],\n [\"ord\", [\"\", \"*=7\"]],\n [\"orpd\", [\"x,xm\", \"\"]],\n [\"orps\", [\"x,xm\", \"\"]],\n [\"orq\", [\"\", \"*=7\"]],\n [\"ortest\", [\"\", \"*=6+7+11\"]],\n [\"ortestb\", [\"\", \"*=6\"]],\n [\"ortestd\", [\"\", \"*=7\"]],\n [\"ortestq\", [\"\", \"*=7\"]],\n [\"ortestw\", [\"\", \"*=11\"]],\n [\"orw\", [\"\", \"*=11\"]],\n [\"out\", [\"\", \"*=18\"]],\n [\"outsb\", [\"\", \"*=18\"]],\n [\"outsd\", [\"\", \"*=18\"]],\n [\"outsw\", [\"\", \"*=18\"]],\n [\"pabsb\", [\"\", \"*=62+63\"]],\n [\"pabsd\", [\"\", \"*=62+63\"]],\n [\"pabsw\", [\"\", \"*=62+63\"]],\n [\"packssdw\", [\"x,xm\", \"-,-=34\"]],\n [\"packsswb\", [\"x,xm\", \"-,-=34\"]],\n [\"packusdw\", [\"\", \"*=16\"]],\n [\"packuswb\", [\"x,xm\", \"-,-=34\"]],\n [\"paddb\", [\"x,xm\", \"-,-=34\"]],\n [\"paddd\", [\"x,xm\", \"-,-=34\"]],\n [\"paddq\", [\"x,xm\", \"-,-=34\"]],\n [\"paddsb\", [\"x,xm\", \"-,-=34\"]],\n [\"paddsiw\", [\"\", \"*=34\"]],\n [\"paddsw\", [\"x,xm\", \"-,-=34\"]],\n [\"paddusb\", [\"x,xm\", \"-,-=34\"]],\n [\"paddusw\", [\"x,xm\", \"-,-=34\"]],\n [\"paddw\", [\"x,xm\", \"-,-=34\"]],\n [\"palignr\", [\"\", \"*=62+63\"]],\n [\"pand\", [\"x,xm\", \"-,-=34\"]],\n [\"pandn\", [\"x,xm\", \"-,-=34\"]],\n [\"pause\", [\"_\", \"\"]],\n [\"paveb\", [\"\", \"*=34\"]],\n [\"pavgb\", [\"x,xm\", \"-,-=34\"]],\n [\"pavgusb\", [\"\", \"*=41\"]],\n [\"pavgw\", [\"x,xm\", \"-,-=34\"]],\n [\"pblendvb\", [\"\", \"*=16\"]],\n [\"pblendw\", [\"\", \"*=16\"]],\n [\"pbndkb\", [\"\", \"*=64\"]],\n [\"pclmulhqhqdq\", [\"\", \"*=8\"]],\n [\"pclmulhqlqdq\", [\"\", \"*=8\"]],\n [\"pclmullqhqdq\", [\"\", \"*=8\"]],\n [\"pclmullqlqdq\", [\"\", \"*=8\"]],\n [\"pclmulqdq\", [\"\", \"*=8\"]],\n [\"pcmpeqb\", [\"x,xm\", \"-,-=34\"]],\n [\"pcmpeqd\", [\"x,xm\", \"-,-=34\"]],\n [\"pcmpeqq\", [\"\", \"*=16\"]],\n [\"pcmpeqw\", [\"x,xm\", \"-,-=34\"]],\n [\"pcmpestri\", [\"\", \"*=32\"]],\n [\"pcmpestrm\", [\"\", \"*=32\"]],\n [\"pcmpgtb\", [\"x,xm\", \"-,-=34\"]],\n [\"pcmpgtd\", [\"x,xm\", \"-,-=34\"]],\n [\"pcmpgtq\", [\"\", \"*=32\"]],\n [\"pcmpgtw\", [\"x,xm\", \"-,-=34\"]],\n [\"pcmpistri\", [\"\", \"*=32\"]],\n [\"pcmpistrm\", [\"\", \"*=32\"]],\n [\"pcommit\", [\"\", \"*=14\"]],\n [\"pconfig\", [\"\", \"*=65\"]],\n [\"pdep\", [\"\", \"*=19\"]],\n [\"pdistib\", [\"\", \"*=34\"]],\n [\"pext\", [\"\", \"*=19\"]],\n [\"pextrb\", [\"\", \"*=16\"]],\n [\"pextrd\", [\"\", \"*=16\"]],\n [\"pextrq\", [\"\", \"*=16\"]],\n [\"pextrw\", [\"g,x,i\", \"g,-,i=34|m,x,i=16\"]],\n [\"pf2id\", [\"\", \"*=41\"]],\n [\"pf2iw\", [\"\", \"*=41\"]],\n [\"pfacc\", [\"\", \"*=41\"]],\n [\"pfadd\", [\"\", \"*=41\"]],\n [\"pfcmpeq\", [\"\", \"*=41\"]],\n [\"pfcmpge\", [\"\", \"*=41\"]],\n [\"pfcmpgt\", [\"\", \"*=41\"]],\n [\"pfmax\", [\"\", \"*=41\"]],\n [\"pfmin\", [\"\", \"*=41\"]],\n [\"pfmul\", [\"\", \"*=41\"]],\n [\"pfnacc\", [\"\", \"*=41\"]],\n [\"pfpnacc\", [\"\", \"*=41\"]],\n [\"pfrcp\", [\"\", \"*=41\"]],\n [\"pfrcpit1\", [\"\", \"*=41\"]],\n [\"pfrcpit2\", [\"\", \"*=41\"]],\n [\"pfrcpv\", [\"\", \"*=41\"]],\n [\"pfrsqit1\", [\"\", \"*=41\"]],\n [\"pfrsqrt\", [\"\", \"*=41\"]],\n [\"pfrsqrtv\", [\"\", \"*=41\"]],\n [\"pfsub\", [\"\", \"*=41\"]],\n [\"pfsubr\", [\"\", \"*=41\"]],\n [\"phaddd\", [\"\", \"*=62+63\"]],\n [\"phaddsw\", [\"\", \"*=62+63\"]],\n [\"phaddw\", [\"\", \"*=62+63\"]],\n [\"phminposuw\", [\"\", \"*=16\"]],\n [\"phsubd\", [\"\", \"*=62+63\"]],\n [\"phsubsw\", [\"\", \"*=62+63\"]],\n [\"phsubw\", [\"\", \"*=62+63\"]],\n [\"pi2fd\", [\"\", \"*=41\"]],\n [\"pi2fw\", [\"\", \"*=41\"]],\n [\"pinsrb\", [\"\", \"*=16\"]],\n [\"pinsrd\", [\"\", \"*=16\"]],\n [\"pinsrq\", [\"\", \"*=16\"]],\n [\"pinsrw\", [\"x,g,i|x,m,i\", \"-,g,i=34|-,m,i=34|-,gm,i=34\"]],\n [\"pmachriw\", [\"\", \"*=34\"]],\n [\"pmaddubsw\", [\"\", \"*=62+63\"]],\n [\"pmaddwd\", [\"x,xm\", \"-,-=34\"]],\n [\"pmagw\", [\"\", \"*=34\"]],\n [\"pmaxsb\", [\"\", \"*=16\"]],\n [\"pmaxsd\", [\"\", \"*=16\"]],\n [\"pmaxsw\", [\"x,xm\", \"-,-=34\"]],\n [\"pmaxub\", [\"x,xm\", \"-,-=34\"]],\n [\"pmaxud\", [\"\", \"*=16\"]],\n [\"pmaxuw\", [\"\", \"*=16\"]],\n [\"pminsb\", [\"\", \"*=16\"]],\n [\"pminsd\", [\"\", \"*=16\"]],\n [\"pminsw\", [\"x,xm\", \"-,-=34\"]],\n [\"pminub\", [\"x,xm\", \"-,-=34\"]],\n [\"pminud\", [\"\", \"*=16\"]],\n [\"pminuw\", [\"\", \"*=16\"]],\n [\"pmovmskb\", [\"g,x\", \"g,-=34\"]],\n [\"pmovsxbd\", [\"\", \"*=16\"]],\n [\"pmovsxbq\", [\"\", \"*=16\"]],\n [\"pmovsxbw\", [\"\", \"*=16\"]],\n [\"pmovsxdq\", [\"\", \"*=16\"]],\n [\"pmovsxwd\", [\"\", \"*=16\"]],\n [\"pmovsxwq\", [\"\", \"*=16\"]],\n [\"pmovzxbd\", [\"\", \"*=16\"]],\n [\"pmovzxbq\", [\"\", \"*=16\"]],\n [\"pmovzxbw\", [\"\", \"*=16\"]],\n [\"pmovzxdq\", [\"\", \"*=16\"]],\n [\"pmovzxwd\", [\"\", \"*=16\"]],\n [\"pmovzxwq\", [\"\", \"*=16\"]],\n [\"pmuldq\", [\"\", \"*=16\"]],\n [\"pmulhriw\", [\"\", \"*=34\"]],\n [\"pmulhrsw\", [\"\", \"*=62+63\"]],\n [\"pmulhrwa\", [\"\", \"*=41\"]],\n [\"pmulhrwc\", [\"\", \"*=34\"]],\n [\"pmulhuw\", [\"x,xm\", \"-,-=34\"]],\n [\"pmulhw\", [\"x,xm\", \"-,-=34\"]],\n [\"pmulld\", [\"\", \"*=16\"]],\n [\"pmullw\", [\"x,xm\", \"-,-=34\"]],\n [\"pmuludq\", [\"x,xm\", \"\"]],\n [\"pmvgezb\", [\"\", \"*=34\"]],\n [\"pmvlzb\", [\"\", \"*=34\"]],\n [\"pmvnzb\", [\"\", \"*=34\"]],\n [\"pmvzb\", [\"\", \"*=34\"]],\n [\"pop\", [\"g|gm\", \"-=0+18+31+47|g,g=47\"]],\n [\"pop2\", [\"\", \"*=47\"]],\n [\"pop2p\", [\"\", \"*=47\"]],\n [\"popa\", [\"\", \"*=0\"]],\n [\"popad\", [\"\", \"*=0\"]],\n [\"popaw\", [\"\", \"*=0\"]],\n [\"popcnt\", [\"\", \"*=3+66\"]],\n [\"popf\", [\"_\", \"\"]],\n [\"popfd\", [\"_\", \"\"]],\n [\"popfq\", [\"_\", \"\"]],\n [\"popfw\", [\"_\", \"\"]],\n [\"popp\", [\"\", \"*=47\"]],\n [\"por\", [\"x,xm\", \"-,-=34\"]],\n [\"prefetch\", [\"\", \"*=41\"]],\n [\"prefetchit0\", [\"\", \"*=67\"]],\n [\"prefetchit1\", [\"\", \"*=67\"]],\n [\"prefetchnta\", [\"m\", \"\"]],\n [\"prefetchrst2\", [\"\", \"*=68\"]],\n [\"prefetcht0\", [\"m\", \"\"]],\n [\"prefetcht1\", [\"m\", \"\"]],\n [\"prefetcht2\", [\"m\", \"\"]],\n [\"prefetchw\", [\"\", \"*=41\"]],\n [\"prefetchwt1\", [\"\", \"*=69\"]],\n [\"psadbw\", [\"x,xm\", \"-,-=34\"]],\n [\"pshufb\", [\"\", \"*=62+63\"]],\n [\"pshufd\", [\"x,m,i|x,x,i\", \"\"]],\n [\"pshufhw\", [\"x,m,i|x,x,i\", \"\"]],\n [\"pshuflw\", [\"x,m,i|x,x,i\", \"\"]],\n [\"pshufw\", [\"\", \"*=34\"]],\n [\"psignb\", [\"\", \"*=62+63\"]],\n [\"psignd\", [\"\", \"*=62+63\"]],\n [\"psignw\", [\"\", \"*=62+63\"]],\n [\"pslld\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"pslldq\", [\"x,i\", \"\"]],\n [\"psllq\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psllw\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psrad\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psraw\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psrld\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psrldq\", [\"x,i\", \"\"]],\n [\"psrlq\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psrlw\", [\"x,i|x,xm\", \"-,-=34|-,i=34\"]],\n [\"psubb\", [\"x,xm\", \"-,-=34\"]],\n [\"psubd\", [\"x,xm\", \"-,-=34\"]],\n [\"psubq\", [\"x,xm\", \"\"]],\n [\"psubsb\", [\"x,xm\", \"-,-=34\"]],\n [\"psubsiw\", [\"\", \"*=34\"]],\n [\"psubsw\", [\"x,xm\", \"-,-=34\"]],\n [\"psubusb\", [\"x,xm\", \"-,-=34\"]],\n [\"psubusw\", [\"x,xm\", \"-,-=34\"]],\n [\"psubw\", [\"x,xm\", \"-,-=34\"]],\n [\"pswapd\", [\"\", \"*=41\"]],\n [\"ptest\", [\"\", \"*=16\"]],\n [\"ptwrite\", [\"\", \"*=70\"]],\n [\"punpckhbw\", [\"x,xm\", \"-,-=34\"]],\n [\"punpckhdq\", [\"x,xm\", \"-,-=34\"]],\n [\"punpckhqdq\", [\"x,xm\", \"\"]],\n [\"punpckhwd\", [\"x,xm\", \"-,-=34\"]],\n [\"punpcklbw\", [\"x,xm\", \"-,-=34\"]],\n [\"punpckldq\", [\"x,xm\", \"-,-=34\"]],\n [\"punpcklqdq\", [\"x,xm\", \"\"]],\n [\"punpcklwd\", [\"x,xm\", \"-,-=34\"]],\n [\"push\", [\"g|i|gm\", \"-=0+18+47|g,g=47\"]],\n [\"push2\", [\"\", \"*=47\"]],\n [\"push2p\", [\"\", \"*=47\"]],\n [\"pusha\", [\"\", \"*=0\"]],\n [\"pushad\", [\"\", \"*=0\"]],\n [\"pushaw\", [\"\", \"*=0\"]],\n [\"pushf\", [\"_\", \"\"]],\n [\"pushfd\", [\"_\", \"\"]],\n [\"pushfq\", [\"_\", \"\"]],\n [\"pushfw\", [\"_\", \"\"]],\n [\"pushp\", [\"\", \"*=47\"]],\n [\"pvalidate\", [\"\", \"*=23\"]],\n [\"pxor\", [\"x,xm\", \"-,-=34\"]],\n [\"rcl\", [\"gm,g|gm,i\", \"g,gm,g=3|g,gm,i=3\"]],\n [\"rcpps\", [\"x,xm\", \"\"]],\n [\"rcpss\", [\"x,xm\", \"\"]],\n [\"rcr\", [\"gm,g|gm,i\", \"g,gm,g=3|g,gm,i=3\"]],\n [\"rdfsbase\", [\"\", \"*=18\"]],\n [\"rdgsbase\", [\"\", \"*=18\"]],\n [\"rdm\", [\"\", \"*=14\"]],\n [\"rdmsr\", [\"\", \"*=25+71\"]],\n [\"rdmsrlist\", [\"\", \"*=72\"]],\n [\"rdpid\", [\"\", \"*=73\"]],\n [\"rdpkru\", [\"\", \"*=74\"]],\n [\"rdpmc\", [\"\", \"*=18\"]],\n [\"rdrand\", [\"\", \"*=75\"]],\n [\"rdseed\", [\"\", \"*=76\"]],\n [\"rdshr\", [\"\", \"*=77\"]],\n [\"rdsspd\", [\"\", \"*=24\"]],\n [\"rdsspq\", [\"\", \"*=24\"]],\n [\"rdtsc\", [\"_\", \"\"]],\n [\"rdtscp\", [\"_\", \"\"]],\n [\"resb\", [\"\", \"*=35\"]],\n [\"resd\", [\"\", \"*=35\"]],\n [\"reso\", [\"\", \"*=35\"]],\n [\"resq\", [\"\", \"*=35\"]],\n [\"rest\", [\"\", \"*=35\"]],\n [\"resw\", [\"\", \"*=35\"]],\n [\"resy\", [\"\", \"*=35\"]],\n [\"resz\", [\"\", \"*=35\"]],\n [\"ret\", [\"_|i\", \"\"]],\n [\"retd\", [\"\", \"*=0\"]],\n [\"retf\", [\"_|i\", \"\"]],\n [\"retfd\", [\"_|i\", \"\"]],\n [\"retfq\", [\"_|i\", \"\"]],\n [\"retfw\", [\"_|i\", \"\"]],\n [\"retn\", [\"_|i\", \"\"]],\n [\"retnd\", [\"\", \"*=0\"]],\n [\"retnq\", [\"_|i\", \"\"]],\n [\"retnw\", [\"_|i\", \"\"]],\n [\"retq\", [\"_|i\", \"\"]],\n [\"retw\", [\"_|i\", \"\"]],\n [\"rmpadjust\", [\"\", \"*=23\"]],\n [\"rol\", [\"gm,g|gm,i\", \"g,i=19|g,gm,g=3|g,gm,i=3+19\"]],\n [\"rolx\", [\"\", \"*=19\"]],\n [\"ror\", [\"gm,g|gm,i\", \"g,gm,g=3|g,gm,i=3+19\"]],\n [\"rorx\", [\"\", \"*=19\"]],\n [\"roundpd\", [\"\", \"*=16\"]],\n [\"roundps\", [\"\", \"*=16\"]],\n [\"roundsd\", [\"\", \"*=16\"]],\n [\"roundss\", [\"\", \"*=16\"]],\n [\"rsdc\", [\"\", \"*=77\"]],\n [\"rsldt\", [\"\", \"*=77\"]],\n [\"rsm\", [\"\", \"*=77\"]],\n [\"rsqrtps\", [\"x,xm\", \"\"]],\n [\"rsqrtss\", [\"x,xm\", \"\"]],\n [\"rstorssp\", [\"\", \"*=24\"]],\n [\"rsts\", [\"\", \"*=77\"]],\n [\"sahf\", [\"_\", \"\"]],\n [\"sal\", [\"gm,g|gm,i\", \"g,g=19|g,gm,g=3+19|g,gm,i=3\"]],\n [\"salc\", [\"\", \"*=31\"]],\n [\"salx\", [\"\", \"*=19\"]],\n [\"sar\", [\"gm,g|gm,i\", \"g,g=19|g,gm,g=3+19|g,gm,i=3\"]],\n [\"sarx\", [\"\", \"*=19\"]],\n [\"saveprevssp\", [\"\", \"*=24\"]],\n [\"sbb\", [\"g,i|g,gm|gm,g|gm,i\", \"g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"scasb\", [\"_\", \"\"]],\n [\"scasd\", [\"_\", \"\"]],\n [\"scasq\", [\"_\", \"\"]],\n [\"scasw\", [\"_\", \"\"]],\n [\"senduipi\", [\"\", \"*=26\"]],\n [\"serialize\", [\"\", \"*=78\"]],\n [\"seta\", [\"gm\", \"g=3\"]],\n [\"setae\", [\"gm\", \"g=3\"]],\n [\"setaezu\", [\"\", \"*=3\"]],\n [\"setazu\", [\"\", \"*=3\"]],\n [\"setb\", [\"gm\", \"g=3\"]],\n [\"setbe\", [\"gm\", \"g=3\"]],\n [\"setbezu\", [\"\", \"*=3\"]],\n [\"setbzu\", [\"\", \"*=3\"]],\n [\"setc\", [\"gm\", \"g=3\"]],\n [\"setczu\", [\"\", \"*=3\"]],\n [\"sete\", [\"gm\", \"g=3\"]],\n [\"setezu\", [\"\", \"*=3\"]],\n [\"setg\", [\"gm\", \"g=3\"]],\n [\"setge\", [\"gm\", \"g=3\"]],\n [\"setgezu\", [\"\", \"*=3\"]],\n [\"setgzu\", [\"\", \"*=3\"]],\n [\"setl\", [\"gm\", \"g=3\"]],\n [\"setle\", [\"gm\", \"g=3\"]],\n [\"setlezu\", [\"\", \"*=3\"]],\n [\"setlzu\", [\"\", \"*=3\"]],\n [\"setna\", [\"gm\", \"g=3\"]],\n [\"setnae\", [\"gm\", \"g=3\"]],\n [\"setnaezu\", [\"\", \"*=3\"]],\n [\"setnazu\", [\"\", \"*=3\"]],\n [\"setnb\", [\"gm\", \"g=3\"]],\n [\"setnbe\", [\"gm\", \"g=3\"]],\n [\"setnbezu\", [\"\", \"*=3\"]],\n [\"setnbzu\", [\"\", \"*=3\"]],\n [\"setnc\", [\"gm\", \"g=3\"]],\n [\"setnczu\", [\"\", \"*=3\"]],\n [\"setne\", [\"gm\", \"g=3\"]],\n [\"setnezu\", [\"\", \"*=3\"]],\n [\"setng\", [\"gm\", \"g=3\"]],\n [\"setnge\", [\"gm\", \"g=3\"]],\n [\"setngezu\", [\"\", \"*=3\"]],\n [\"setngzu\", [\"\", \"*=3\"]],\n [\"setnl\", [\"gm\", \"g=3\"]],\n [\"setnle\", [\"gm\", \"g=3\"]],\n [\"setnlezu\", [\"\", \"*=3\"]],\n [\"setnlzu\", [\"\", \"*=3\"]],\n [\"setno\", [\"gm\", \"g=3\"]],\n [\"setnozu\", [\"\", \"*=3\"]],\n [\"setnp\", [\"gm\", \"g=3\"]],\n [\"setnpzu\", [\"\", \"*=3\"]],\n [\"setns\", [\"gm\", \"g=3\"]],\n [\"setnszu\", [\"\", \"*=3\"]],\n [\"setnz\", [\"gm\", \"g=3\"]],\n [\"setnzzu\", [\"\", \"*=3\"]],\n [\"seto\", [\"gm\", \"g=3\"]],\n [\"setozu\", [\"\", \"*=3\"]],\n [\"setp\", [\"gm\", \"g=3\"]],\n [\"setpe\", [\"gm\", \"g=3\"]],\n [\"setpezu\", [\"\", \"*=3\"]],\n [\"setpo\", [\"gm\", \"g=3\"]],\n [\"setpozu\", [\"\", \"*=3\"]],\n [\"setpzu\", [\"\", \"*=3\"]],\n [\"sets\", [\"gm\", \"g=3\"]],\n [\"setssbsy\", [\"\", \"*=24\"]],\n [\"setszu\", [\"\", \"*=3\"]],\n [\"setz\", [\"gm\", \"g=3\"]],\n [\"setzzu\", [\"\", \"*=3\"]],\n [\"sfence\", [\"_\", \"\"]],\n [\"sgdt\", [\"\", \"*=18\"]],\n [\"sha1msg1\", [\"\", \"*=79\"]],\n [\"sha1msg2\", [\"\", \"*=79\"]],\n [\"sha1nexte\", [\"\", \"*=79\"]],\n [\"sha1rnds4\", [\"\", \"*=79\"]],\n [\"sha256msg1\", [\"\", \"*=79\"]],\n [\"sha256msg2\", [\"\", \"*=79\"]],\n [\"sha256rnds2\", [\"\", \"*=79\"]],\n [\"shiftl\", [\"\", \"*=6+7+11\"]],\n [\"shiftlb\", [\"\", \"*=6\"]],\n [\"shiftld\", [\"\", \"*=7\"]],\n [\"shiftlq\", [\"\", \"*=7\"]],\n [\"shiftlw\", [\"\", \"*=11\"]],\n [\"shiftr\", [\"\", \"*=6+7+11\"]],\n [\"shiftrb\", [\"\", \"*=6\"]],\n [\"shiftrd\", [\"\", \"*=7\"]],\n [\"shiftrq\", [\"\", \"*=7\"]],\n [\"shiftrw\", [\"\", \"*=11\"]],\n [\"shl\", [\"gm,g|gm,i\", \"g,g=19|-,-,i=6+7+11|g,gm,g=3+19|g,gm,i=3\"]],\n [\"shlb\", [\"\", \"*=6\"]],\n [\"shld\", [\"gm,g,g|gm,g,i\", \"-,-,i=7|g,gm,g,g=3|g,gm,g,i=3\"]],\n [\"shlq\", [\"\", \"*=7\"]],\n [\"shlw\", [\"\", \"*=11\"]],\n [\"shlx\", [\"\", \"*=19\"]],\n [\"shr\", [\"gm,g|gm,i\", \"g,g=19|-,-,i=6+7+11|g,gm,g=3+19|g,gm,i=3\"]],\n [\"shrb\", [\"\", \"*=6\"]],\n [\"shrd\", [\"gm,g,g|gm,g,i\", \"-,-,i=7|g,gm,g,g=3|g,gm,g,i=3\"]],\n [\"shrq\", [\"\", \"*=7\"]],\n [\"shrw\", [\"\", \"*=11\"]],\n [\"shrx\", [\"\", \"*=19\"]],\n [\"shufpd\", [\"x,xm,i\", \"\"]],\n [\"shufps\", [\"x,xm,i\", \"\"]],\n [\"sidt\", [\"\", \"*=18\"]],\n [\"skinit\", [\"_\", \"\"]],\n [\"sldt\", [\"\", \"*=18\"]],\n [\"slwpcb\", [\"\", \"*=50\"]],\n [\"smint\", [\"\", \"*=14\"]],\n [\"smintold\", [\"\", \"*=14\"]],\n [\"smsw\", [\"\", \"*=18\"]],\n [\"sqrtpd\", [\"x,xm\", \"\"]],\n [\"sqrtps\", [\"x,xm\", \"\"]],\n [\"sqrtsd\", [\"x,xm\", \"\"]],\n [\"sqrtss\", [\"x,xm\", \"\"]],\n [\"stac\", [\"\", \"*=20\"]],\n [\"stc\", [\"_\", \"\"]],\n [\"std\", [\"_\", \"\"]],\n [\"stgi\", [\"\", \"*=23\"]],\n [\"sti\", [\"\", \"*=18\"]],\n [\"stmxcsr\", [\"m\", \"\"]],\n [\"stosb\", [\"_\", \"\"]],\n [\"stosd\", [\"_\", \"\"]],\n [\"stosq\", [\"_\", \"\"]],\n [\"stosw\", [\"_\", \"\"]],\n [\"str\", [\"\", \"*=18\"]],\n [\"sttilecfg\", [\"\", \"*=48\"]],\n [\"stui\", [\"\", \"*=26\"]],\n [\"sub\", [\"g,i|g,gm|gm,g|gm,i\", \"g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"subpd\", [\"x,xm\", \"\"]],\n [\"subps\", [\"x,xm\", \"\"]],\n [\"subsd\", [\"x,xm\", \"\"]],\n [\"subss\", [\"x,xm\", \"\"]],\n [\"svdc\", [\"\", \"*=77\"]],\n [\"svldt\", [\"\", \"*=77\"]],\n [\"svts\", [\"\", \"*=77\"]],\n [\"swapgs\", [\"\", \"*=18\"]],\n [\"syscall\", [\"\", \"*=18\"]],\n [\"sysenter\", [\"\", \"*=18\"]],\n [\"sysexit\", [\"\", \"*=25\"]],\n [\"sysret\", [\"\", \"*=25\"]],\n [\"t1mskc\", [\"\", \"*=15\"]],\n [\"t2rpntlvwz0\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz0rs\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz0rst1\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz0t1\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz1\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz1rs\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz1rst1\", [\"\", \"*=80\"]],\n [\"t2rpntlvwz1t1\", [\"\", \"*=80\"]],\n [\"tcmmimfp16ps\", [\"\", \"*=80\"]],\n [\"tcmmrlfp16ps\", [\"\", \"*=80\"]],\n [\"tconjtcmmimfp16ps\", [\"\", \"*=80\"]],\n [\"tconjtfp16\", [\"\", \"*=80\"]],\n [\"tcvtrowd2ps\", [\"\", \"*=3\"]],\n [\"tcvtrowps2bf16h\", [\"\", \"*=3\"]],\n [\"tcvtrowps2bf16l\", [\"\", \"*=3\"]],\n [\"tcvtrowps2phh\", [\"\", \"*=3\"]],\n [\"tcvtrowps2phl\", [\"\", \"*=3\"]],\n [\"tdpbf16ps\", [\"\", \"*=81\"]],\n [\"tdpbf8ps\", [\"\", \"*=80\"]],\n [\"tdpbhf8ps\", [\"\", \"*=80\"]],\n [\"tdpbssd\", [\"\", \"*=82\"]],\n [\"tdpbsud\", [\"\", \"*=82\"]],\n [\"tdpbusd\", [\"\", \"*=82\"]],\n [\"tdpbuud\", [\"\", \"*=82\"]],\n [\"tdpfp16ps\", [\"\", \"*=83\"]],\n [\"tdphbf8ps\", [\"\", \"*=80\"]],\n [\"tdphf8ps\", [\"\", \"*=80\"]],\n [\"test\", [\"g,i|gm,g|gm,i\", \"-,-=6+7\"]],\n [\"testb\", [\"\", \"*=6\"]],\n [\"testd\", [\"\", \"*=7\"]],\n [\"testq\", [\"\", \"*=7\"]],\n [\"testui\", [\"\", \"*=26\"]],\n [\"testw\", [\"\", \"*=6\"]],\n [\"tileloadd\", [\"\", \"*=84\"]],\n [\"tileloaddrs\", [\"\", \"*=84\"]],\n [\"tileloaddrst1\", [\"\", \"*=84\"]],\n [\"tileloaddt1\", [\"\", \"*=84\"]],\n [\"tilemovrow\", [\"\", \"*=3\"]],\n [\"tilerelease\", [\"\", \"*=48\"]],\n [\"tilestored\", [\"\", \"*=84\"]],\n [\"tilezero\", [\"\", \"*=48\"]],\n [\"tmmultf32ps\", [\"\", \"*=80\"]],\n [\"tpause\", [\"\", \"*=85\"]],\n [\"ttcmmimfp16ps\", [\"\", \"*=80\"]],\n [\"ttcmmrlfp16ps\", [\"\", \"*=80\"]],\n [\"ttdpbf16ps\", [\"\", \"*=80\"]],\n [\"ttdpfp16ps\", [\"\", \"*=80\"]],\n [\"ttmmultf32ps\", [\"\", \"*=80\"]],\n [\"ttransposed\", [\"\", \"*=80\"]],\n [\"tzcnt\", [\"\", \"*=13+86\"]],\n [\"tzmsk\", [\"\", \"*=15\"]],\n [\"ucomisd\", [\"x,xm\", \"\"]],\n [\"ucomiss\", [\"x,xm\", \"\"]],\n [\"ud0\", [\"_|g,gm\", \"\"]],\n [\"ud1\", [\"_|g,gm\", \"\"]],\n [\"ud2\", [\"_|g,gm\", \"\"]],\n [\"ud2a\", [\"_|g,gm\", \"\"]],\n [\"ud2b\", [\"_|g,gm\", \"\"]],\n [\"udb\", [\"_\", \"\"]],\n [\"uiret\", [\"\", \"*=26\"]],\n [\"umonitor\", [\"\", \"*=85\"]],\n [\"umov\", [\"\", \"*=31\"]],\n [\"umwait\", [\"\", \"*=85\"]],\n [\"unpck\", [\"\", \"*=7+11\"]],\n [\"unpckbw\", [\"\", \"*=11\"]],\n [\"unpckd\", [\"\", \"*=7\"]],\n [\"unpckdq\", [\"\", \"*=7\"]],\n [\"unpckhpd\", [\"x,xm\", \"\"]],\n [\"unpckhps\", [\"x,xm\", \"\"]],\n [\"unpcklpd\", [\"x,xm\", \"\"]],\n [\"unpcklps\", [\"x,xm\", \"\"]],\n [\"unpckq\", [\"\", \"*=7\"]],\n [\"unpckw\", [\"\", \"*=11\"]],\n [\"unpckwd\", [\"\", \"*=7\"]],\n [\"urdmsr\", [\"\", \"*=3+18+80\"]],\n [\"uwrmsr\", [\"\", \"*=3+18+80\"]],\n [\"v4dpwssd\", [\"\", \"*=87\"]],\n [\"v4dpwssds\", [\"\", \"*=87\"]],\n [\"v4fmaddps\", [\"\", \"*=88\"]],\n [\"v4fmaddss\", [\"\", \"*=88\"]],\n [\"v4fnmaddps\", [\"\", \"*=88\"]],\n [\"v4fnmaddss\", [\"\", \"*=88\"]],\n [\"vaddbf16\", [\"\", \"*=89\"]],\n [\"vaddpd\", [\"\", \"*=90+91+92\"]],\n [\"vaddph\", [\"\", \"*=93+94\"]],\n [\"vaddps\", [\"\", \"*=90+91+92\"]],\n [\"vaddsd\", [\"\", \"*=90+92\"]],\n [\"vaddsh\", [\"\", \"*=95\"]],\n [\"vaddss\", [\"\", \"*=90+92\"]],\n [\"vaddsubpd\", [\"\", \"*=90\"]],\n [\"vaddsubps\", [\"\", \"*=90\"]],\n [\"vaesdec\", [\"\", \"*=90+96+97+98\"]],\n [\"vaesdeclast\", [\"\", \"*=90+96+97+98\"]],\n [\"vaesenc\", [\"\", \"*=90+96+97+98\"]],\n [\"vaesenclast\", [\"\", \"*=90+96+97+98\"]],\n [\"vaesimc\", [\"\", \"*=90\"]],\n [\"vaeskeygenassist\", [\"\", \"*=90\"]],\n [\"valignd\", [\"\", \"*=91+92\"]],\n [\"valignq\", [\"\", \"*=91+92\"]],\n [\"vandnpd\", [\"\", \"*=90+99+100\"]],\n [\"vandnps\", [\"\", \"*=90+99+100\"]],\n [\"vandpd\", [\"\", \"*=90+99+100\"]],\n [\"vandps\", [\"\", \"*=90+99+100\"]],\n [\"vbcstnebf162ps\", [\"\", \"*=101\"]],\n [\"vbcstnebf16ps\", [\"\", \"*=101\"]],\n [\"vbcstnesh2ps\", [\"\", \"*=101\"]],\n [\"vblendmpd\", [\"\", \"*=91+92\"]],\n [\"vblendmps\", [\"\", \"*=91+92\"]],\n [\"vblendpd\", [\"\", \"*=90\"]],\n [\"vblendps\", [\"\", \"*=90\"]],\n [\"vblendvpd\", [\"\", \"*=90\"]],\n [\"vblendvps\", [\"\", \"*=90\"]],\n [\"vbroadcastf128\", [\"\", \"*=90\"]],\n [\"vbroadcastf32x2\", [\"\", \"*=99+100\"]],\n [\"vbroadcastf32x4\", [\"\", \"*=91+92\"]],\n [\"vbroadcastf32x8\", [\"\", \"*=100\"]],\n [\"vbroadcastf64x2\", [\"\", \"*=99+100\"]],\n [\"vbroadcastf64x4\", [\"\", \"*=92\"]],\n [\"vbroadcasti128\", [\"\", \"*=102\"]],\n [\"vbroadcasti32x2\", [\"\", \"*=99+100\"]],\n [\"vbroadcasti32x4\", [\"\", \"*=91+92\"]],\n [\"vbroadcasti32x8\", [\"\", \"*=100\"]],\n [\"vbroadcasti64x2\", [\"\", \"*=99+100\"]],\n [\"vbroadcasti64x4\", [\"\", \"*=92\"]],\n [\"vbroadcastsd\", [\"\", \"*=90+91+92+102\"]],\n [\"vbroadcastss\", [\"\", \"*=90+91+92+102\"]],\n [\"vcmpbf16\", [\"\", \"*=89\"]],\n [\"vcmpeq_oqpd\", [\"\", \"*=91+92\"]],\n [\"vcmpeq_oqps\", [\"\", \"*=91+92\"]],\n [\"vcmpeq_oqsd\", [\"\", \"*=92\"]],\n [\"vcmpeq_oqss\", [\"\", \"*=92\"]],\n [\"vcmpeq_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeq_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeq_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmpeq_osss\", [\"\", \"*=90+92\"]],\n [\"vcmpeq_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeq_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeq_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpeq_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmpeq_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeq_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeq_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmpeq_usss\", [\"\", \"*=90+92\"]],\n [\"vcmpeqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpeqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpeqss\", [\"\", \"*=90+92\"]],\n [\"vcmpfalse_oqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpfalse_oqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpfalse_oqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpfalse_oqss\", [\"\", \"*=90+92\"]],\n [\"vcmpfalse_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpfalse_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpfalse_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmpfalse_osss\", [\"\", \"*=90+92\"]],\n [\"vcmpfalsepd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpfalseps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpfalsesd\", [\"\", \"*=90+92\"]],\n [\"vcmpfalsess\", [\"\", \"*=90+92\"]],\n [\"vcmpge_oqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpge_oqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpge_oqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpge_oqss\", [\"\", \"*=90+92\"]],\n [\"vcmpge_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpge_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpge_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmpge_osss\", [\"\", \"*=90+92\"]],\n [\"vcmpgepd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgeps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgesd\", [\"\", \"*=90+92\"]],\n [\"vcmpgess\", [\"\", \"*=90+92\"]],\n [\"vcmpgt_oqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgt_oqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgt_oqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpgt_oqss\", [\"\", \"*=90+92\"]],\n [\"vcmpgt_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgt_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgt_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmpgt_osss\", [\"\", \"*=90+92\"]],\n [\"vcmpgtpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgtps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpgtsd\", [\"\", \"*=90+92\"]],\n [\"vcmpgtss\", [\"\", \"*=90+92\"]],\n [\"vcmple_oqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmple_oqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmple_oqsd\", [\"\", \"*=90+92\"]],\n [\"vcmple_oqss\", [\"\", \"*=90+92\"]],\n [\"vcmple_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmple_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmple_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmple_osss\", [\"\", \"*=90+92\"]],\n [\"vcmplepd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpleps\", [\"\", \"*=90+91+92\"]],\n [\"vcmplesd\", [\"\", \"*=90+92\"]],\n [\"vcmpless\", [\"\", \"*=90+92\"]],\n [\"vcmplt_oqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmplt_oqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmplt_oqsd\", [\"\", \"*=90+92\"]],\n [\"vcmplt_oqss\", [\"\", \"*=90+92\"]],\n [\"vcmplt_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmplt_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmplt_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmplt_osss\", [\"\", \"*=90+92\"]],\n [\"vcmpltpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpltps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpltsd\", [\"\", \"*=90+92\"]],\n [\"vcmpltss\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_oqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_oqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_oqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_oqss\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_ospd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_osps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_ossd\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_osss\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneq_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmpneq_usss\", [\"\", \"*=90+92\"]],\n [\"vcmpneqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpneqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpneqss\", [\"\", \"*=90+92\"]],\n [\"vcmpnge_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnge_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnge_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpnge_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmpnge_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnge_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnge_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmpnge_usss\", [\"\", \"*=90+92\"]],\n [\"vcmpngepd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngeps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngesd\", [\"\", \"*=90+92\"]],\n [\"vcmpngess\", [\"\", \"*=90+92\"]],\n [\"vcmpngt_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngt_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngt_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpngt_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmpngt_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngt_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngt_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmpngt_usss\", [\"\", \"*=90+92\"]],\n [\"vcmpngtpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngtps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpngtsd\", [\"\", \"*=90+92\"]],\n [\"vcmpngtss\", [\"\", \"*=90+92\"]],\n [\"vcmpnle_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnle_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnle_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpnle_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmpnle_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnle_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnle_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmpnle_usss\", [\"\", \"*=90+92\"]],\n [\"vcmpnlepd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnleps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnlesd\", [\"\", \"*=90+92\"]],\n [\"vcmpnless\", [\"\", \"*=90+92\"]],\n [\"vcmpnlt_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnlt_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnlt_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmpnlt_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmpnlt_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnlt_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnlt_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmpnlt_usss\", [\"\", \"*=90+92\"]],\n [\"vcmpnltpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnltps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpnltsd\", [\"\", \"*=90+92\"]],\n [\"vcmpnltss\", [\"\", \"*=90+92\"]],\n [\"vcmpord_qpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpord_qps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpord_qsd\", [\"\", \"*=90+92\"]],\n [\"vcmpord_qss\", [\"\", \"*=90+92\"]],\n [\"vcmpord_spd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpord_sps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpord_ssd\", [\"\", \"*=90+92\"]],\n [\"vcmpord_sss\", [\"\", \"*=90+92\"]],\n [\"vcmpordpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpordps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpordsd\", [\"\", \"*=90+92\"]],\n [\"vcmpordss\", [\"\", \"*=90+92\"]],\n [\"vcmppd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpph\", [\"\", \"*=93+94\"]],\n [\"vcmpps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpsd\", [\"\", \"*=90+92\"]],\n [\"vcmpsh\", [\"\", \"*=95\"]],\n [\"vcmpss\", [\"\", \"*=90+92\"]],\n [\"vcmptrue_uqpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmptrue_uqps\", [\"\", \"*=90+91+92\"]],\n [\"vcmptrue_uqsd\", [\"\", \"*=90+92\"]],\n [\"vcmptrue_uqss\", [\"\", \"*=90+92\"]],\n [\"vcmptrue_uspd\", [\"\", \"*=90+91+92\"]],\n [\"vcmptrue_usps\", [\"\", \"*=90+91+92\"]],\n [\"vcmptrue_ussd\", [\"\", \"*=90+92\"]],\n [\"vcmptrue_usss\", [\"\", \"*=90+92\"]],\n [\"vcmptruepd\", [\"\", \"*=90+91+92\"]],\n [\"vcmptrueps\", [\"\", \"*=90+91+92\"]],\n [\"vcmptruesd\", [\"\", \"*=90+92\"]],\n [\"vcmptruess\", [\"\", \"*=90+92\"]],\n [\"vcmpunord_qpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpunord_qps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpunord_qsd\", [\"\", \"*=90+92\"]],\n [\"vcmpunord_qss\", [\"\", \"*=90+92\"]],\n [\"vcmpunord_spd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpunord_sps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpunord_ssd\", [\"\", \"*=90+92\"]],\n [\"vcmpunord_sss\", [\"\", \"*=90+92\"]],\n [\"vcmpunordpd\", [\"\", \"*=90+91+92\"]],\n [\"vcmpunordps\", [\"\", \"*=90+91+92\"]],\n [\"vcmpunordsd\", [\"\", \"*=90+92\"]],\n [\"vcmpunordss\", [\"\", \"*=90+92\"]],\n [\"vcomisbf16\", [\"\", \"*=89\"]],\n [\"vcomisd\", [\"\", \"*=90+92\"]],\n [\"vcomish\", [\"\", \"*=95\"]],\n [\"vcomiss\", [\"\", \"*=90+92\"]],\n [\"vcompresspd\", [\"\", \"*=91+92\"]],\n [\"vcompressps\", [\"\", \"*=91+92\"]],\n [\"vcomxsd\", [\"\", \"*=89\"]],\n [\"vcomxsh\", [\"\", \"*=89\"]],\n [\"vcomxss\", [\"\", \"*=89\"]],\n [\"vcvt2ph2bf8\", [\"\", \"*=89\"]],\n [\"vcvt2ph2bf8s\", [\"\", \"*=89\"]],\n [\"vcvt2ph2hf8\", [\"\", \"*=89\"]],\n [\"vcvt2ph2hf8s\", [\"\", \"*=89\"]],\n [\"vcvt2ps2phx\", [\"\", \"*=89\"]],\n [\"vcvtbf162ibs\", [\"\", \"*=89\"]],\n [\"vcvtbf162iubs\", [\"\", \"*=89\"]],\n [\"vcvtbiasph2bf8\", [\"\", \"*=89\"]],\n [\"vcvtbiasph2bf8s\", [\"\", \"*=89\"]],\n [\"vcvtbiasph2hf8\", [\"\", \"*=89\"]],\n [\"vcvtbiasph2hf8s\", [\"\", \"*=89\"]],\n [\"vcvtdq2pd\", [\"\", \"*=90+91+92\"]],\n [\"vcvtdq2ph\", [\"\", \"*=95+103\"]],\n [\"vcvtdq2ps\", [\"\", \"*=90+91+92\"]],\n [\"vcvthf82ph\", [\"\", \"*=89\"]],\n [\"vcvtne2ps2bf16\", [\"\", \"*=104\"]],\n [\"vcvtneebf162ps\", [\"\", \"*=101\"]],\n [\"vcvtneeph2ps\", [\"\", \"*=101\"]],\n [\"vcvtneobf162ps\", [\"\", \"*=101\"]],\n [\"vcvtneoph2ps\", [\"\", \"*=101\"]],\n [\"vcvtneps2bf16\", [\"\", \"*=101+104\"]],\n [\"vcvtpd2dq\", [\"\", \"*=90+91+92\"]],\n [\"vcvtpd2ph\", [\"\", \"*=95+103\"]],\n [\"vcvtpd2ps\", [\"\", \"*=90+91+92\"]],\n [\"vcvtpd2qq\", [\"\", \"*=99+100\"]],\n [\"vcvtpd2udq\", [\"\", \"*=91+92\"]],\n [\"vcvtpd2uqq\", [\"\", \"*=99+100\"]],\n [\"vcvtph2bf8\", [\"\", \"*=89\"]],\n [\"vcvtph2bf8s\", [\"\", \"*=89\"]],\n [\"vcvtph2dq\", [\"\", \"*=95+103\"]],\n [\"vcvtph2hf8\", [\"\", \"*=89\"]],\n [\"vcvtph2hf8s\", [\"\", \"*=89\"]],\n [\"vcvtph2ibs\", [\"\", \"*=89\"]],\n [\"vcvtph2iubs\", [\"\", \"*=89\"]],\n [\"vcvtph2pd\", [\"\", \"*=95+103\"]],\n [\"vcvtph2ps\", [\"\", \"*=90+91+92+105\"]],\n [\"vcvtph2psx\", [\"\", \"*=95+103\"]],\n [\"vcvtph2qq\", [\"\", \"*=95+103\"]],\n [\"vcvtph2udq\", [\"\", \"*=95+103\"]],\n [\"vcvtph2uqq\", [\"\", \"*=95+103\"]],\n [\"vcvtph2uw\", [\"\", \"*=95+103\"]],\n [\"vcvtph2w\", [\"\", \"*=95+103\"]],\n [\"vcvtps2dq\", [\"\", \"*=90+91+92\"]],\n [\"vcvtps2ibs\", [\"\", \"*=89\"]],\n [\"vcvtps2iubs\", [\"\", \"*=89\"]],\n [\"vcvtps2pd\", [\"\", \"*=90+91+92\"]],\n [\"vcvtps2ph\", [\"\", \"*=90+91+92+95+103+106\"]],\n [\"vcvtps2phx\", [\"\", \"*=95+103\"]],\n [\"vcvtps2qq\", [\"\", \"*=99+100\"]],\n [\"vcvtps2udq\", [\"\", \"*=91+92\"]],\n [\"vcvtps2uqq\", [\"\", \"*=99+100\"]],\n [\"vcvtqq2pd\", [\"\", \"*=99+100\"]],\n [\"vcvtqq2ph\", [\"\", \"*=103\"]],\n [\"vcvtqq2ps\", [\"\", \"*=99+100\"]],\n [\"vcvtsd2sh\", [\"\", \"*=95\"]],\n [\"vcvtsd2si\", [\"\", \"*=90+92\"]],\n [\"vcvtsd2ss\", [\"\", \"*=90+92\"]],\n [\"vcvtsd2usi\", [\"\", \"*=92\"]],\n [\"vcvtsh2sd\", [\"\", \"*=95\"]],\n [\"vcvtsh2si\", [\"\", \"*=95\"]],\n [\"vcvtsh2ss\", [\"\", \"*=95\"]],\n [\"vcvtsh2usi\", [\"\", \"*=95\"]],\n [\"vcvtsi2sd\", [\"\", \"*=90+92\"]],\n [\"vcvtsi2sh\", [\"\", \"*=95\"]],\n [\"vcvtsi2ss\", [\"\", \"*=90+92\"]],\n [\"vcvtss2sd\", [\"\", \"*=90+92\"]],\n [\"vcvtss2sh\", [\"\", \"*=95\"]],\n [\"vcvtss2si\", [\"\", \"*=90+92\"]],\n [\"vcvtss2usi\", [\"\", \"*=92\"]],\n [\"vcvttbf162ibs\", [\"\", \"*=89\"]],\n [\"vcvttbf162iubs\", [\"\", \"*=89\"]],\n [\"vcvttpd2dq\", [\"\", \"*=90+91+92\"]],\n [\"vcvttpd2dqs\", [\"\", \"*=89\"]],\n [\"vcvttpd2qq\", [\"\", \"*=99+100\"]],\n [\"vcvttpd2qqs\", [\"\", \"*=89\"]],\n [\"vcvttpd2udq\", [\"\", \"*=91+92\"]],\n [\"vcvttpd2udqs\", [\"\", \"*=89\"]],\n [\"vcvttpd2uqq\", [\"\", \"*=99+100\"]],\n [\"vcvttpd2uqqs\", [\"\", \"*=89\"]],\n [\"vcvttph2dq\", [\"\", \"*=95+103\"]],\n [\"vcvttph2ibs\", [\"\", \"*=89\"]],\n [\"vcvttph2iubs\", [\"\", \"*=89\"]],\n [\"vcvttph2qq\", [\"\", \"*=95+103\"]],\n [\"vcvttph2udq\", [\"\", \"*=95+103\"]],\n [\"vcvttph2uqq\", [\"\", \"*=95+103\"]],\n [\"vcvttph2uw\", [\"\", \"*=95+103\"]],\n [\"vcvttph2w\", [\"\", \"*=95+103\"]],\n [\"vcvttps2dq\", [\"\", \"*=90+91+92\"]],\n [\"vcvttps2dqs\", [\"\", \"*=89\"]],\n [\"vcvttps2ibs\", [\"\", \"*=89\"]],\n [\"vcvttps2iubs\", [\"\", \"*=89\"]],\n [\"vcvttps2qq\", [\"\", \"*=99+100\"]],\n [\"vcvttps2qqs\", [\"\", \"*=89\"]],\n [\"vcvttps2udq\", [\"\", \"*=91+92\"]],\n [\"vcvttps2udqs\", [\"\", \"*=89\"]],\n [\"vcvttps2uqq\", [\"\", \"*=99+100\"]],\n [\"vcvttps2uqqs\", [\"\", \"*=89\"]],\n [\"vcvttsd2si\", [\"\", \"*=90+92\"]],\n [\"vcvttsd2sis\", [\"\", \"*=89\"]],\n [\"vcvttsd2usi\", [\"\", \"*=92\"]],\n [\"vcvttsd2usis\", [\"\", \"*=89\"]],\n [\"vcvttsh2si\", [\"\", \"*=95\"]],\n [\"vcvttsh2usi\", [\"\", \"*=95\"]],\n [\"vcvttss2si\", [\"\", \"*=90+92\"]],\n [\"vcvttss2sis\", [\"\", \"*=89\"]],\n [\"vcvttss2usi\", [\"\", \"*=92\"]],\n [\"vcvttss2usis\", [\"\", \"*=89\"]],\n [\"vcvtudq2pd\", [\"\", \"*=91+92\"]],\n [\"vcvtudq2ph\", [\"\", \"*=95+103\"]],\n [\"vcvtudq2ps\", [\"\", \"*=91+92\"]],\n [\"vcvtuqq2pd\", [\"\", \"*=99+100\"]],\n [\"vcvtuqq2ph\", [\"\", \"*=95+103\"]],\n [\"vcvtuqq2ps\", [\"\", \"*=99+100\"]],\n [\"vcvtusi2sd\", [\"\", \"*=92\"]],\n [\"vcvtusi2sh\", [\"\", \"*=95\"]],\n [\"vcvtusi2ss\", [\"\", \"*=92+95\"]],\n [\"vcvtuw2ph\", [\"\", \"*=95+103\"]],\n [\"vcvtw2ph\", [\"\", \"*=95+103\"]],\n [\"vdbpsadbw\", [\"\", \"*=107+108\"]],\n [\"vdivbf16\", [\"\", \"*=89\"]],\n [\"vdivpd\", [\"\", \"*=90+91+92\"]],\n [\"vdivph\", [\"\", \"*=95+103\"]],\n [\"vdivps\", [\"\", \"*=90+91+92\"]],\n [\"vdivsd\", [\"\", \"*=90+92\"]],\n [\"vdivsh\", [\"\", \"*=95\"]],\n [\"vdivss\", [\"\", \"*=90+92\"]],\n [\"vdpbf16ps\", [\"\", \"*=104\"]],\n [\"vdppd\", [\"\", \"*=90\"]],\n [\"vdpphps\", [\"\", \"*=89\"]],\n [\"vdpps\", [\"\", \"*=90\"]],\n [\"vendscaleph\", [\"\", \"*=95+103\"]],\n [\"vendscalesh\", [\"\", \"*=95\"]],\n [\"verr\", [\"\", \"*=18\"]],\n [\"verw\", [\"\", \"*=18\"]],\n [\"vexp2pd\", [\"\", \"*=109\"]],\n [\"vexp2ps\", [\"\", \"*=109\"]],\n [\"vexpandpd\", [\"\", \"*=91+92\"]],\n [\"vexpandps\", [\"\", \"*=91+92\"]],\n [\"vextractf128\", [\"\", \"*=90\"]],\n [\"vextractf32x4\", [\"\", \"*=91+92+110+111\"]],\n [\"vextractf32x8\", [\"\", \"*=100+112\"]],\n [\"vextractf64x2\", [\"\", \"*=99+100+112+113\"]],\n [\"vextractf64x4\", [\"\", \"*=92+111\"]],\n [\"vextracti128\", [\"\", \"*=102\"]],\n [\"vextracti32x4\", [\"\", \"*=91+92+110+111\"]],\n [\"vextracti32x8\", [\"\", \"*=100+112\"]],\n [\"vextracti64x2\", [\"\", \"*=99+100+112+113\"]],\n [\"vextracti64x4\", [\"\", \"*=92+111\"]],\n [\"vextractps\", [\"\", \"*=90+92\"]],\n [\"vfcmaddcph\", [\"\", \"*=103\"]],\n [\"vfcmaddcsh\", [\"\", \"*=95\"]],\n [\"vfcmulcpch\", [\"\", \"*=103\"]],\n [\"vfcmulcph\", [\"\", \"*=93+94\"]],\n [\"vfcmulcsh\", [\"\", \"*=95\"]],\n [\"vfixupimmpd\", [\"\", \"*=91+92\"]],\n [\"vfixupimmps\", [\"\", \"*=91+92\"]],\n [\"vfixupimmsd\", [\"\", \"*=92\"]],\n [\"vfixupimmss\", [\"\", \"*=92\"]],\n [\"vfmadd123pd\", [\"\", \"*=114\"]],\n [\"vfmadd123ps\", [\"\", \"*=114\"]],\n [\"vfmadd123sd\", [\"\", \"*=114\"]],\n [\"vfmadd123ss\", [\"\", \"*=114\"]],\n [\"vfmadd132bf16\", [\"\", \"*=89\"]],\n [\"vfmadd132pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmadd132ph\", [\"\", \"*=95+103\"]],\n [\"vfmadd132ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmadd132sd\", [\"\", \"*=92+114\"]],\n [\"vfmadd132sh\", [\"\", \"*=94\"]],\n [\"vfmadd132ss\", [\"\", \"*=92+114\"]],\n [\"vfmadd213bf16\", [\"\", \"*=89\"]],\n [\"vfmadd213pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmadd213ph\", [\"\", \"*=95+103\"]],\n [\"vfmadd213ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmadd213sd\", [\"\", \"*=92+114\"]],\n [\"vfmadd213sh\", [\"\", \"*=94\"]],\n [\"vfmadd213ss\", [\"\", \"*=92+114\"]],\n [\"vfmadd231bf16\", [\"\", \"*=89\"]],\n [\"vfmadd231pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmadd231ph\", [\"\", \"*=95+103\"]],\n [\"vfmadd231ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmadd231sd\", [\"\", \"*=92+114\"]],\n [\"vfmadd231sh\", [\"\", \"*=94\"]],\n [\"vfmadd231ss\", [\"\", \"*=92+114\"]],\n [\"vfmadd312pd\", [\"\", \"*=114\"]],\n [\"vfmadd312ps\", [\"\", \"*=114\"]],\n [\"vfmadd312sd\", [\"\", \"*=114\"]],\n [\"vfmadd312ss\", [\"\", \"*=114\"]],\n [\"vfmadd321pd\", [\"\", \"*=114\"]],\n [\"vfmadd321ps\", [\"\", \"*=114\"]],\n [\"vfmadd321sd\", [\"\", \"*=114\"]],\n [\"vfmadd321ss\", [\"\", \"*=114\"]],\n [\"vfmaddcph\", [\"\", \"*=103\"]],\n [\"vfmaddcsh\", [\"\", \"*=95\"]],\n [\"vfmaddpd\", [\"\", \"*=115\"]],\n [\"vfmaddps\", [\"\", \"*=115\"]],\n [\"vfmaddsd\", [\"\", \"*=115\"]],\n [\"vfmaddss\", [\"\", \"*=115\"]],\n [\"vfmaddsub123pd\", [\"\", \"*=114\"]],\n [\"vfmaddsub123ps\", [\"\", \"*=114\"]],\n [\"vfmaddsub132pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmaddsub132ph\", [\"\", \"*=95+103\"]],\n [\"vfmaddsub132ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmaddsub213pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmaddsub213ph\", [\"\", \"*=95+103\"]],\n [\"vfmaddsub213ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmaddsub231pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmaddsub231ph\", [\"\", \"*=95+103\"]],\n [\"vfmaddsub231ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmaddsub312pd\", [\"\", \"*=114\"]],\n [\"vfmaddsub312ps\", [\"\", \"*=114\"]],\n [\"vfmaddsub321pd\", [\"\", \"*=114\"]],\n [\"vfmaddsub321ps\", [\"\", \"*=114\"]],\n [\"vfmaddsubpd\", [\"\", \"*=115\"]],\n [\"vfmaddsubps\", [\"\", \"*=115\"]],\n [\"vfmsub123pd\", [\"\", \"*=114\"]],\n [\"vfmsub123ps\", [\"\", \"*=114\"]],\n [\"vfmsub123sd\", [\"\", \"*=114\"]],\n [\"vfmsub123ss\", [\"\", \"*=114\"]],\n [\"vfmsub132bf16\", [\"\", \"*=89\"]],\n [\"vfmsub132pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmsub132ph\", [\"\", \"*=95+103\"]],\n [\"vfmsub132ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmsub132sd\", [\"\", \"*=92+114\"]],\n [\"vfmsub132sh\", [\"\", \"*=94\"]],\n [\"vfmsub132ss\", [\"\", \"*=92+114\"]],\n [\"vfmsub213bf16\", [\"\", \"*=89\"]],\n [\"vfmsub213pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmsub213ph\", [\"\", \"*=95+103\"]],\n [\"vfmsub213ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmsub213sd\", [\"\", \"*=92+114\"]],\n [\"vfmsub213sh\", [\"\", \"*=94\"]],\n [\"vfmsub213ss\", [\"\", \"*=92+114\"]],\n [\"vfmsub231bf16\", [\"\", \"*=89\"]],\n [\"vfmsub231pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmsub231ph\", [\"\", \"*=95+103\"]],\n [\"vfmsub231ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmsub231sd\", [\"\", \"*=92+114\"]],\n [\"vfmsub231sh\", [\"\", \"*=94\"]],\n [\"vfmsub231ss\", [\"\", \"*=92+114\"]],\n [\"vfmsub312pd\", [\"\", \"*=114\"]],\n [\"vfmsub312ps\", [\"\", \"*=114\"]],\n [\"vfmsub312sd\", [\"\", \"*=114\"]],\n [\"vfmsub312ss\", [\"\", \"*=114\"]],\n [\"vfmsub321pd\", [\"\", \"*=114\"]],\n [\"vfmsub321ps\", [\"\", \"*=114\"]],\n [\"vfmsub321sd\", [\"\", \"*=114\"]],\n [\"vfmsub321ss\", [\"\", \"*=114\"]],\n [\"vfmsubadd123pd\", [\"\", \"*=114\"]],\n [\"vfmsubadd123ps\", [\"\", \"*=114\"]],\n [\"vfmsubadd132pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmsubadd132ph\", [\"\", \"*=95+103\"]],\n [\"vfmsubadd132ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmsubadd213pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmsubadd213ph\", [\"\", \"*=95+103\"]],\n [\"vfmsubadd213ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmsubadd231pd\", [\"\", \"*=91+92+114\"]],\n [\"vfmsubadd231ph\", [\"\", \"*=95+103\"]],\n [\"vfmsubadd231ps\", [\"\", \"*=91+92+114\"]],\n [\"vfmsubadd312pd\", [\"\", \"*=114\"]],\n [\"vfmsubadd312ps\", [\"\", \"*=114\"]],\n [\"vfmsubadd321pd\", [\"\", \"*=114\"]],\n [\"vfmsubadd321ps\", [\"\", \"*=114\"]],\n [\"vfmsubaddpd\", [\"\", \"*=115\"]],\n [\"vfmsubaddps\", [\"\", \"*=115\"]],\n [\"vfmsubpd\", [\"\", \"*=115\"]],\n [\"vfmsubps\", [\"\", \"*=115\"]],\n [\"vfmsubsd\", [\"\", \"*=115\"]],\n [\"vfmsubss\", [\"\", \"*=115\"]],\n [\"vfmulcpch\", [\"\", \"*=103\"]],\n [\"vfmulcph\", [\"\", \"*=93+94\"]],\n [\"vfmulcsh\", [\"\", \"*=95\"]],\n [\"vfnmadd123pd\", [\"\", \"*=114\"]],\n [\"vfnmadd123ps\", [\"\", \"*=114\"]],\n [\"vfnmadd123sd\", [\"\", \"*=114\"]],\n [\"vfnmadd123ss\", [\"\", \"*=114\"]],\n [\"vfnmadd132bf16\", [\"\", \"*=89\"]],\n [\"vfnmadd132pd\", [\"\", \"*=91+92+114\"]],\n [\"vfnmadd132ph\", [\"\", \"*=95+103\"]],\n [\"vfnmadd132ps\", [\"\", \"*=91+92+114\"]],\n [\"vfnmadd132sd\", [\"\", \"*=92+114\"]],\n [\"vfnmadd132sh\", [\"\", \"*=94\"]],\n [\"vfnmadd132ss\", [\"\", \"*=92+114\"]],\n [\"vfnmadd213bf16\", [\"\", \"*=89\"]],\n [\"vfnmadd213pd\", [\"\", \"*=91+92+114\"]],\n [\"vfnmadd213ph\", [\"\", \"*=95+103\"]],\n [\"vfnmadd213ps\", [\"\", \"*=91+92+114\"]],\n [\"vfnmadd213sd\", [\"\", \"*=92+114\"]],\n [\"vfnmadd213sh\", [\"\", \"*=94\"]],\n [\"vfnmadd213ss\", [\"\", \"*=92+114\"]],\n [\"vfnmadd231bf16\", [\"\", \"*=89\"]],\n [\"vfnmadd231pd\", [\"\", \"*=91+92+114\"]],\n [\"vfnmadd231ph\", [\"\", \"*=95+103\"]],\n [\"vfnmadd231ps\", [\"\", \"*=91+92+114\"]],\n [\"vfnmadd231sd\", [\"\", \"*=92+114\"]],\n [\"vfnmadd231sh\", [\"\", \"*=94\"]],\n [\"vfnmadd231ss\", [\"\", \"*=92+114\"]],\n [\"vfnmadd312pd\", [\"\", \"*=114\"]],\n [\"vfnmadd312ps\", [\"\", \"*=114\"]],\n [\"vfnmadd312sd\", [\"\", \"*=114\"]],\n [\"vfnmadd312ss\", [\"\", \"*=114\"]],\n [\"vfnmadd321pd\", [\"\", \"*=114\"]],\n [\"vfnmadd321ps\", [\"\", \"*=114\"]],\n [\"vfnmadd321sd\", [\"\", \"*=114\"]],\n [\"vfnmadd321ss\", [\"\", \"*=114\"]],\n [\"vfnmaddpd\", [\"\", \"*=115\"]],\n [\"vfnmaddps\", [\"\", \"*=115\"]],\n [\"vfnmaddsd\", [\"\", \"*=115\"]],\n [\"vfnmaddss\", [\"\", \"*=115\"]],\n [\"vfnmsub123pd\", [\"\", \"*=114\"]],\n [\"vfnmsub123ps\", [\"\", \"*=114\"]],\n [\"vfnmsub123sd\", [\"\", \"*=114\"]],\n [\"vfnmsub123ss\", [\"\", \"*=114\"]],\n [\"vfnmsub132bf16\", [\"\", \"*=89\"]],\n [\"vfnmsub132pd\", [\"\", \"*=91+92+114\"]],\n [\"vfnmsub132ph\", [\"\", \"*=95+103\"]],\n [\"vfnmsub132ps\", [\"\", \"*=91+92+114\"]],\n [\"vfnmsub132sd\", [\"\", \"*=92+114\"]],\n [\"vfnmsub132sh\", [\"\", \"*=94\"]],\n [\"vfnmsub132ss\", [\"\", \"*=92+114\"]],\n [\"vfnmsub213bf16\", [\"\", \"*=89\"]],\n [\"vfnmsub213pd\", [\"\", \"*=91+92+114\"]],\n [\"vfnmsub213ph\", [\"\", \"*=95+103\"]],\n [\"vfnmsub213ps\", [\"\", \"*=91+92+114\"]],\n [\"vfnmsub213sd\", [\"\", \"*=92+114\"]],\n [\"vfnmsub213sh\", [\"\", \"*=94\"]],\n [\"vfnmsub213ss\", [\"\", \"*=92+114\"]],\n [\"vfnmsub231bf16\", [\"\", \"*=89\"]],\n [\"vfnmsub231pd\", [\"\", \"*=91+92+114\"]],\n [\"vfnmsub231ph\", [\"\", \"*=95+103\"]],\n [\"vfnmsub231ps\", [\"\", \"*=91+92+114\"]],\n [\"vfnmsub231sd\", [\"\", \"*=92+114\"]],\n [\"vfnmsub231sh\", [\"\", \"*=94\"]],\n [\"vfnmsub231ss\", [\"\", \"*=92+114\"]],\n [\"vfnmsub312pd\", [\"\", \"*=114\"]],\n [\"vfnmsub312ps\", [\"\", \"*=114\"]],\n [\"vfnmsub312sd\", [\"\", \"*=114\"]],\n [\"vfnmsub312ss\", [\"\", \"*=114\"]],\n [\"vfnmsub321pd\", [\"\", \"*=114\"]],\n [\"vfnmsub321ps\", [\"\", \"*=114\"]],\n [\"vfnmsub321sd\", [\"\", \"*=114\"]],\n [\"vfnmsub321ss\", [\"\", \"*=114\"]],\n [\"vfnmsubpd\", [\"\", \"*=115\"]],\n [\"vfnmsubps\", [\"\", \"*=115\"]],\n [\"vfnmsubsd\", [\"\", \"*=115\"]],\n [\"vfnmsubss\", [\"\", \"*=115\"]],\n [\"vfpclassbf16\", [\"\", \"*=89\"]],\n [\"vfpclasspd\", [\"\", \"*=99+100\"]],\n [\"vfpclassph\", [\"\", \"*=95+103\"]],\n [\"vfpclassps\", [\"\", \"*=99+100\"]],\n [\"vfpclasssd\", [\"\", \"*=100\"]],\n [\"vfpclasssh\", [\"\", \"*=95\"]],\n [\"vfpclassss\", [\"\", \"*=100\"]],\n [\"vfrczpd\", [\"\", \"*=116\"]],\n [\"vfrczps\", [\"\", \"*=116\"]],\n [\"vfrczsd\", [\"\", \"*=116\"]],\n [\"vfrczss\", [\"\", \"*=116\"]],\n [\"vgatherdpd\", [\"\", \"*=117+118+119\"]],\n [\"vgatherdps\", [\"\", \"*=117+118+119\"]],\n [\"vgatherpf0dpd\", [\"\", \"*=120\"]],\n [\"vgatherpf0dps\", [\"\", \"*=120\"]],\n [\"vgatherpf0qpd\", [\"\", \"*=120\"]],\n [\"vgatherpf0qps\", [\"\", \"*=120\"]],\n [\"vgatherpf1dpd\", [\"\", \"*=120\"]],\n [\"vgatherpf1dps\", [\"\", \"*=120\"]],\n [\"vgatherpf1qpd\", [\"\", \"*=120\"]],\n [\"vgatherpf1qps\", [\"\", \"*=120\"]],\n [\"vgatherqpd\", [\"\", \"*=117+118+119\"]],\n [\"vgatherqps\", [\"\", \"*=117+118+119\"]],\n [\"vgetexpbf16\", [\"\", \"*=89\"]],\n [\"vgetexppd\", [\"\", \"*=91+92\"]],\n [\"vgetexpph\", [\"\", \"*=95+103\"]],\n [\"vgetexpps\", [\"\", \"*=91+92\"]],\n [\"vgetexpsd\", [\"\", \"*=92\"]],\n [\"vgetexpsh\", [\"\", \"*=95\"]],\n [\"vgetexpss\", [\"\", \"*=92\"]],\n [\"vgetmantbf16\", [\"\", \"*=89\"]],\n [\"vgetmantpd\", [\"\", \"*=91+92\"]],\n [\"vgetmantph\", [\"\", \"*=95+103\"]],\n [\"vgetmantps\", [\"\", \"*=91+92\"]],\n [\"vgetmantsd\", [\"\", \"*=92\"]],\n [\"vgetmantsh\", [\"\", \"*=95\"]],\n [\"vgetmantss\", [\"\", \"*=92\"]],\n [\"vgetmaxph\", [\"\", \"*=95+103\"]],\n [\"vgetmaxsh\", [\"\", \"*=95\"]],\n [\"vgetminph\", [\"\", \"*=95+103\"]],\n [\"vgetminsh\", [\"\", \"*=95\"]],\n [\"vgf2p8affineinvqb\", [\"\", \"*=121+122+123\"]],\n [\"vgf2p8affineqb\", [\"\", \"*=121+122+123\"]],\n [\"vgf2p8mulb\", [\"\", \"*=121+122+123\"]],\n [\"vhaddpd\", [\"\", \"*=90\"]],\n [\"vhaddps\", [\"\", \"*=90\"]],\n [\"vhsubpd\", [\"\", \"*=90\"]],\n [\"vhsubps\", [\"\", \"*=90\"]],\n [\"vinsertf128\", [\"\", \"*=90\"]],\n [\"vinsertf32x4\", [\"\", \"*=91+92\"]],\n [\"vinsertf32x8\", [\"\", \"*=100\"]],\n [\"vinsertf64x2\", [\"\", \"*=99+100\"]],\n [\"vinsertf64x4\", [\"\", \"*=92\"]],\n [\"vinserti128\", [\"\", \"*=102\"]],\n [\"vinserti32x4\", [\"\", \"*=91+92\"]],\n [\"vinserti32x8\", [\"\", \"*=100\"]],\n [\"vinserti64x2\", [\"\", \"*=99+100\"]],\n [\"vinserti64x4\", [\"\", \"*=92\"]],\n [\"vinsertps\", [\"\", \"*=90+92\"]],\n [\"vlddqu\", [\"\", \"*=90\"]],\n [\"vldmxcsr\", [\"\", \"*=90\"]],\n [\"vldqqu\", [\"\", \"*=90\"]],\n [\"vmaskmovdqu\", [\"\", \"*=90\"]],\n [\"vmaskmovpd\", [\"\", \"*=90\"]],\n [\"vmaskmovps\", [\"\", \"*=90\"]],\n [\"vmaxbf16\", [\"\", \"*=89\"]],\n [\"vmaxpd\", [\"\", \"*=90+91+92\"]],\n [\"vmaxph\", [\"\", \"*=95+103\"]],\n [\"vmaxps\", [\"\", \"*=90+91+92\"]],\n [\"vmaxsd\", [\"\", \"*=90+92\"]],\n [\"vmaxsh\", [\"\", \"*=94\"]],\n [\"vmaxss\", [\"\", \"*=90+92\"]],\n [\"vmcall\", [\"\", \"*=23\"]],\n [\"vmclear\", [\"\", \"*=23\"]],\n [\"vmfunc\", [\"\", \"*=23\"]],\n [\"vmgexit\", [\"\", \"*=23\"]],\n [\"vminbf16\", [\"\", \"*=89\"]],\n [\"vminmaxbf16\", [\"\", \"*=89\"]],\n [\"vminmaxpd\", [\"\", \"*=89\"]],\n [\"vminmaxph\", [\"\", \"*=89\"]],\n [\"vminmaxps\", [\"\", \"*=89\"]],\n [\"vminmaxsd\", [\"\", \"*=89\"]],\n [\"vminmaxsh\", [\"\", \"*=89\"]],\n [\"vminmaxss\", [\"\", \"*=89\"]],\n [\"vminpd\", [\"\", \"*=90+91+92\"]],\n [\"vminph\", [\"\", \"*=95+103\"]],\n [\"vminps\", [\"\", \"*=90+91+92\"]],\n [\"vminsd\", [\"\", \"*=90+92\"]],\n [\"vminsh\", [\"\", \"*=94\"]],\n [\"vminss\", [\"\", \"*=90+92\"]],\n [\"vmlaunch\", [\"\", \"*=23\"]],\n [\"vmload\", [\"\", \"*=23\"]],\n [\"vmmcall\", [\"\", \"*=23\"]],\n [\"vmovapd\", [\"\", \"*=90+91+92\"]],\n [\"vmovaps\", [\"\", \"*=90+91+92\"]],\n [\"vmovd\", [\"\", \"*=89+90+92\"]],\n [\"vmovddup\", [\"\", \"*=90+91+92\"]],\n [\"vmovdqa\", [\"\", \"*=90\"]],\n [\"vmovdqa32\", [\"\", \"*=91+92\"]],\n [\"vmovdqa64\", [\"\", \"*=91+92\"]],\n [\"vmovdqu\", [\"\", \"*=90\"]],\n [\"vmovdqu16\", [\"\", \"*=107+108\"]],\n [\"vmovdqu32\", [\"\", \"*=91+92\"]],\n [\"vmovdqu64\", [\"\", \"*=91+92\"]],\n [\"vmovdqu8\", [\"\", \"*=107+108\"]],\n [\"vmovhlps\", [\"\", \"*=90+92\"]],\n [\"vmovhpd\", [\"\", \"*=90+92\"]],\n [\"vmovhps\", [\"\", \"*=90+92\"]],\n [\"vmovlhps\", [\"\", \"*=90+92\"]],\n [\"vmovlpd\", [\"\", \"*=90+92\"]],\n [\"vmovlps\", [\"\", \"*=90+92\"]],\n [\"vmovmskpd\", [\"\", \"*=90\"]],\n [\"vmovmskps\", [\"\", \"*=90\"]],\n [\"vmovntdq\", [\"\", \"*=90+91+92\"]],\n [\"vmovntdqa\", [\"\", \"*=90+91+92+102\"]],\n [\"vmovntpd\", [\"\", \"*=90+91+92\"]],\n [\"vmovntps\", [\"\", \"*=90+91+92\"]],\n [\"vmovntqq\", [\"\", \"*=90\"]],\n [\"vmovq\", [\"\", \"*=90+92\"]],\n [\"vmovqqa\", [\"\", \"*=90\"]],\n [\"vmovqqu\", [\"\", \"*=90\"]],\n [\"vmovsd\", [\"\", \"*=90+92\"]],\n [\"vmovsh\", [\"\", \"*=95\"]],\n [\"vmovshdup\", [\"\", \"*=90+91+92\"]],\n [\"vmovsldup\", [\"\", \"*=90+91+92\"]],\n [\"vmovss\", [\"\", \"*=90+92\"]],\n [\"vmovupd\", [\"\", \"*=90+91+92\"]],\n [\"vmovups\", [\"\", \"*=90+91+92\"]],\n [\"vmovw\", [\"\", \"*=89+95\"]],\n [\"vmpsadbw\", [\"\", \"*=89+90+102\"]],\n [\"vmptrld\", [\"\", \"*=23\"]],\n [\"vmptrst\", [\"\", \"*=23\"]],\n [\"vmread\", [\"\", \"*=23\"]],\n [\"vmresume\", [\"\", \"*=23\"]],\n [\"vmrun\", [\"\", \"*=23\"]],\n [\"vmsave\", [\"\", \"*=23\"]],\n [\"vmulbf16\", [\"\", \"*=89\"]],\n [\"vmulpd\", [\"\", \"*=90+91+92\"]],\n [\"vmulph\", [\"\", \"*=95+103\"]],\n [\"vmulps\", [\"\", \"*=90+91+92\"]],\n [\"vmulsd\", [\"\", \"*=90+92\"]],\n [\"vmulsh\", [\"\", \"*=95\"]],\n [\"vmulss\", [\"\", \"*=90+92\"]],\n [\"vmwrite\", [\"\", \"*=23\"]],\n [\"vmxoff\", [\"\", \"*=23\"]],\n [\"vmxon\", [\"\", \"*=23\"]],\n [\"vorpd\", [\"\", \"*=90+99+100\"]],\n [\"vorps\", [\"\", \"*=90+99+100\"]],\n [\"vp2intersectd\", [\"\", \"*=124+125\"]],\n [\"vp2intersectq\", [\"\", \"*=124+125\"]],\n [\"vpabsb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpabsd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpabsq\", [\"\", \"*=91+92\"]],\n [\"vpabsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpackssdw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpacksswb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpackusdw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpackuswb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpaddb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpaddd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpaddq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpaddsb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpaddsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpaddusb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpaddusw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpaddw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpalignr\", [\"\", \"*=90+102+107+108\"]],\n [\"vpand\", [\"\", \"*=90+102\"]],\n [\"vpandd\", [\"\", \"*=91+92\"]],\n [\"vpandn\", [\"\", \"*=90+102\"]],\n [\"vpandnd\", [\"\", \"*=91+92\"]],\n [\"vpandnq\", [\"\", \"*=91+92\"]],\n [\"vpandq\", [\"\", \"*=91+92\"]],\n [\"vpavgb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpavgw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpblendd\", [\"\", \"*=102\"]],\n [\"vpblendmb\", [\"\", \"*=107+108\"]],\n [\"vpblendmd\", [\"\", \"*=91+92\"]],\n [\"vpblendmq\", [\"\", \"*=91+92\"]],\n [\"vpblendmw\", [\"\", \"*=107+108\"]],\n [\"vpblendvb\", [\"\", \"*=90+102\"]],\n [\"vpblendw\", [\"\", \"*=90+102\"]],\n [\"vpbroadcastb\", [\"\", \"*=102+107+108\"]],\n [\"vpbroadcastd\", [\"\", \"*=91+92+102\"]],\n [\"vpbroadcastmb2q\", [\"\", \"*=126+127\"]],\n [\"vpbroadcastmw2d\", [\"\", \"*=126+127\"]],\n [\"vpbroadcastq\", [\"\", \"*=91+92+102\"]],\n [\"vpbroadcastw\", [\"\", \"*=102+107+108\"]],\n [\"vpclmulhqhqdq\", [\"\", \"*=90+128+129+130\"]],\n [\"vpclmulhqlqdq\", [\"\", \"*=90+128+129+130\"]],\n [\"vpclmullqhqdq\", [\"\", \"*=90+128+129+130\"]],\n [\"vpclmullqlqdq\", [\"\", \"*=90+128+129+130\"]],\n [\"vpclmulqdq\", [\"\", \"*=90+128+129+130\"]],\n [\"vpcmov\", [\"\", \"*=116\"]],\n [\"vpcmpb\", [\"\", \"*=107+108\"]],\n [\"vpcmpd\", [\"\", \"*=91+92\"]],\n [\"vpcmpeqb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpcmpeqd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpcmpeqq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpcmpequb\", [\"\", \"*=107+108\"]],\n [\"vpcmpequd\", [\"\", \"*=91+92\"]],\n [\"vpcmpequq\", [\"\", \"*=91+92\"]],\n [\"vpcmpequw\", [\"\", \"*=107+108\"]],\n [\"vpcmpeqw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpcmpestri\", [\"\", \"*=90\"]],\n [\"vpcmpestrm\", [\"\", \"*=90\"]],\n [\"vpcmpgeb\", [\"\", \"*=107+108\"]],\n [\"vpcmpged\", [\"\", \"*=91+92\"]],\n [\"vpcmpgeq\", [\"\", \"*=91+92\"]],\n [\"vpcmpgeub\", [\"\", \"*=107+108\"]],\n [\"vpcmpgeud\", [\"\", \"*=91+92\"]],\n [\"vpcmpgeuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpgeuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpgew\", [\"\", \"*=107+108\"]],\n [\"vpcmpgtb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpcmpgtd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpcmpgtq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpcmpgtub\", [\"\", \"*=107+108\"]],\n [\"vpcmpgtud\", [\"\", \"*=91+92\"]],\n [\"vpcmpgtuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpgtuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpgtw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpcmpistri\", [\"\", \"*=90\"]],\n [\"vpcmpistrm\", [\"\", \"*=90\"]],\n [\"vpcmpleb\", [\"\", \"*=107+108\"]],\n [\"vpcmpled\", [\"\", \"*=91+92\"]],\n [\"vpcmpleq\", [\"\", \"*=91+92\"]],\n [\"vpcmpleub\", [\"\", \"*=107+108\"]],\n [\"vpcmpleud\", [\"\", \"*=91+92\"]],\n [\"vpcmpleuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpleuw\", [\"\", \"*=107+108\"]],\n [\"vpcmplew\", [\"\", \"*=107+108\"]],\n [\"vpcmpltb\", [\"\", \"*=107+108\"]],\n [\"vpcmpltd\", [\"\", \"*=91+92\"]],\n [\"vpcmpltq\", [\"\", \"*=91+92\"]],\n [\"vpcmpltub\", [\"\", \"*=107+108\"]],\n [\"vpcmpltud\", [\"\", \"*=91+92\"]],\n [\"vpcmpltuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpltuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpltw\", [\"\", \"*=107+108\"]],\n [\"vpcmpneqb\", [\"\", \"*=107+108\"]],\n [\"vpcmpneqd\", [\"\", \"*=91+92\"]],\n [\"vpcmpneqq\", [\"\", \"*=91+92\"]],\n [\"vpcmpnequb\", [\"\", \"*=107+108\"]],\n [\"vpcmpnequd\", [\"\", \"*=91+92\"]],\n [\"vpcmpnequq\", [\"\", \"*=91+92\"]],\n [\"vpcmpnequw\", [\"\", \"*=107+108\"]],\n [\"vpcmpneqw\", [\"\", \"*=107+108\"]],\n [\"vpcmpngtb\", [\"\", \"*=107+108\"]],\n [\"vpcmpngtd\", [\"\", \"*=91+92\"]],\n [\"vpcmpngtq\", [\"\", \"*=91+92\"]],\n [\"vpcmpngtub\", [\"\", \"*=107+108\"]],\n [\"vpcmpngtud\", [\"\", \"*=91+92\"]],\n [\"vpcmpngtuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpngtuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpngtw\", [\"\", \"*=107+108\"]],\n [\"vpcmpnleb\", [\"\", \"*=107+108\"]],\n [\"vpcmpnled\", [\"\", \"*=91+92\"]],\n [\"vpcmpnleq\", [\"\", \"*=91+92\"]],\n [\"vpcmpnleub\", [\"\", \"*=107+108\"]],\n [\"vpcmpnleud\", [\"\", \"*=91+92\"]],\n [\"vpcmpnleuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpnleuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpnlew\", [\"\", \"*=107+108\"]],\n [\"vpcmpnltb\", [\"\", \"*=107+108\"]],\n [\"vpcmpnltd\", [\"\", \"*=91+92\"]],\n [\"vpcmpnltq\", [\"\", \"*=91+92\"]],\n [\"vpcmpnltub\", [\"\", \"*=107+108\"]],\n [\"vpcmpnltud\", [\"\", \"*=91+92\"]],\n [\"vpcmpnltuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpnltuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpnltw\", [\"\", \"*=107+108\"]],\n [\"vpcmpq\", [\"\", \"*=91+92\"]],\n [\"vpcmpub\", [\"\", \"*=107+108\"]],\n [\"vpcmpud\", [\"\", \"*=91+92\"]],\n [\"vpcmpuq\", [\"\", \"*=91+92\"]],\n [\"vpcmpuw\", [\"\", \"*=107+108\"]],\n [\"vpcmpw\", [\"\", \"*=107+108\"]],\n [\"vpcomb\", [\"\", \"*=116\"]],\n [\"vpcomd\", [\"\", \"*=116\"]],\n [\"vpcompressb\", [\"\", \"*=131+132\"]],\n [\"vpcompressd\", [\"\", \"*=91+92\"]],\n [\"vpcompressq\", [\"\", \"*=91+92\"]],\n [\"vpcompressw\", [\"\", \"*=131+132\"]],\n [\"vpcomq\", [\"\", \"*=116\"]],\n [\"vpcomub\", [\"\", \"*=116\"]],\n [\"vpcomud\", [\"\", \"*=116\"]],\n [\"vpcomuq\", [\"\", \"*=116\"]],\n [\"vpcomuw\", [\"\", \"*=116\"]],\n [\"vpcomw\", [\"\", \"*=116\"]],\n [\"vpconflictd\", [\"\", \"*=126+127\"]],\n [\"vpconflictq\", [\"\", \"*=126+127\"]],\n [\"vpdpbssd\", [\"\", \"*=133+134\"]],\n [\"vpdpbssds\", [\"\", \"*=133+134\"]],\n [\"vpdpbsud\", [\"\", \"*=133+134\"]],\n [\"vpdpbsuds\", [\"\", \"*=133+134\"]],\n [\"vpdpbusd\", [\"\", \"*=135+136\"]],\n [\"vpdpbusds\", [\"\", \"*=135+136\"]],\n [\"vpdpbuud\", [\"\", \"*=133+134\"]],\n [\"vpdpbuuds\", [\"\", \"*=133+134\"]],\n [\"vpdpwssd\", [\"\", \"*=135+136\"]],\n [\"vpdpwssds\", [\"\", \"*=135+136\"]],\n [\"vpdpwsud\", [\"\", \"*=134\"]],\n [\"vpdpwsuds\", [\"\", \"*=134\"]],\n [\"vpdpwusd\", [\"\", \"*=134\"]],\n [\"vpdpwusds\", [\"\", \"*=134\"]],\n [\"vpdpwuud\", [\"\", \"*=134\"]],\n [\"vpdpwuuds\", [\"\", \"*=134\"]],\n [\"vperm2f128\", [\"\", \"*=90\"]],\n [\"vperm2i128\", [\"\", \"*=102\"]],\n [\"vpermb\", [\"\", \"*=137+138\"]],\n [\"vpermd\", [\"\", \"*=91+92+102\"]],\n [\"vpermi2b\", [\"\", \"*=137+138\"]],\n [\"vpermi2d\", [\"\", \"*=91+92\"]],\n [\"vpermi2pd\", [\"\", \"*=91+92\"]],\n [\"vpermi2ps\", [\"\", \"*=91+92\"]],\n [\"vpermi2q\", [\"\", \"*=91+92\"]],\n [\"vpermi2w\", [\"\", \"*=107+108\"]],\n [\"vpermilpd\", [\"\", \"*=90+91+92\"]],\n [\"vpermilps\", [\"\", \"*=90+91+92\"]],\n [\"vpermpd\", [\"\", \"*=91+92+102\"]],\n [\"vpermps\", [\"\", \"*=91+92+102\"]],\n [\"vpermq\", [\"\", \"*=91+92+102\"]],\n [\"vpermt2b\", [\"\", \"*=137+138\"]],\n [\"vpermt2d\", [\"\", \"*=91+92\"]],\n [\"vpermt2pd\", [\"\", \"*=91+92\"]],\n [\"vpermt2ps\", [\"\", \"*=91+92\"]],\n [\"vpermt2q\", [\"\", \"*=91+92\"]],\n [\"vpermt2w\", [\"\", \"*=107+108\"]],\n [\"vpermw\", [\"\", \"*=107+108\"]],\n [\"vpexpandb\", [\"\", \"*=131+132\"]],\n [\"vpexpandd\", [\"\", \"*=91+92\"]],\n [\"vpexpandq\", [\"\", \"*=91+92\"]],\n [\"vpexpandw\", [\"\", \"*=131+132\"]],\n [\"vpextrb\", [\"\", \"*=90+108\"]],\n [\"vpextrd\", [\"\", \"*=90+100\"]],\n [\"vpextrq\", [\"\", \"*=90+100\"]],\n [\"vpextrw\", [\"\", \"*=90+108\"]],\n [\"vpgatherdd\", [\"\", \"*=117+118+119\"]],\n [\"vpgatherdq\", [\"\", \"*=117+118+119\"]],\n [\"vpgatherqd\", [\"\", \"*=117+118+119\"]],\n [\"vpgatherqq\", [\"\", \"*=117+118+119\"]],\n [\"vphaddbd\", [\"\", \"*=116\"]],\n [\"vphaddbq\", [\"\", \"*=116\"]],\n [\"vphaddbw\", [\"\", \"*=116\"]],\n [\"vphaddd\", [\"\", \"*=90+102\"]],\n [\"vphadddq\", [\"\", \"*=116\"]],\n [\"vphaddsw\", [\"\", \"*=90+102\"]],\n [\"vphaddubd\", [\"\", \"*=116\"]],\n [\"vphaddubq\", [\"\", \"*=116\"]],\n [\"vphaddubw\", [\"\", \"*=116\"]],\n [\"vphaddudq\", [\"\", \"*=116\"]],\n [\"vphadduwd\", [\"\", \"*=116\"]],\n [\"vphadduwq\", [\"\", \"*=116\"]],\n [\"vphaddw\", [\"\", \"*=90+102\"]],\n [\"vphaddwd\", [\"\", \"*=116\"]],\n [\"vphaddwq\", [\"\", \"*=116\"]],\n [\"vphminposuw\", [\"\", \"*=90\"]],\n [\"vphsubbw\", [\"\", \"*=116\"]],\n [\"vphsubd\", [\"\", \"*=90+102\"]],\n [\"vphsubdq\", [\"\", \"*=116\"]],\n [\"vphsubsw\", [\"\", \"*=90+102\"]],\n [\"vphsubw\", [\"\", \"*=90+102\"]],\n [\"vphsubwd\", [\"\", \"*=116\"]],\n [\"vpinsrb\", [\"\", \"*=90+108\"]],\n [\"vpinsrd\", [\"\", \"*=90+100\"]],\n [\"vpinsrq\", [\"\", \"*=90+100\"]],\n [\"vpinsrw\", [\"\", \"*=90+108\"]],\n [\"vplzcntd\", [\"\", \"*=126+127\"]],\n [\"vplzcntq\", [\"\", \"*=126+127\"]],\n [\"vpmacsdd\", [\"\", \"*=116\"]],\n [\"vpmacsdqh\", [\"\", \"*=116\"]],\n [\"vpmacsdql\", [\"\", \"*=116\"]],\n [\"vpmacssdd\", [\"\", \"*=116\"]],\n [\"vpmacssdqh\", [\"\", \"*=116\"]],\n [\"vpmacssdql\", [\"\", \"*=116\"]],\n [\"vpmacsswd\", [\"\", \"*=116\"]],\n [\"vpmacssww\", [\"\", \"*=116\"]],\n [\"vpmacswd\", [\"\", \"*=116\"]],\n [\"vpmacsww\", [\"\", \"*=116\"]],\n [\"vpmadcsswd\", [\"\", \"*=116\"]],\n [\"vpmadcswd\", [\"\", \"*=116\"]],\n [\"vpmadd132ph\", [\"\", \"*=95+103\"]],\n [\"vpmadd132sh\", [\"\", \"*=95\"]],\n [\"vpmadd213ph\", [\"\", \"*=95+103\"]],\n [\"vpmadd213sh\", [\"\", \"*=95\"]],\n [\"vpmadd231ph\", [\"\", \"*=95+103\"]],\n [\"vpmadd231sh\", [\"\", \"*=95\"]],\n [\"vpmadd52huq\", [\"\", \"*=139+140+141\"]],\n [\"vpmadd52luq\", [\"\", \"*=139+140+141\"]],\n [\"vpmaddubsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmaddwd\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmaskmovd\", [\"\", \"*=102\"]],\n [\"vpmaskmovq\", [\"\", \"*=102\"]],\n [\"vpmaxsb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmaxsd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmaxsq\", [\"\", \"*=91+92\"]],\n [\"vpmaxsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmaxub\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmaxud\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmaxuq\", [\"\", \"*=91+92\"]],\n [\"vpmaxuw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpminsb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpminsd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpminsq\", [\"\", \"*=91+92\"]],\n [\"vpminsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpminub\", [\"\", \"*=90+102+107+108\"]],\n [\"vpminud\", [\"\", \"*=90+91+92+102\"]],\n [\"vpminuq\", [\"\", \"*=91+92\"]],\n [\"vpminuw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmovb2m\", [\"\", \"*=107+108\"]],\n [\"vpmovd2m\", [\"\", \"*=99+100\"]],\n [\"vpmovdb\", [\"\", \"*=91+92\"]],\n [\"vpmovdw\", [\"\", \"*=91+92\"]],\n [\"vpmovm2b\", [\"\", \"*=107+108\"]],\n [\"vpmovm2d\", [\"\", \"*=99+100\"]],\n [\"vpmovm2q\", [\"\", \"*=99+100\"]],\n [\"vpmovm2w\", [\"\", \"*=107+108\"]],\n [\"vpmovmskb\", [\"\", \"*=90+102\"]],\n [\"vpmovq2m\", [\"\", \"*=99+100\"]],\n [\"vpmovqb\", [\"\", \"*=91+92\"]],\n [\"vpmovqd\", [\"\", \"*=91+92\"]],\n [\"vpmovqw\", [\"\", \"*=91+92\"]],\n [\"vpmovsdb\", [\"\", \"*=91+92\"]],\n [\"vpmovsdw\", [\"\", \"*=91+92\"]],\n [\"vpmovsqb\", [\"\", \"*=91+92\"]],\n [\"vpmovsqd\", [\"\", \"*=91+92\"]],\n [\"vpmovsqw\", [\"\", \"*=91+92\"]],\n [\"vpmovswb\", [\"\", \"*=107+108\"]],\n [\"vpmovsxbd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovsxbq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovsxbw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmovsxdq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovsxwd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovsxwq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovusdb\", [\"\", \"*=91+92\"]],\n [\"vpmovusdw\", [\"\", \"*=91+92\"]],\n [\"vpmovusqb\", [\"\", \"*=91+92\"]],\n [\"vpmovusqd\", [\"\", \"*=91+92\"]],\n [\"vpmovusqw\", [\"\", \"*=91+92\"]],\n [\"vpmovuswb\", [\"\", \"*=107+108\"]],\n [\"vpmovw2m\", [\"\", \"*=107+108\"]],\n [\"vpmovwb\", [\"\", \"*=107+108\"]],\n [\"vpmovzxbd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovzxbq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovzxbw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmovzxdq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovzxwd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmovzxwq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmsub132ph\", [\"\", \"*=95+103\"]],\n [\"vpmsub132sh\", [\"\", \"*=95\"]],\n [\"vpmsub213ph\", [\"\", \"*=95+103\"]],\n [\"vpmsub213sh\", [\"\", \"*=95\"]],\n [\"vpmsub231ph\", [\"\", \"*=95+103\"]],\n [\"vpmsub231sh\", [\"\", \"*=95\"]],\n [\"vpmuldq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmulhrsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmulhuw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmulhw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmulld\", [\"\", \"*=90+91+92+102\"]],\n [\"vpmullq\", [\"\", \"*=99+100\"]],\n [\"vpmullw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpmultishiftqb\", [\"\", \"*=137+138\"]],\n [\"vpmuludq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpnmadd132sh\", [\"\", \"*=95\"]],\n [\"vpnmadd213sh\", [\"\", \"*=95\"]],\n [\"vpnmadd231sh\", [\"\", \"*=95\"]],\n [\"vpnmsub132sh\", [\"\", \"*=95\"]],\n [\"vpnmsub213sh\", [\"\", \"*=95\"]],\n [\"vpnmsub231sh\", [\"\", \"*=95\"]],\n [\"vpopcntb\", [\"\", \"*=142+143\"]],\n [\"vpopcntd\", [\"\", \"*=144+145\"]],\n [\"vpopcntq\", [\"\", \"*=144+145\"]],\n [\"vpopcntw\", [\"\", \"*=142+143\"]],\n [\"vpor\", [\"\", \"*=90+102\"]],\n [\"vpord\", [\"\", \"*=91+92\"]],\n [\"vporq\", [\"\", \"*=91+92\"]],\n [\"vpperm\", [\"\", \"*=116\"]],\n [\"vprold\", [\"\", \"*=91+92\"]],\n [\"vprolq\", [\"\", \"*=91+92\"]],\n [\"vprolvd\", [\"\", \"*=91+92\"]],\n [\"vprolvq\", [\"\", \"*=91+92\"]],\n [\"vprord\", [\"\", \"*=91+92\"]],\n [\"vprorq\", [\"\", \"*=91+92\"]],\n [\"vprorvd\", [\"\", \"*=91+92\"]],\n [\"vprorvq\", [\"\", \"*=91+92\"]],\n [\"vprotb\", [\"\", \"*=116\"]],\n [\"vprotd\", [\"\", \"*=116\"]],\n [\"vprotq\", [\"\", \"*=116\"]],\n [\"vprotw\", [\"\", \"*=116\"]],\n [\"vpsadbw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpscatterdd\", [\"\", \"*=118+119\"]],\n [\"vpscatterdq\", [\"\", \"*=118+119\"]],\n [\"vpscatterqd\", [\"\", \"*=118+119\"]],\n [\"vpscatterqq\", [\"\", \"*=118+119\"]],\n [\"vpshab\", [\"\", \"*=116\"]],\n [\"vpshad\", [\"\", \"*=116\"]],\n [\"vpshaq\", [\"\", \"*=116\"]],\n [\"vpshaw\", [\"\", \"*=116\"]],\n [\"vpshlb\", [\"\", \"*=116\"]],\n [\"vpshld\", [\"\", \"*=116\"]],\n [\"vpshldd\", [\"\", \"*=131+132\"]],\n [\"vpshldq\", [\"\", \"*=131+132\"]],\n [\"vpshldvd\", [\"\", \"*=131+132\"]],\n [\"vpshldvq\", [\"\", \"*=131+132\"]],\n [\"vpshldvw\", [\"\", \"*=131+132\"]],\n [\"vpshldw\", [\"\", \"*=131+132\"]],\n [\"vpshlq\", [\"\", \"*=116\"]],\n [\"vpshlw\", [\"\", \"*=116\"]],\n [\"vpshrdd\", [\"\", \"*=131+132\"]],\n [\"vpshrdq\", [\"\", \"*=131+132\"]],\n [\"vpshrdvd\", [\"\", \"*=131+132\"]],\n [\"vpshrdvq\", [\"\", \"*=131+132\"]],\n [\"vpshrdvw\", [\"\", \"*=131+132\"]],\n [\"vpshrdw\", [\"\", \"*=131+132\"]],\n [\"vpshufb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpshufbitqmb\", [\"\", \"*=142+143\"]],\n [\"vpshufd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpshufhw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpshuflw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsignb\", [\"\", \"*=90+102\"]],\n [\"vpsignd\", [\"\", \"*=90+102\"]],\n [\"vpsignw\", [\"\", \"*=90+102\"]],\n [\"vpslld\", [\"\", \"*=90+91+92+102\"]],\n [\"vpslldq\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsllq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpsllvd\", [\"\", \"*=91+92+102\"]],\n [\"vpsllvq\", [\"\", \"*=91+92+102\"]],\n [\"vpsllvw\", [\"\", \"*=107+108\"]],\n [\"vpsllw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsrad\", [\"\", \"*=90+91+92+102\"]],\n [\"vpsraq\", [\"\", \"*=91+92\"]],\n [\"vpsravd\", [\"\", \"*=91+92+102\"]],\n [\"vpsravq\", [\"\", \"*=91+92\"]],\n [\"vpsravw\", [\"\", \"*=107+108\"]],\n [\"vpsraw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsrld\", [\"\", \"*=90+91+92+102\"]],\n [\"vpsrldq\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsrlq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpsrlvd\", [\"\", \"*=91+92+102\"]],\n [\"vpsrlvq\", [\"\", \"*=91+92+102\"]],\n [\"vpsrlvw\", [\"\", \"*=107+108\"]],\n [\"vpsrlw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsubb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsubd\", [\"\", \"*=90+91+92+102\"]],\n [\"vpsubq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpsubsb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsubsw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsubusb\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsubusw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpsubw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpternlogd\", [\"\", \"*=91+92\"]],\n [\"vpternlogq\", [\"\", \"*=91+92\"]],\n [\"vptest\", [\"\", \"*=90\"]],\n [\"vptestmb\", [\"\", \"*=107+108\"]],\n [\"vptestmd\", [\"\", \"*=91+92\"]],\n [\"vptestmq\", [\"\", \"*=91+92\"]],\n [\"vptestmw\", [\"\", \"*=107+108\"]],\n [\"vptestnmb\", [\"\", \"*=107+108\"]],\n [\"vptestnmd\", [\"\", \"*=91+92\"]],\n [\"vptestnmq\", [\"\", \"*=91+92\"]],\n [\"vptestnmw\", [\"\", \"*=107+108\"]],\n [\"vpunpckhbw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpunpckhdq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpunpckhqdq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpunpckhwd\", [\"\", \"*=90+102+107+108\"]],\n [\"vpunpcklbw\", [\"\", \"*=90+102+107+108\"]],\n [\"vpunpckldq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpunpcklqdq\", [\"\", \"*=90+91+92+102\"]],\n [\"vpunpcklwd\", [\"\", \"*=90+102+107+108\"]],\n [\"vpxor\", [\"\", \"*=90+102\"]],\n [\"vpxord\", [\"\", \"*=91+92\"]],\n [\"vpxorq\", [\"\", \"*=91+92\"]],\n [\"vrangepd\", [\"\", \"*=99+100\"]],\n [\"vrangeps\", [\"\", \"*=99+100\"]],\n [\"vrangesd\", [\"\", \"*=100\"]],\n [\"vrangess\", [\"\", \"*=100\"]],\n [\"vrcp14pd\", [\"\", \"*=91+92\"]],\n [\"vrcp14ps\", [\"\", \"*=91+92\"]],\n [\"vrcp14sd\", [\"\", \"*=92\"]],\n [\"vrcp14ss\", [\"\", \"*=92\"]],\n [\"vrcp28pd\", [\"\", \"*=109\"]],\n [\"vrcp28ps\", [\"\", \"*=109\"]],\n [\"vrcp28sd\", [\"\", \"*=109\"]],\n [\"vrcp28ss\", [\"\", \"*=109\"]],\n [\"vrcpbf16\", [\"\", \"*=89\"]],\n [\"vrcpph\", [\"\", \"*=95+103\"]],\n [\"vrcpps\", [\"\", \"*=90\"]],\n [\"vrcpsh\", [\"\", \"*=95\"]],\n [\"vrcpss\", [\"\", \"*=90\"]],\n [\"vreducebf16\", [\"\", \"*=89\"]],\n [\"vreducepd\", [\"\", \"*=99+100\"]],\n [\"vreduceph\", [\"\", \"*=95+103\"]],\n [\"vreduceps\", [\"\", \"*=99+100\"]],\n [\"vreducesd\", [\"\", \"*=100\"]],\n [\"vreducesh\", [\"\", \"*=95\"]],\n [\"vreducess\", [\"\", \"*=100\"]],\n [\"vrndscalebf16\", [\"\", \"*=89\"]],\n [\"vrndscalepd\", [\"\", \"*=91+92\"]],\n [\"vrndscaleph\", [\"\", \"*=95+103\"]],\n [\"vrndscaleps\", [\"\", \"*=91+92\"]],\n [\"vrndscalesd\", [\"\", \"*=92\"]],\n [\"vrndscalesh\", [\"\", \"*=95\"]],\n [\"vrndscaless\", [\"\", \"*=92\"]],\n [\"vroundpd\", [\"\", \"*=90\"]],\n [\"vroundps\", [\"\", \"*=90\"]],\n [\"vroundsd\", [\"\", \"*=90\"]],\n [\"vroundss\", [\"\", \"*=90\"]],\n [\"vrsqrt14pd\", [\"\", \"*=91+92\"]],\n [\"vrsqrt14ps\", [\"\", \"*=91+92\"]],\n [\"vrsqrt14sd\", [\"\", \"*=92\"]],\n [\"vrsqrt14ss\", [\"\", \"*=92\"]],\n [\"vrsqrt28pd\", [\"\", \"*=109\"]],\n [\"vrsqrt28ps\", [\"\", \"*=109\"]],\n [\"vrsqrt28sd\", [\"\", \"*=109\"]],\n [\"vrsqrt28ss\", [\"\", \"*=109\"]],\n [\"vrsqrtbf16\", [\"\", \"*=89\"]],\n [\"vrsqrtph\", [\"\", \"*=95+103\"]],\n [\"vrsqrtps\", [\"\", \"*=90\"]],\n [\"vrsqrtsh\", [\"\", \"*=95\"]],\n [\"vrsqrtss\", [\"\", \"*=90\"]],\n [\"vscalefbf16\", [\"\", \"*=89\"]],\n [\"vscalefpd\", [\"\", \"*=91+92\"]],\n [\"vscalefph\", [\"\", \"*=95+103\"]],\n [\"vscalefps\", [\"\", \"*=91+92\"]],\n [\"vscalefsd\", [\"\", \"*=92\"]],\n [\"vscalefsh\", [\"\", \"*=95\"]],\n [\"vscalefss\", [\"\", \"*=92\"]],\n [\"vscatterdpd\", [\"\", \"*=118+119\"]],\n [\"vscatterdps\", [\"\", \"*=118+119\"]],\n [\"vscatterpf0dpd\", [\"\", \"*=120\"]],\n [\"vscatterpf0dps\", [\"\", \"*=120\"]],\n [\"vscatterpf0qpd\", [\"\", \"*=120\"]],\n [\"vscatterpf0qps\", [\"\", \"*=120\"]],\n [\"vscatterpf1dpd\", [\"\", \"*=120\"]],\n [\"vscatterpf1dps\", [\"\", \"*=120\"]],\n [\"vscatterpf1qpd\", [\"\", \"*=120\"]],\n [\"vscatterpf1qps\", [\"\", \"*=120\"]],\n [\"vscatterqpd\", [\"\", \"*=118+119\"]],\n [\"vscatterqps\", [\"\", \"*=118+119\"]],\n [\"vsha512msg1\", [\"\", \"*=146\"]],\n [\"vsha512msg2\", [\"\", \"*=146\"]],\n [\"vsha512rnds2\", [\"\", \"*=146\"]],\n [\"vshuff32x4\", [\"\", \"*=91+92\"]],\n [\"vshuff64x2\", [\"\", \"*=91+92\"]],\n [\"vshufi32x4\", [\"\", \"*=91+92\"]],\n [\"vshufi64x2\", [\"\", \"*=91+92\"]],\n [\"vshufpd\", [\"\", \"*=90+91+92\"]],\n [\"vshufps\", [\"\", \"*=90+91+92\"]],\n [\"vsm3msg1\", [\"\", \"*=147\"]],\n [\"vsm3msg2\", [\"\", \"*=147\"]],\n [\"vsm3rnds2\", [\"\", \"*=147\"]],\n [\"vsm4key4\", [\"\", \"*=148+149\"]],\n [\"vsm4rnds4\", [\"\", \"*=148+149\"]],\n [\"vsqrtbf16\", [\"\", \"*=89\"]],\n [\"vsqrtpd\", [\"\", \"*=90+91+92\"]],\n [\"vsqrtph\", [\"\", \"*=95+103\"]],\n [\"vsqrtps\", [\"\", \"*=90+91+92\"]],\n [\"vsqrtsd\", [\"\", \"*=90+92\"]],\n [\"vsqrtsh\", [\"\", \"*=95\"]],\n [\"vsqrtss\", [\"\", \"*=90+92\"]],\n [\"vstmxcsr\", [\"\", \"*=90\"]],\n [\"vsubbf16\", [\"\", \"*=89\"]],\n [\"vsubpd\", [\"\", \"*=90+91+92\"]],\n [\"vsubph\", [\"\", \"*=95+103\"]],\n [\"vsubps\", [\"\", \"*=90+91+92\"]],\n [\"vsubsd\", [\"\", \"*=90+92\"]],\n [\"vsubsh\", [\"\", \"*=95\"]],\n [\"vsubss\", [\"\", \"*=90+92\"]],\n [\"vtestpd\", [\"\", \"*=90\"]],\n [\"vtestps\", [\"\", \"*=90\"]],\n [\"vucomisd\", [\"\", \"*=90+92\"]],\n [\"vucomish\", [\"\", \"*=95\"]],\n [\"vucomiss\", [\"\", \"*=90+92\"]],\n [\"vucomxsd\", [\"\", \"*=89\"]],\n [\"vucomxsh\", [\"\", \"*=89\"]],\n [\"vucomxss\", [\"\", \"*=89\"]],\n [\"vunpckhpd\", [\"\", \"*=90+91+92\"]],\n [\"vunpckhps\", [\"\", \"*=90+91+92\"]],\n [\"vunpcklpd\", [\"\", \"*=90+91+92\"]],\n [\"vunpcklps\", [\"\", \"*=90+91+92\"]],\n [\"vxorpd\", [\"\", \"*=90+99+100\"]],\n [\"vxorps\", [\"\", \"*=90+99+100\"]],\n [\"vzeroall\", [\"\", \"*=90\"]],\n [\"vzeroupper\", [\"\", \"*=90\"]],\n [\"wbinvd\", [\"\", \"*=25\"]],\n [\"wbnoinvd\", [\"\", \"*=150\"]],\n [\"wrfsbase\", [\"\", \"*=18\"]],\n [\"wrgsbase\", [\"\", \"*=18\"]],\n [\"wrmsr\", [\"\", \"*=25\"]],\n [\"wrmsrlist\", [\"\", \"*=72\"]],\n [\"wrmsrns\", [\"\", \"*=71+151\"]],\n [\"wrpkru\", [\"\", \"*=74\"]],\n [\"wrshr\", [\"\", \"*=77\"]],\n [\"wrssd\", [\"\", \"*=24+152\"]],\n [\"wrssq\", [\"\", \"*=24+152\"]],\n [\"wrussd\", [\"\", \"*=24+152\"]],\n [\"wrussq\", [\"\", \"*=24+152\"]],\n [\"xabort\", [\"\", \"*=153\"]],\n [\"xadd\", [\"gm,g\", \"\"]],\n [\"xbegin\", [\"\", \"*=153\"]],\n [\"xbts\", [\"\", \"*=31\"]],\n [\"xchg\", [\"g,g|g,gm|gm,g\", \"\"]],\n [\"xcryptcbc\", [\"\", \"*=18\"]],\n [\"xcryptcfb\", [\"\", \"*=18\"]],\n [\"xcryptctr\", [\"\", \"*=18\"]],\n [\"xcryptecb\", [\"\", \"*=18\"]],\n [\"xcryptofb\", [\"\", \"*=18\"]],\n [\"xend\", [\"\", \"*=153\"]],\n [\"xgetbv\", [\"\", \"*=18\"]],\n [\"xlat\", [\"_\", \"\"]],\n [\"xlatb\", [\"_\", \"\"]],\n [\"xnor\", [\"\", \"*=6+7+11\"]],\n [\"xnorb\", [\"\", \"*=6\"]],\n [\"xnord\", [\"\", \"*=7\"]],\n [\"xnorq\", [\"\", \"*=7\"]],\n [\"xnorw\", [\"\", \"*=11\"]],\n [\"xor\", [\"g,i|g,gm|gm,g|gm,i\", \"-,-=6+7+11|-,-,-=6+7+11|g,g,gm=3|g,gm,g=3|g,gm,i=3\"]],\n [\"xorb\", [\"\", \"*=6\"]],\n [\"xord\", [\"\", \"*=7\"]],\n [\"xorpd\", [\"x,xm\", \"\"]],\n [\"xorps\", [\"x,xm\", \"\"]],\n [\"xorq\", [\"\", \"*=7\"]],\n [\"xorw\", [\"\", \"*=11\"]],\n [\"xresldtrk\", [\"\", \"*=154\"]],\n [\"xrstor\", [\"\", \"*=18\"]],\n [\"xrstor64\", [\"\", \"*=18\"]],\n [\"xrstors\", [\"\", \"*=18\"]],\n [\"xrstors64\", [\"\", \"*=18\"]],\n [\"xsave\", [\"\", \"*=18\"]],\n [\"xsave64\", [\"\", \"*=18\"]],\n [\"xsavec\", [\"\", \"*=18\"]],\n [\"xsavec64\", [\"\", \"*=18\"]],\n [\"xsaveopt\", [\"\", \"*=18\"]],\n [\"xsaveopt64\", [\"\", \"*=18\"]],\n [\"xsaves\", [\"\", \"*=18\"]],\n [\"xsaves64\", [\"\", \"*=18\"]],\n [\"xsetbv\", [\"\", \"*=25\"]],\n [\"xsha1\", [\"\", \"*=18\"]],\n [\"xsha256\", [\"\", \"*=18\"]],\n [\"xstore\", [\"\", \"*=18\"]],\n [\"xsusldtrk\", [\"\", \"*=154\"]],\n [\"xtest\", [\"\", \"*=153\"]],\n])\n","/**\n * Every name NASM 3.00 reads as an instruction, register, keyword, directive or standard\n * macro, lowercased and sorted: the names the compiler-output translator `$`-escapes a symbol from.\n *\n * Generated by `node scripts/generate-nasm-reserved-names.mjs`; edit that script, never this file.\n *\n * Sources: NASM 3.00 (`../wasm_nasm/nasm`, downloaded by `compile_wasm_nasm.sh`):\n * `x86/insnsn.c`, `x86/regs.dat`, `asm/tokens.dat`, `asm/directiv.dat` and `macros/standard.mac`,\n * SPDX-License-Identifier: BSD-2-Clause, Copyright 1996-2025 The NASM Authors.\n */\n\n/** The NASM release the tables were read from. */\nexport const NASM_RESERVED_VERSION = \"3.00\"\n\n/** Every register name NASM reads (`x86/regs.dat`). */\nexport const NASM_REGISTERS: readonly string[] = [\n \"ah\", \"al\", \"ax\", \"bh\", \"bl\", \"bnd0\", \"bnd1\", \"bnd2\", \"bnd3\", \"bp\",\n \"bpl\", \"bx\", \"ch\", \"cl\", \"cr0\", \"cr1\", \"cr10\", \"cr11\", \"cr12\", \"cr13\",\n \"cr14\", \"cr15\", \"cr16\", \"cr17\", \"cr18\", \"cr19\", \"cr2\", \"cr20\", \"cr21\", \"cr22\",\n \"cr23\", \"cr24\", \"cr25\", \"cr26\", \"cr27\", \"cr28\", \"cr29\", \"cr3\", \"cr30\", \"cr31\",\n \"cr4\", \"cr5\", \"cr6\", \"cr7\", \"cr8\", \"cr9\", \"cs\", \"cx\", \"dh\", \"di\",\n \"dil\", \"dl\", \"dr0\", \"dr1\", \"dr10\", \"dr11\", \"dr12\", \"dr13\", \"dr14\", \"dr15\",\n \"dr16\", \"dr17\", \"dr18\", \"dr19\", \"dr2\", \"dr20\", \"dr21\", \"dr22\", \"dr23\", \"dr24\",\n \"dr25\", \"dr26\", \"dr27\", \"dr28\", \"dr29\", \"dr3\", \"dr30\", \"dr31\", \"dr4\", \"dr5\",\n \"dr6\", \"dr7\", \"dr8\", \"dr9\", \"ds\", \"dx\", \"eax\", \"ebp\", \"ebx\", \"ecx\",\n \"edi\", \"edx\", \"es\", \"esi\", \"esp\", \"fs\", \"gs\", \"k0\", \"k1\", \"k2\",\n \"k3\", \"k4\", \"k5\", \"k6\", \"k7\", \"mm0\", \"mm1\", \"mm2\", \"mm3\", \"mm4\",\n \"mm5\", \"mm6\", \"mm7\", \"r10\", \"r10b\", \"r10d\", \"r10w\", \"r11\", \"r11b\", \"r11d\",\n \"r11w\", \"r12\", \"r12b\", \"r12d\", \"r12w\", \"r13\", \"r13b\", \"r13d\", \"r13w\", \"r14\",\n \"r14b\", \"r14d\", \"r14w\", \"r15\", \"r15b\", \"r15d\", \"r15w\", \"r16\", \"r16b\", \"r16d\",\n \"r16w\", \"r17\", \"r17b\", \"r17d\", \"r17w\", \"r18\", \"r18b\", \"r18d\", \"r18w\", \"r19\",\n \"r19b\", \"r19d\", \"r19w\", \"r20\", \"r20b\", \"r20d\", \"r20w\", \"r21\", \"r21b\", \"r21d\",\n \"r21w\", \"r22\", \"r22b\", \"r22d\", \"r22w\", \"r23\", \"r23b\", \"r23d\", \"r23w\", \"r24\",\n \"r24b\", \"r24d\", \"r24w\", \"r25\", \"r25b\", \"r25d\", \"r25w\", \"r26\", \"r26b\", \"r26d\",\n \"r26w\", \"r27\", \"r27b\", \"r27d\", \"r27w\", \"r28\", \"r28b\", \"r28d\", \"r28w\", \"r29\",\n \"r29b\", \"r29d\", \"r29w\", \"r30\", \"r30b\", \"r30d\", \"r30w\", \"r31\", \"r31b\", \"r31d\",\n \"r31w\", \"r8\", \"r8b\", \"r8d\", \"r8w\", \"r9\", \"r9b\", \"r9d\", \"r9w\", \"rax\",\n \"rbp\", \"rbx\", \"rcx\", \"rdi\", \"rdx\", \"rsi\", \"rsp\", \"segr6\", \"segr7\", \"si\",\n \"sil\", \"sp\", \"spl\", \"ss\", \"st0\", \"st1\", \"st2\", \"st3\", \"st4\", \"st5\",\n \"st6\", \"st7\", \"tmm0\", \"tmm1\", \"tmm2\", \"tmm3\", \"tmm4\", \"tmm5\", \"tmm6\", \"tmm7\",\n \"tr0\", \"tr1\", \"tr2\", \"tr3\", \"tr4\", \"tr5\", \"tr6\", \"tr7\", \"xmm0\", \"xmm1\",\n \"xmm10\", \"xmm11\", \"xmm12\", \"xmm13\", \"xmm14\", \"xmm15\", \"xmm16\", \"xmm17\", \"xmm18\", \"xmm19\",\n \"xmm2\", \"xmm20\", \"xmm21\", \"xmm22\", \"xmm23\", \"xmm24\", \"xmm25\", \"xmm26\", \"xmm27\", \"xmm28\",\n \"xmm29\", \"xmm3\", \"xmm30\", \"xmm31\", \"xmm4\", \"xmm5\", \"xmm6\", \"xmm7\", \"xmm8\", \"xmm9\",\n \"ymm0\", \"ymm1\", \"ymm10\", \"ymm11\", \"ymm12\", \"ymm13\", \"ymm14\", \"ymm15\", \"ymm16\", \"ymm17\",\n \"ymm18\", \"ymm19\", \"ymm2\", \"ymm20\", \"ymm21\", \"ymm22\", \"ymm23\", \"ymm24\", \"ymm25\", \"ymm26\",\n \"ymm27\", \"ymm28\", \"ymm29\", \"ymm3\", \"ymm30\", \"ymm31\", \"ymm4\", \"ymm5\", \"ymm6\", \"ymm7\",\n \"ymm8\", \"ymm9\", \"zmm0\", \"zmm1\", \"zmm10\", \"zmm11\", \"zmm12\", \"zmm13\", \"zmm14\", \"zmm15\",\n \"zmm16\", \"zmm17\", \"zmm18\", \"zmm19\", \"zmm2\", \"zmm20\", \"zmm21\", \"zmm22\", \"zmm23\", \"zmm24\",\n \"zmm25\", \"zmm26\", \"zmm27\", \"zmm28\", \"zmm29\", \"zmm3\", \"zmm30\", \"zmm31\", \"zmm4\", \"zmm5\",\n \"zmm6\", \"zmm7\", \"zmm8\", \"zmm9\",\n]\n\n/** Every mnemonic, register, keyword, directive and standard macro name. */\nexport const NASM_RESERVED_NAMES: readonly string[] = [\n \"?\", \"__?bfloat16?__\", \"__?float128h?__\", \"__?float128l?__\", \"__?float16?__\", \"__?float32?__\", \"__?float64?__\", \"__?float80e?__\", \"__?float80m?__\", \"__?float8?__\",\n \"__?float?__\", \"__?float_daz?__\", \"__?float_round?__\", \"__?ilog2c?__\", \"__?ilog2e?__\", \"__?ilog2f?__\", \"__?ilog2w?__\", \"__?infinity?__\", \"__?masm_flat?__\", \"__?masm_ptr?__\",\n \"__?nan?__\", \"__?nasm_has_ifdirective?__\", \"__?qnan?__\", \"__?sect?__\", \"__?sectalign_align_updates_section?__\", \"__?snan?__\", \"__?utf16?__\", \"__?utf16be?__\", \"__?utf16le?__\", \"__?utf32?__\",\n \"__?utf32be?__\", \"__?utf32le?__\", \"__bits__\", \"__date__\", \"__date_num__\", \"__debug_format__\", \"__file__\", \"__float128h__\", \"__float128l__\", \"__float16__\",\n \"__float32__\", \"__float64__\", \"__float80e__\", \"__float80m__\", \"__float8__\", \"__float__\", \"__float_daz__\", \"__float_round__\", \"__ilog2c__\", \"__ilog2e__\",\n \"__ilog2f__\", \"__ilog2w__\", \"__infinity__\", \"__line__\", \"__nan__\", \"__nasm_major__\", \"__nasm_minor__\", \"__nasm_patchlevel__\", \"__nasm_snapshot__\", \"__nasm_subminor__\",\n \"__nasm_ver__\", \"__nasm_version_id__\", \"__output_format__\", \"__pass__\", \"__posix_time__\", \"__ptr__\", \"__qnan__\", \"__sect__\", \"__sectalign_align_updates_section__\", \"__snan__\",\n \"__time__\", \"__time_num__\", \"__utc_date__\", \"__utc_date_num__\", \"__utc_time__\", \"__utc_time_num__\", \"__utf16__\", \"__utf16be__\", \"__utf16le__\", \"__utf32__\",\n \"__utf32be__\", \"__utf32le__\", \"a16\", \"a32\", \"a64\", \"aaa\", \"aad\", \"aadd\", \"aam\", \"aand\",\n \"aas\", \"abs\", \"absolute\", \"adc\", \"adcx\", \"add\", \"addb\", \"addd\", \"addpd\", \"addps\",\n \"addq\", \"addsd\", \"addss\", \"addsubpd\", \"addsubps\", \"addw\", \"adox\", \"aesdec\", \"aesdec128kl\", \"aesdec256kl\",\n \"aesdeclast\", \"aesdecwide128kl\", \"aesdecwide256kl\", \"aesenc\", \"aesenc128kl\", \"aesenc256kl\", \"aesenclast\", \"aesencwide128kl\", \"aesencwide256kl\", \"aesimc\",\n \"aeskeygenassist\", \"ah\", \"al\", \"align\", \"alignb\", \"and\", \"andb\", \"andd\", \"andn\", \"andnb\",\n \"andnd\", \"andnpd\", \"andnps\", \"andnq\", \"andnw\", \"andpd\", \"andps\", \"andq\", \"andw\", \"aor\",\n \"arpl\", \"asp\", \"at\", \"ax\", \"axor\", \"bb0_reset\", \"bb1_reset\", \"bextr\", \"bh\", \"bits\",\n \"bl\", \"blcfill\", \"blci\", \"blcic\", \"blcmsk\", \"blcs\", \"blendpd\", \"blendps\", \"blendvpd\", \"blendvps\",\n \"blsfill\", \"blsi\", \"blsic\", \"blsmsk\", \"blsr\", \"bnd\", \"bnd0\", \"bnd1\", \"bnd2\", \"bnd3\",\n \"bndcl\", \"bndcn\", \"bndcu\", \"bndldx\", \"bndmk\", \"bndmov\", \"bndstx\", \"bound\", \"bp\", \"bpl\",\n \"brkpt\", \"bsf\", \"bsr\", \"bswap\", \"bt\", \"btc\", \"btr\", \"bts\", \"bx\", \"byte\",\n \"bzhi\", \"call\", \"cbw\", \"ccmp\", \"ccmpa\", \"ccmpae\", \"ccmpb\", \"ccmpbe\", \"ccmpc\", \"ccmpe\",\n \"ccmpf\", \"ccmpg\", \"ccmpge\", \"ccmpl\", \"ccmple\", \"ccmpna\", \"ccmpnae\", \"ccmpnb\", \"ccmpnbe\", \"ccmpnc\",\n \"ccmpne\", \"ccmpng\", \"ccmpnge\", \"ccmpnl\", \"ccmpnle\", \"ccmpno\", \"ccmpns\", \"ccmpnz\", \"ccmpo\", \"ccmps\",\n \"ccmpt\", \"ccmpz\", \"cdq\", \"cdqe\", \"cfcmova\", \"cfcmovae\", \"cfcmovb\", \"cfcmovbe\", \"cfcmovc\", \"cfcmove\",\n \"cfcmovg\", \"cfcmovge\", \"cfcmovl\", \"cfcmovle\", \"cfcmovna\", \"cfcmovnae\", \"cfcmovnb\", \"cfcmovnbe\", \"cfcmovnc\", \"cfcmovne\",\n \"cfcmovng\", \"cfcmovnge\", \"cfcmovnl\", \"cfcmovnle\", \"cfcmovno\", \"cfcmovnp\", \"cfcmovns\", \"cfcmovnz\", \"cfcmovo\", \"cfcmovp\",\n \"cfcmovpe\", \"cfcmovpo\", \"cfcmovs\", \"cfcmovz\", \"ch\", \"cl\", \"clac\", \"clc\", \"cld\", \"cldemote\",\n \"clflush\", \"clflushopt\", \"clgi\", \"cli\", \"clrssbsy\", \"clts\", \"clui\", \"clwb\", \"clzero\", \"cmc\",\n \"cmova\", \"cmovae\", \"cmovb\", \"cmovbe\", \"cmovc\", \"cmove\", \"cmovg\", \"cmovge\", \"cmovl\", \"cmovle\",\n \"cmovna\", \"cmovnae\", \"cmovnb\", \"cmovnbe\", \"cmovnc\", \"cmovne\", \"cmovng\", \"cmovnge\", \"cmovnl\", \"cmovnle\",\n \"cmovno\", \"cmovnp\", \"cmovns\", \"cmovnz\", \"cmovo\", \"cmovp\", \"cmovpe\", \"cmovpo\", \"cmovs\", \"cmovz\",\n \"cmp\", \"cmpaexadd\", \"cmpaxadd\", \"cmpbexadd\", \"cmpbxadd\", \"cmpcxadd\", \"cmpeqpd\", \"cmpeqps\", \"cmpeqsd\", \"cmpeqss\",\n \"cmpexadd\", \"cmpgexadd\", \"cmpgxadd\", \"cmplepd\", \"cmpleps\", \"cmplesd\", \"cmpless\", \"cmplexadd\", \"cmpltpd\", \"cmpltps\",\n \"cmpltsd\", \"cmpltss\", \"cmplxadd\", \"cmpnaexadd\", \"cmpnaxadd\", \"cmpnbexadd\", \"cmpnbxadd\", \"cmpncxadd\", \"cmpneqpd\", \"cmpneqps\",\n \"cmpneqsd\", \"cmpneqss\", \"cmpnexadd\", \"cmpngexadd\", \"cmpngxadd\", \"cmpnlepd\", \"cmpnleps\", \"cmpnlesd\", \"cmpnless\", \"cmpnlexadd\",\n \"cmpnltpd\", \"cmpnltps\", \"cmpnltsd\", \"cmpnltss\", \"cmpnlxadd\", \"cmpnoxadd\", \"cmpnpxadd\", \"cmpnsxadd\", \"cmpnzxadd\", \"cmpordpd\",\n \"cmpordps\", \"cmpordsd\", \"cmpordss\", \"cmpoxadd\", \"cmppd\", \"cmppexadd\", \"cmppoxadd\", \"cmpps\", \"cmppxadd\", \"cmpsb\",\n \"cmpsd\", \"cmpsq\", \"cmpss\", \"cmpsw\", \"cmpsxadd\", \"cmpunordpd\", \"cmpunordps\", \"cmpunordsd\", \"cmpunordss\", \"cmpxchg\",\n \"cmpxchg16b\", \"cmpxchg486\", \"cmpxchg8b\", \"cmpzxadd\", \"comisd\", \"comiss\", \"common\", \"cpu\", \"cpu_read\", \"cpu_write\",\n \"cpuid\", \"cqo\", \"cr0\", \"cr1\", \"cr10\", \"cr11\", \"cr12\", \"cr13\", \"cr14\", \"cr15\",\n \"cr16\", \"cr17\", \"cr18\", \"cr19\", \"cr2\", \"cr20\", \"cr21\", \"cr22\", \"cr23\", \"cr24\",\n \"cr25\", \"cr26\", \"cr27\", \"cr28\", \"cr29\", \"cr3\", \"cr30\", \"cr31\", \"cr4\", \"cr5\",\n \"cr6\", \"cr7\", \"cr8\", \"cr9\", \"crc32\", \"cs\", \"ctest\", \"ctesta\", \"ctestae\", \"ctestb\",\n \"ctestbe\", \"ctestc\", \"cteste\", \"ctestf\", \"ctestg\", \"ctestge\", \"ctestl\", \"ctestle\", \"ctestna\", \"ctestnae\",\n \"ctestnb\", \"ctestnbe\", \"ctestnc\", \"ctestne\", \"ctestng\", \"ctestnge\", \"ctestnl\", \"ctestnle\", \"ctestno\", \"ctestns\",\n \"ctestnz\", \"ctesto\", \"ctests\", \"ctestt\", \"ctestz\", \"cvtdq2pd\", \"cvtdq2ps\", \"cvtpd2dq\", \"cvtpd2pi\", \"cvtpd2ps\",\n \"cvtpi2pd\", \"cvtpi2ps\", \"cvtps2dq\", \"cvtps2pd\", \"cvtps2pi\", \"cvtsd2si\", \"cvtsd2ss\", \"cvtsi2sd\", \"cvtsi2ss\", \"cvtss2sd\",\n \"cvtss2si\", \"cvttpd2dq\", \"cvttpd2pi\", \"cvttps2dq\", \"cvttps2pi\", \"cvttsd2si\", \"cvttss2si\", \"cwd\", \"cwde\", \"cx\",\n \"daa\", \"das\", \"db\", \"dd\", \"debug\", \"dec\", \"default\", \"dh\", \"di\", \"dil\",\n \"div\", \"divpd\", \"divps\", \"divsd\", \"divss\", \"dl\", \"dmint\", \"do\", \"dollarhex\", \"dppd\",\n \"dpps\", \"dq\", \"dr0\", \"dr1\", \"dr10\", \"dr11\", \"dr12\", \"dr13\", \"dr14\", \"dr15\",\n \"dr16\", \"dr17\", \"dr18\", \"dr19\", \"dr2\", \"dr20\", \"dr21\", \"dr22\", \"dr23\", \"dr24\",\n \"dr25\", \"dr26\", \"dr27\", \"dr28\", \"dr29\", \"dr3\", \"dr30\", \"dr31\", \"dr4\", \"dr5\",\n \"dr6\", \"dr7\", \"dr8\", \"dr9\", \"ds\", \"dt\", \"dup\", \"dw\", \"dword\", \"dx\",\n \"dy\", \"dz\", \"eax\", \"ebp\", \"ebx\", \"ecx\", \"edi\", \"edx\", \"emms\", \"encls\",\n \"enclu\", \"enclv\", \"encodekey128\", \"encodekey256\", \"end\", \"endbr32\", \"endbr64\", \"endstruc\", \"enqcmd\", \"enqcmds\",\n \"enter\", \"enterd\", \"enterq\", \"enterw\", \"equ\", \"erets\", \"eretu\", \"es\", \"esi\", \"esp\",\n \"export\", \"extern\", \"extractps\", \"extrq\", \"f2xm1\", \"fabs\", \"fadd\", \"faddp\", \"far\", \"fbld\",\n \"fbstp\", \"fchs\", \"fclex\", \"fcmovb\", \"fcmovbe\", \"fcmove\", \"fcmovnb\", \"fcmovnbe\", \"fcmovne\", \"fcmovnu\",\n \"fcmovu\", \"fcom\", \"fcomi\", \"fcomip\", \"fcomp\", \"fcompp\", \"fcos\", \"fdecstp\", \"fdisi\", \"fdiv\",\n \"fdivp\", \"fdivr\", \"fdivrp\", \"femms\", \"feni\", \"ffree\", \"ffreep\", \"fiadd\", \"ficom\", \"ficomp\",\n \"fidiv\", \"fidivr\", \"fild\", \"fimul\", \"fincstp\", \"finit\", \"fist\", \"fistp\", \"fisttp\", \"fisub\",\n \"fisubr\", \"fld\", \"fld1\", \"fldcw\", \"fldenv\", \"fldl2e\", \"fldl2t\", \"fldlg2\", \"fldln2\", \"fldpi\",\n \"fldz\", \"float\", \"fmul\", \"fmulp\", \"fnclex\", \"fndisi\", \"fneni\", \"fninit\", \"fnop\", \"fnsave\",\n \"fnstcw\", \"fnstenv\", \"fnstsw\", \"fpatan\", \"fprem\", \"fprem1\", \"fptan\", \"frndint\", \"frstor\", \"fs\",\n \"fsave\", \"fscale\", \"fsetpm\", \"fsin\", \"fsincos\", \"fsqrt\", \"fst\", \"fstcw\", \"fstenv\", \"fstp\",\n \"fstsw\", \"fsub\", \"fsubp\", \"fsubr\", \"fsubrp\", \"ftst\", \"fucom\", \"fucomi\", \"fucomip\", \"fucomp\",\n \"fucompp\", \"fwait\", \"fxam\", \"fxch\", \"fxrstor\", \"fxrstor64\", \"fxsave\", \"fxsave64\", \"fxtract\", \"fyl2x\",\n \"fyl2xp1\", \"getsec\", \"gf2p8affineinvqb\", \"gf2p8affineqb\", \"gf2p8mulb\", \"global\", \"group\", \"gs\", \"haddpd\", \"haddps\",\n \"hint_nop\", \"hint_nop0\", \"hint_nop1\", \"hint_nop10\", \"hint_nop11\", \"hint_nop12\", \"hint_nop13\", \"hint_nop14\", \"hint_nop15\", \"hint_nop16\",\n \"hint_nop17\", \"hint_nop18\", \"hint_nop19\", \"hint_nop2\", \"hint_nop20\", \"hint_nop21\", \"hint_nop22\", \"hint_nop23\", \"hint_nop24\", \"hint_nop25\",\n \"hint_nop26\", \"hint_nop27\", \"hint_nop28\", \"hint_nop29\", \"hint_nop3\", \"hint_nop30\", \"hint_nop31\", \"hint_nop32\", \"hint_nop33\", \"hint_nop34\",\n \"hint_nop35\", \"hint_nop36\", \"hint_nop37\", \"hint_nop38\", \"hint_nop39\", \"hint_nop4\", \"hint_nop40\", \"hint_nop41\", \"hint_nop42\", \"hint_nop43\",\n \"hint_nop44\", \"hint_nop45\", \"hint_nop46\", \"hint_nop47\", \"hint_nop48\", \"hint_nop49\", \"hint_nop5\", \"hint_nop50\", \"hint_nop51\", \"hint_nop52\",\n \"hint_nop53\", \"hint_nop54\", \"hint_nop55\", \"hint_nop56\", \"hint_nop57\", \"hint_nop58\", \"hint_nop59\", \"hint_nop6\", \"hint_nop60\", \"hint_nop61\",\n \"hint_nop62\", \"hint_nop63\", \"hint_nop7\", \"hint_nop8\", \"hint_nop9\", \"hlt\", \"hreset\", \"hsubpd\", \"hsubps\", \"ibts\",\n \"icebp\", \"ideal\", \"idiv\", \"iend\", \"import\", \"imul\", \"in\", \"inc\", \"incbin\", \"incsspd\",\n \"incsspq\", \"insb\", \"insd\", \"insertps\", \"insertq\", \"insw\", \"int\", \"int01\", \"int03\", \"int1\",\n \"int3\", \"into\", \"invd\", \"invept\", \"invlpg\", \"invlpga\", \"invpcid\", \"invvpid\", \"iret\", \"iretd\",\n \"iretq\", \"iretw\", \"istruc\", \"ja\", \"jae\", \"jb\", \"jbe\", \"jc\", \"jcxz\", \"je\",\n \"jecxz\", \"jg\", \"jge\", \"jl\", \"jle\", \"jmp\", \"jmpabs\", \"jmpe\", \"jna\", \"jnae\",\n \"jnb\", \"jnbe\", \"jnc\", \"jne\", \"jng\", \"jnge\", \"jnl\", \"jnle\", \"jno\", \"jnp\",\n \"jns\", \"jnz\", \"jo\", \"jp\", \"jpe\", \"jpo\", \"jrcxz\", \"js\", \"jumps\", \"jz\",\n \"k0\", \"k1\", \"k2\", \"k3\", \"k4\", \"k5\", \"k6\", \"k7\", \"kadd\", \"kaddb\",\n \"kaddd\", \"kaddq\", \"kaddw\", \"kand\", \"kandb\", \"kandd\", \"kandn\", \"kandnb\", \"kandnd\", \"kandnq\",\n \"kandnw\", \"kandq\", \"kandw\", \"kmov\", \"kmovb\", \"kmovd\", \"kmovq\", \"kmovw\", \"knot\", \"knotb\",\n \"knotd\", \"knotq\", \"knotw\", \"kor\", \"korb\", \"kord\", \"korq\", \"kortest\", \"kortestb\", \"kortestd\",\n \"kortestq\", \"kortestw\", \"korw\", \"kshiftl\", \"kshiftlb\", \"kshiftld\", \"kshiftlq\", \"kshiftlw\", \"kshiftr\", \"kshiftrb\",\n \"kshiftrd\", \"kshiftrq\", \"kshiftrw\", \"kshl\", \"kshlb\", \"kshld\", \"kshlq\", \"kshlw\", \"kshr\", \"kshrb\",\n \"kshrd\", \"kshrq\", \"kshrw\", \"ktest\", \"ktestb\", \"ktestd\", \"ktestq\", \"ktestw\", \"kunpck\", \"kunpckbw\",\n \"kunpckd\", \"kunpckdq\", \"kunpckq\", \"kunpckw\", \"kunpckwd\", \"kxnor\", \"kxnorb\", \"kxnord\", \"kxnorq\", \"kxnorw\",\n \"kxor\", \"kxorb\", \"kxord\", \"kxorq\", \"kxorw\", \"lahf\", \"lar\", \"lddqu\", \"ldmxcsr\", \"lds\",\n \"ldtilecfg\", \"lea\", \"leave\", \"leaved\", \"leaveq\", \"leavew\", \"les\", \"lfence\", \"lfs\", \"lgdt\",\n \"lgs\", \"library\", \"lidt\", \"list\", \"lkgs\", \"lldt\", \"llwpcb\", \"lmsw\", \"loadall\", \"loadall286\",\n \"loadiwkey\", \"lock\", \"lodsb\", \"lodsd\", \"lodsq\", \"lodsw\", \"long\", \"loop\", \"loopd\", \"loope\",\n \"looped\", \"loopeq\", \"loopew\", \"loopne\", \"loopned\", \"loopneq\", \"loopnew\", \"loopnz\", \"loopnzd\", \"loopnzq\",\n \"loopnzw\", \"loopq\", \"loopw\", \"loopz\", \"loopzd\", \"loopzq\", \"loopzw\", \"lsl\", \"lss\", \"ltr\",\n \"lwpins\", \"lwpval\", \"lzcnt\", \"map\", \"maskmovdqu\", \"maskmovq\", \"maxpd\", \"maxps\", \"maxsd\", \"maxss\",\n \"mfence\", \"minpd\", \"minps\", \"minsd\", \"minss\", \"mm0\", \"mm1\", \"mm2\", \"mm3\", \"mm4\",\n \"mm5\", \"mm6\", \"mm7\", \"module\", \"monitor\", \"monitord\", \"monitorq\", \"monitorw\", \"monitorx\", \"montmul\",\n \"mov\", \"movabs\", \"movapd\", \"movaps\", \"movb\", \"movbe\", \"movd\", \"movddup\", \"movdir64b\", \"movdiri\",\n \"movdq2q\", \"movdqa\", \"movdqu\", \"movhlps\", \"movhpd\", \"movhps\", \"movlhps\", \"movlpd\", \"movlps\", \"movmskpd\",\n \"movmskps\", \"movntdq\", \"movntdqa\", \"movnti\", \"movntpd\", \"movntps\", \"movntq\", \"movntsd\", \"movntss\", \"movq\",\n \"movq2dq\", \"movrs\", \"movsb\", \"movsd\", \"movshdup\", \"movsldup\", \"movsq\", \"movss\", \"movsw\", \"movsx\",\n \"movsxb\", \"movsxd\", \"movsxw\", \"movupd\", \"movups\", \"movw\", \"movzx\", \"movzxb\", \"movzxd\", \"movzxw\",\n \"mpsadbw\", \"mul\", \"mulpd\", \"mulps\", \"mulsd\", \"mulss\", \"mulx\", \"mwait\", \"mwaitx\", \"near\",\n \"neg\", \"nobnd\", \"nop\", \"nop2\", \"nosplit\", \"not\", \"notb\", \"notd\", \"notq\", \"notw\",\n \"o16\", \"o32\", \"o64\", \"or\", \"orb\", \"ord\", \"org\", \"orpd\", \"orps\", \"orq\",\n \"ortest\", \"ortestb\", \"ortestd\", \"ortestq\", \"ortestw\", \"orw\", \"osabi\", \"osp\", \"out\", \"outsb\",\n \"outsd\", \"outsw\", \"oword\", \"p386\", \"p486\", \"p586\", \"pabsb\", \"pabsd\", \"pabsw\", \"packssdw\",\n \"packsswb\", \"packusdw\", \"packuswb\", \"paddb\", \"paddd\", \"paddq\", \"paddsb\", \"paddsiw\", \"paddsw\", \"paddusb\",\n \"paddusw\", \"paddw\", \"palignr\", \"pand\", \"pandn\", \"pause\", \"paveb\", \"pavgb\", \"pavgusb\", \"pavgw\",\n \"pblendvb\", \"pblendw\", \"pbndkb\", \"pclmulhqhqdq\", \"pclmulhqlqdq\", \"pclmullqhqdq\", \"pclmullqlqdq\", \"pclmulqdq\", \"pcmpeqb\", \"pcmpeqd\",\n \"pcmpeqq\", \"pcmpeqw\", \"pcmpestri\", \"pcmpestrm\", \"pcmpgtb\", \"pcmpgtd\", \"pcmpgtq\", \"pcmpgtw\", \"pcmpistri\", \"pcmpistrm\",\n \"pcommit\", \"pconfig\", \"pdep\", \"pdistib\", \"pext\", \"pextrb\", \"pextrd\", \"pextrq\", \"pextrw\", \"pf2id\",\n \"pf2iw\", \"pfacc\", \"pfadd\", \"pfcmpeq\", \"pfcmpge\", \"pfcmpgt\", \"pfmax\", \"pfmin\", \"pfmul\", \"pfnacc\",\n \"pfpnacc\", \"pfrcp\", \"pfrcpit1\", \"pfrcpit2\", \"pfrcpv\", \"pfrsqit1\", \"pfrsqrt\", \"pfrsqrtv\", \"pfsub\", \"pfsubr\",\n \"phaddd\", \"phaddsw\", \"phaddw\", \"phminposuw\", \"phsubd\", \"phsubsw\", \"phsubw\", \"pi2fd\", \"pi2fw\", \"pinsrb\",\n \"pinsrd\", \"pinsrq\", \"pinsrw\", \"pmachriw\", \"pmaddubsw\", \"pmaddwd\", \"pmagw\", \"pmaxsb\", \"pmaxsd\", \"pmaxsw\",\n \"pmaxub\", \"pmaxud\", \"pmaxuw\", \"pminsb\", \"pminsd\", \"pminsw\", \"pminub\", \"pminud\", \"pminuw\", \"pmovmskb\",\n \"pmovsxbd\", \"pmovsxbq\", \"pmovsxbw\", \"pmovsxdq\", \"pmovsxwd\", \"pmovsxwq\", \"pmovzxbd\", \"pmovzxbq\", \"pmovzxbw\", \"pmovzxdq\",\n \"pmovzxwd\", \"pmovzxwq\", \"pmuldq\", \"pmulhriw\", \"pmulhrsw\", \"pmulhrwa\", \"pmulhrwc\", \"pmulhuw\", \"pmulhw\", \"pmulld\",\n \"pmullw\", \"pmuludq\", \"pmvgezb\", \"pmvlzb\", \"pmvnzb\", \"pmvzb\", \"pop\", \"pop2\", \"pop2p\", \"popa\",\n \"popad\", \"popaw\", \"popcnt\", \"popf\", \"popfd\", \"popfq\", \"popfw\", \"popp\", \"por\", \"pragma\",\n \"prefetch\", \"prefetchit0\", \"prefetchit1\", \"prefetchnta\", \"prefetchrst2\", \"prefetcht0\", \"prefetcht1\", \"prefetcht2\", \"prefetchw\", \"prefetchwt1\",\n \"psadbw\", \"pshufb\", \"pshufd\", \"pshufhw\", \"pshuflw\", \"pshufw\", \"psignb\", \"psignd\", \"psignw\", \"pslld\",\n \"pslldq\", \"psllq\", \"psllw\", \"psrad\", \"psraw\", \"psrld\", \"psrldq\", \"psrlq\", \"psrlw\", \"psubb\",\n \"psubd\", \"psubq\", \"psubsb\", \"psubsiw\", \"psubsw\", \"psubusb\", \"psubusw\", \"psubw\", \"pswapd\", \"ptest\",\n \"ptr\", \"ptwrite\", \"punpckhbw\", \"punpckhdq\", \"punpckhqdq\", \"punpckhwd\", \"punpcklbw\", \"punpckldq\", \"punpcklqdq\", \"punpcklwd\",\n \"push\", \"push2\", \"push2p\", \"pusha\", \"pushad\", \"pushaw\", \"pushf\", \"pushfd\", \"pushfq\", \"pushfw\",\n \"pushp\", \"pvalidate\", \"pxor\", \"qword\", \"r10\", \"r10b\", \"r10d\", \"r10w\", \"r11\", \"r11b\",\n \"r11d\", \"r11w\", \"r12\", \"r12b\", \"r12d\", \"r12w\", \"r13\", \"r13b\", \"r13d\", \"r13w\",\n \"r14\", \"r14b\", \"r14d\", \"r14w\", \"r15\", \"r15b\", \"r15d\", \"r15w\", \"r16\", \"r16b\",\n \"r16d\", \"r16w\", \"r17\", \"r17b\", \"r17d\", \"r17w\", \"r18\", \"r18b\", \"r18d\", \"r18w\",\n \"r19\", \"r19b\", \"r19d\", \"r19w\", \"r20\", \"r20b\", \"r20d\", \"r20w\", \"r21\", \"r21b\",\n \"r21d\", \"r21w\", \"r22\", \"r22b\", \"r22d\", \"r22w\", \"r23\", \"r23b\", \"r23d\", \"r23w\",\n \"r24\", \"r24b\", \"r24d\", \"r24w\", \"r25\", \"r25b\", \"r25d\", \"r25w\", \"r26\", \"r26b\",\n \"r26d\", \"r26w\", \"r27\", \"r27b\", \"r27d\", \"r27w\", \"r28\", \"r28b\", \"r28d\", \"r28w\",\n \"r29\", \"r29b\", \"r29d\", \"r29w\", \"r30\", \"r30b\", \"r30d\", \"r30w\", \"r31\", \"r31b\",\n \"r31d\", \"r31w\", \"r8\", \"r8b\", \"r8d\", \"r8w\", \"r9\", \"r9b\", \"r9d\", \"r9w\",\n \"rax\", \"rbp\", \"rbx\", \"rcl\", \"rcpps\", \"rcpss\", \"rcr\", \"rcx\", \"rdfsbase\", \"rdgsbase\",\n \"rdi\", \"rdm\", \"rdmsr\", \"rdmsrlist\", \"rdpid\", \"rdpkru\", \"rdpmc\", \"rdrand\", \"rdseed\", \"rdshr\",\n \"rdsspd\", \"rdsspq\", \"rdtsc\", \"rdtscp\", \"rdx\", \"rel\", \"rep\", \"repe\", \"repne\", \"repnz\",\n \"repz\", \"required\", \"resb\", \"resd\", \"reso\", \"resq\", \"rest\", \"resw\", \"resy\", \"resz\",\n \"ret\", \"retd\", \"retf\", \"retfd\", \"retfq\", \"retfw\", \"retn\", \"retnd\", \"retnq\", \"retnw\",\n \"retq\", \"retw\", \"rmpadjust\", \"rol\", \"rolx\", \"ror\", \"rorx\", \"roundpd\", \"roundps\", \"roundsd\",\n \"roundss\", \"rsdc\", \"rsi\", \"rsldt\", \"rsm\", \"rsp\", \"rsqrtps\", \"rsqrtss\", \"rstorssp\", \"rsts\",\n \"safeseh\", \"sahf\", \"sal\", \"salc\", \"salx\", \"sar\", \"sarx\", \"saveprevssp\", \"sbb\", \"scasb\",\n \"scasd\", \"scasq\", \"scasw\", \"sectalign\", \"section\", \"seg\", \"segment\", \"segr6\", \"segr7\", \"senduipi\",\n \"serialize\", \"seta\", \"setae\", \"setaezu\", \"setazu\", \"setb\", \"setbe\", \"setbezu\", \"setbzu\", \"setc\",\n \"setczu\", \"sete\", \"setezu\", \"setg\", \"setge\", \"setgezu\", \"setgzu\", \"setl\", \"setle\", \"setlezu\",\n \"setlzu\", \"setna\", \"setnae\", \"setnaezu\", \"setnazu\", \"setnb\", \"setnbe\", \"setnbezu\", \"setnbzu\", \"setnc\",\n \"setnczu\", \"setne\", \"setnezu\", \"setng\", \"setnge\", \"setngezu\", \"setngzu\", \"setnl\", \"setnle\", \"setnlezu\",\n \"setnlzu\", \"setno\", \"setnozu\", \"setnp\", \"setnpzu\", \"setns\", \"setnszu\", \"setnz\", \"setnzzu\", \"seto\",\n \"setozu\", \"setp\", \"setpe\", \"setpezu\", \"setpo\", \"setpozu\", \"setpzu\", \"sets\", \"setssbsy\", \"setszu\",\n \"setz\", \"setzzu\", \"sfence\", \"sgdt\", \"sha1msg1\", \"sha1msg2\", \"sha1nexte\", \"sha1rnds4\", \"sha256msg1\", \"sha256msg2\",\n \"sha256rnds2\", \"shiftl\", \"shiftlb\", \"shiftld\", \"shiftlq\", \"shiftlw\", \"shiftr\", \"shiftrb\", \"shiftrd\", \"shiftrq\",\n \"shiftrw\", \"shl\", \"shlb\", \"shld\", \"shlq\", \"shlw\", \"shlx\", \"short\", \"shr\", \"shrb\",\n \"shrd\", \"shrq\", \"shrw\", \"shrx\", \"shufpd\", \"shufps\", \"si\", \"sidt\", \"sil\", \"skinit\",\n \"sldt\", \"slwpcb\", \"smint\", \"smintold\", \"smsw\", \"sp\", \"spl\", \"sqrtpd\", \"sqrtps\", \"sqrtsd\",\n \"sqrtss\", \"ss\", \"st0\", \"st1\", \"st2\", \"st3\", \"st4\", \"st5\", \"st6\", \"st7\",\n \"stac\", \"static\", \"stc\", \"std\", \"stgi\", \"sti\", \"stmxcsr\", \"stosb\", \"stosd\", \"stosq\",\n \"stosw\", \"str\", \"strict\", \"struc\", \"sttilecfg\", \"stui\", \"sub\", \"subpd\", \"subps\", \"subsd\",\n \"subss\", \"svdc\", \"svldt\", \"svts\", \"swapgs\", \"syscall\", \"sysenter\", \"sysexit\", \"sysret\", \"t1mskc\",\n \"t2rpntlvwz0\", \"t2rpntlvwz0rs\", \"t2rpntlvwz0rst1\", \"t2rpntlvwz0t1\", \"t2rpntlvwz1\", \"t2rpntlvwz1rs\", \"t2rpntlvwz1rst1\", \"t2rpntlvwz1t1\", \"tcmmimfp16ps\", \"tcmmrlfp16ps\",\n \"tconjtcmmimfp16ps\", \"tconjtfp16\", \"tcvtrowd2ps\", \"tcvtrowps2bf16h\", \"tcvtrowps2bf16l\", \"tcvtrowps2phh\", \"tcvtrowps2phl\", \"tdpbf16ps\", \"tdpbf8ps\", \"tdpbhf8ps\",\n \"tdpbssd\", \"tdpbsud\", \"tdpbusd\", \"tdpbuud\", \"tdpfp16ps\", \"tdphbf8ps\", \"tdphf8ps\", \"test\", \"testb\", \"testd\",\n \"testq\", \"testui\", \"testw\", \"tileloadd\", \"tileloaddrs\", \"tileloaddrst1\", \"tileloaddt1\", \"tilemovrow\", \"tilerelease\", \"tilestored\",\n \"tilezero\", \"times\", \"tmm0\", \"tmm1\", \"tmm2\", \"tmm3\", \"tmm4\", \"tmm5\", \"tmm6\", \"tmm7\",\n \"tmmultf32ps\", \"to\", \"tpause\", \"tr0\", \"tr1\", \"tr2\", \"tr3\", \"tr4\", \"tr5\", \"tr6\",\n \"tr7\", \"ttcmmimfp16ps\", \"ttcmmrlfp16ps\", \"ttdpbf16ps\", \"ttdpfp16ps\", \"ttmmultf32ps\", \"ttransposed\", \"tword\", \"tzcnt\", \"tzmsk\",\n \"ucomisd\", \"ucomiss\", \"ud0\", \"ud1\", \"ud2\", \"ud2a\", \"ud2b\", \"udb\", \"uiret\", \"umonitor\",\n \"umov\", \"umwait\", \"unpck\", \"unpckbw\", \"unpckd\", \"unpckdq\", \"unpckhpd\", \"unpckhps\", \"unpcklpd\", \"unpcklps\",\n \"unpckq\", \"unpckw\", \"unpckwd\", \"uppercase\", \"urdmsr\", \"use16\", \"use32\", \"use64\", \"useabs\", \"usebnd\",\n \"usenobnd\", \"userel\", \"uwrmsr\", \"v4dpwssd\", \"v4dpwssds\", \"v4fmaddps\", \"v4fmaddss\", \"v4fnmaddps\", \"v4fnmaddss\", \"vaddbf16\",\n \"vaddpd\", \"vaddph\", \"vaddps\", \"vaddsd\", \"vaddsh\", \"vaddss\", \"vaddsubpd\", \"vaddsubps\", \"vaesdec\", \"vaesdeclast\",\n \"vaesenc\", \"vaesenclast\", \"vaesimc\", \"vaeskeygenassist\", \"valignd\", \"valignq\", \"vandnpd\", \"vandnps\", \"vandpd\", \"vandps\",\n \"vbcstnebf162ps\", \"vbcstnebf16ps\", \"vbcstnesh2ps\", \"vblendmpd\", \"vblendmps\", \"vblendpd\", \"vblendps\", \"vblendvpd\", \"vblendvps\", \"vbroadcastf128\",\n \"vbroadcastf32x2\", \"vbroadcastf32x4\", \"vbroadcastf32x8\", \"vbroadcastf64x2\", \"vbroadcastf64x4\", \"vbroadcasti128\", \"vbroadcasti32x2\", \"vbroadcasti32x4\", \"vbroadcasti32x8\", \"vbroadcasti64x2\",\n \"vbroadcasti64x4\", \"vbroadcastsd\", \"vbroadcastss\", \"vcmpbf16\", \"vcmpeq_oqpd\", \"vcmpeq_oqps\", \"vcmpeq_oqsd\", \"vcmpeq_oqss\", \"vcmpeq_ospd\", \"vcmpeq_osps\",\n \"vcmpeq_ossd\", \"vcmpeq_osss\", \"vcmpeq_uqpd\", \"vcmpeq_uqps\", \"vcmpeq_uqsd\", \"vcmpeq_uqss\", \"vcmpeq_uspd\", \"vcmpeq_usps\", \"vcmpeq_ussd\", \"vcmpeq_usss\",\n \"vcmpeqpd\", \"vcmpeqps\", \"vcmpeqsd\", \"vcmpeqss\", \"vcmpfalse_oqpd\", \"vcmpfalse_oqps\", \"vcmpfalse_oqsd\", \"vcmpfalse_oqss\", \"vcmpfalse_ospd\", \"vcmpfalse_osps\",\n \"vcmpfalse_ossd\", \"vcmpfalse_osss\", \"vcmpfalsepd\", \"vcmpfalseps\", \"vcmpfalsesd\", \"vcmpfalsess\", \"vcmpge_oqpd\", \"vcmpge_oqps\", \"vcmpge_oqsd\", \"vcmpge_oqss\",\n \"vcmpge_ospd\", \"vcmpge_osps\", \"vcmpge_ossd\", \"vcmpge_osss\", \"vcmpgepd\", \"vcmpgeps\", \"vcmpgesd\", \"vcmpgess\", \"vcmpgt_oqpd\", \"vcmpgt_oqps\",\n \"vcmpgt_oqsd\", \"vcmpgt_oqss\", \"vcmpgt_ospd\", \"vcmpgt_osps\", \"vcmpgt_ossd\", \"vcmpgt_osss\", \"vcmpgtpd\", \"vcmpgtps\", \"vcmpgtsd\", \"vcmpgtss\",\n \"vcmple_oqpd\", \"vcmple_oqps\", \"vcmple_oqsd\", \"vcmple_oqss\", \"vcmple_ospd\", \"vcmple_osps\", \"vcmple_ossd\", \"vcmple_osss\", \"vcmplepd\", \"vcmpleps\",\n \"vcmplesd\", \"vcmpless\", \"vcmplt_oqpd\", \"vcmplt_oqps\", \"vcmplt_oqsd\", \"vcmplt_oqss\", \"vcmplt_ospd\", \"vcmplt_osps\", \"vcmplt_ossd\", \"vcmplt_osss\",\n \"vcmpltpd\", \"vcmpltps\", \"vcmpltsd\", \"vcmpltss\", \"vcmpneq_oqpd\", \"vcmpneq_oqps\", \"vcmpneq_oqsd\", \"vcmpneq_oqss\", \"vcmpneq_ospd\", \"vcmpneq_osps\",\n \"vcmpneq_ossd\", \"vcmpneq_osss\", \"vcmpneq_uqpd\", \"vcmpneq_uqps\", \"vcmpneq_uqsd\", \"vcmpneq_uqss\", \"vcmpneq_uspd\", \"vcmpneq_usps\", \"vcmpneq_ussd\", \"vcmpneq_usss\",\n \"vcmpneqpd\", \"vcmpneqps\", \"vcmpneqsd\", \"vcmpneqss\", \"vcmpnge_uqpd\", \"vcmpnge_uqps\", \"vcmpnge_uqsd\", \"vcmpnge_uqss\", \"vcmpnge_uspd\", \"vcmpnge_usps\",\n \"vcmpnge_ussd\", \"vcmpnge_usss\", \"vcmpngepd\", \"vcmpngeps\", \"vcmpngesd\", \"vcmpngess\", \"vcmpngt_uqpd\", \"vcmpngt_uqps\", \"vcmpngt_uqsd\", \"vcmpngt_uqss\",\n \"vcmpngt_uspd\", \"vcmpngt_usps\", \"vcmpngt_ussd\", \"vcmpngt_usss\", \"vcmpngtpd\", \"vcmpngtps\", \"vcmpngtsd\", \"vcmpngtss\", \"vcmpnle_uqpd\", \"vcmpnle_uqps\",\n \"vcmpnle_uqsd\", \"vcmpnle_uqss\", \"vcmpnle_uspd\", \"vcmpnle_usps\", \"vcmpnle_ussd\", \"vcmpnle_usss\", \"vcmpnlepd\", \"vcmpnleps\", \"vcmpnlesd\", \"vcmpnless\",\n \"vcmpnlt_uqpd\", \"vcmpnlt_uqps\", \"vcmpnlt_uqsd\", \"vcmpnlt_uqss\", \"vcmpnlt_uspd\", \"vcmpnlt_usps\", \"vcmpnlt_ussd\", \"vcmpnlt_usss\", \"vcmpnltpd\", \"vcmpnltps\",\n \"vcmpnltsd\", \"vcmpnltss\", \"vcmpord_qpd\", \"vcmpord_qps\", \"vcmpord_qsd\", \"vcmpord_qss\", \"vcmpord_spd\", \"vcmpord_sps\", \"vcmpord_ssd\", \"vcmpord_sss\",\n \"vcmpordpd\", \"vcmpordps\", \"vcmpordsd\", \"vcmpordss\", \"vcmppd\", \"vcmpph\", \"vcmpps\", \"vcmpsd\", \"vcmpsh\", \"vcmpss\",\n \"vcmptrue_uqpd\", \"vcmptrue_uqps\", \"vcmptrue_uqsd\", \"vcmptrue_uqss\", \"vcmptrue_uspd\", \"vcmptrue_usps\", \"vcmptrue_ussd\", \"vcmptrue_usss\", \"vcmptruepd\", \"vcmptrueps\",\n \"vcmptruesd\", \"vcmptruess\", \"vcmpunord_qpd\", \"vcmpunord_qps\", \"vcmpunord_qsd\", \"vcmpunord_qss\", \"vcmpunord_spd\", \"vcmpunord_sps\", \"vcmpunord_ssd\", \"vcmpunord_sss\",\n \"vcmpunordpd\", \"vcmpunordps\", \"vcmpunordsd\", \"vcmpunordss\", \"vcomisbf16\", \"vcomisd\", \"vcomish\", \"vcomiss\", \"vcompresspd\", \"vcompressps\",\n \"vcomxsd\", \"vcomxsh\", \"vcomxss\", \"vcvt2ph2bf8\", \"vcvt2ph2bf8s\", \"vcvt2ph2hf8\", \"vcvt2ph2hf8s\", \"vcvt2ps2phx\", \"vcvtbf162ibs\", \"vcvtbf162iubs\",\n \"vcvtbiasph2bf8\", \"vcvtbiasph2bf8s\", \"vcvtbiasph2hf8\", \"vcvtbiasph2hf8s\", \"vcvtdq2pd\", \"vcvtdq2ph\", \"vcvtdq2ps\", \"vcvthf82ph\", \"vcvtne2ps2bf16\", \"vcvtneebf162ps\",\n \"vcvtneeph2ps\", \"vcvtneobf162ps\", \"vcvtneoph2ps\", \"vcvtneps2bf16\", \"vcvtpd2dq\", \"vcvtpd2ph\", \"vcvtpd2ps\", \"vcvtpd2qq\", \"vcvtpd2udq\", \"vcvtpd2uqq\",\n \"vcvtph2bf8\", \"vcvtph2bf8s\", \"vcvtph2dq\", \"vcvtph2hf8\", \"vcvtph2hf8s\", \"vcvtph2ibs\", \"vcvtph2iubs\", \"vcvtph2pd\", \"vcvtph2ps\", \"vcvtph2psx\",\n \"vcvtph2qq\", \"vcvtph2udq\", \"vcvtph2uqq\", \"vcvtph2uw\", \"vcvtph2w\", \"vcvtps2dq\", \"vcvtps2ibs\", \"vcvtps2iubs\", \"vcvtps2pd\", \"vcvtps2ph\",\n \"vcvtps2phx\", \"vcvtps2qq\", \"vcvtps2udq\", \"vcvtps2uqq\", \"vcvtqq2pd\", \"vcvtqq2ph\", \"vcvtqq2ps\", \"vcvtsd2sh\", \"vcvtsd2si\", \"vcvtsd2ss\",\n \"vcvtsd2usi\", \"vcvtsh2sd\", \"vcvtsh2si\", \"vcvtsh2ss\", \"vcvtsh2usi\", \"vcvtsi2sd\", \"vcvtsi2sh\", \"vcvtsi2ss\", \"vcvtss2sd\", \"vcvtss2sh\",\n \"vcvtss2si\", \"vcvtss2usi\", \"vcvttbf162ibs\", \"vcvttbf162iubs\", \"vcvttpd2dq\", \"vcvttpd2dqs\", \"vcvttpd2qq\", \"vcvttpd2qqs\", \"vcvttpd2udq\", \"vcvttpd2udqs\",\n \"vcvttpd2uqq\", \"vcvttpd2uqqs\", \"vcvttph2dq\", \"vcvttph2ibs\", \"vcvttph2iubs\", \"vcvttph2qq\", \"vcvttph2udq\", \"vcvttph2uqq\", \"vcvttph2uw\", \"vcvttph2w\",\n \"vcvttps2dq\", \"vcvttps2dqs\", \"vcvttps2ibs\", \"vcvttps2iubs\", \"vcvttps2qq\", \"vcvttps2qqs\", \"vcvttps2udq\", \"vcvttps2udqs\", \"vcvttps2uqq\", \"vcvttps2uqqs\",\n \"vcvttsd2si\", \"vcvttsd2sis\", \"vcvttsd2usi\", \"vcvttsd2usis\", \"vcvttsh2si\", \"vcvttsh2usi\", \"vcvttss2si\", \"vcvttss2sis\", \"vcvttss2usi\", \"vcvttss2usis\",\n \"vcvtudq2pd\", \"vcvtudq2ph\", \"vcvtudq2ps\", \"vcvtuqq2pd\", \"vcvtuqq2ph\", \"vcvtuqq2ps\", \"vcvtusi2sd\", \"vcvtusi2sh\", \"vcvtusi2ss\", \"vcvtuw2ph\",\n \"vcvtw2ph\", \"vdbpsadbw\", \"vdivbf16\", \"vdivpd\", \"vdivph\", \"vdivps\", \"vdivsd\", \"vdivsh\", \"vdivss\", \"vdpbf16ps\",\n \"vdppd\", \"vdpphps\", \"vdpps\", \"vendscaleph\", \"vendscalesh\", \"verr\", \"verw\", \"vexp2pd\", \"vexp2ps\", \"vexpandpd\",\n \"vexpandps\", \"vextractf128\", \"vextractf32x4\", \"vextractf32x8\", \"vextractf64x2\", \"vextractf64x4\", \"vextracti128\", \"vextracti32x4\", \"vextracti32x8\", \"vextracti64x2\",\n \"vextracti64x4\", \"vextractps\", \"vfcmaddcph\", \"vfcmaddcsh\", \"vfcmulcpch\", \"vfcmulcph\", \"vfcmulcsh\", \"vfixupimmpd\", \"vfixupimmps\", \"vfixupimmsd\",\n \"vfixupimmss\", \"vfmadd123pd\", \"vfmadd123ps\", \"vfmadd123sd\", \"vfmadd123ss\", \"vfmadd132bf16\", \"vfmadd132pd\", \"vfmadd132ph\", \"vfmadd132ps\", \"vfmadd132sd\",\n \"vfmadd132sh\", \"vfmadd132ss\", \"vfmadd213bf16\", \"vfmadd213pd\", \"vfmadd213ph\", \"vfmadd213ps\", \"vfmadd213sd\", \"vfmadd213sh\", \"vfmadd213ss\", \"vfmadd231bf16\",\n \"vfmadd231pd\", \"vfmadd231ph\", \"vfmadd231ps\", \"vfmadd231sd\", \"vfmadd231sh\", \"vfmadd231ss\", \"vfmadd312pd\", \"vfmadd312ps\", \"vfmadd312sd\", \"vfmadd312ss\",\n \"vfmadd321pd\", \"vfmadd321ps\", \"vfmadd321sd\", \"vfmadd321ss\", \"vfmaddcph\", \"vfmaddcsh\", \"vfmaddpd\", \"vfmaddps\", \"vfmaddsd\", \"vfmaddss\",\n \"vfmaddsub123pd\", \"vfmaddsub123ps\", \"vfmaddsub132pd\", \"vfmaddsub132ph\", \"vfmaddsub132ps\", \"vfmaddsub213pd\", \"vfmaddsub213ph\", \"vfmaddsub213ps\", \"vfmaddsub231pd\", \"vfmaddsub231ph\",\n \"vfmaddsub231ps\", \"vfmaddsub312pd\", \"vfmaddsub312ps\", \"vfmaddsub321pd\", \"vfmaddsub321ps\", \"vfmaddsubpd\", \"vfmaddsubps\", \"vfmsub123pd\", \"vfmsub123ps\", \"vfmsub123sd\",\n \"vfmsub123ss\", \"vfmsub132bf16\", \"vfmsub132pd\", \"vfmsub132ph\", \"vfmsub132ps\", \"vfmsub132sd\", \"vfmsub132sh\", \"vfmsub132ss\", \"vfmsub213bf16\", \"vfmsub213pd\",\n \"vfmsub213ph\", \"vfmsub213ps\", \"vfmsub213sd\", \"vfmsub213sh\", \"vfmsub213ss\", \"vfmsub231bf16\", \"vfmsub231pd\", \"vfmsub231ph\", \"vfmsub231ps\", \"vfmsub231sd\",\n \"vfmsub231sh\", \"vfmsub231ss\", \"vfmsub312pd\", \"vfmsub312ps\", \"vfmsub312sd\", \"vfmsub312ss\", \"vfmsub321pd\", \"vfmsub321ps\", \"vfmsub321sd\", \"vfmsub321ss\",\n \"vfmsubadd123pd\", \"vfmsubadd123ps\", \"vfmsubadd132pd\", \"vfmsubadd132ph\", \"vfmsubadd132ps\", \"vfmsubadd213pd\", \"vfmsubadd213ph\", \"vfmsubadd213ps\", \"vfmsubadd231pd\", \"vfmsubadd231ph\",\n \"vfmsubadd231ps\", \"vfmsubadd312pd\", \"vfmsubadd312ps\", \"vfmsubadd321pd\", \"vfmsubadd321ps\", \"vfmsubaddpd\", \"vfmsubaddps\", \"vfmsubpd\", \"vfmsubps\", \"vfmsubsd\",\n \"vfmsubss\", \"vfmulcpch\", \"vfmulcph\", \"vfmulcsh\", \"vfnmadd123pd\", \"vfnmadd123ps\", \"vfnmadd123sd\", \"vfnmadd123ss\", \"vfnmadd132bf16\", \"vfnmadd132pd\",\n \"vfnmadd132ph\", \"vfnmadd132ps\", \"vfnmadd132sd\", \"vfnmadd132sh\", \"vfnmadd132ss\", \"vfnmadd213bf16\", \"vfnmadd213pd\", \"vfnmadd213ph\", \"vfnmadd213ps\", \"vfnmadd213sd\",\n \"vfnmadd213sh\", \"vfnmadd213ss\", \"vfnmadd231bf16\", \"vfnmadd231pd\", \"vfnmadd231ph\", \"vfnmadd231ps\", \"vfnmadd231sd\", \"vfnmadd231sh\", \"vfnmadd231ss\", \"vfnmadd312pd\",\n \"vfnmadd312ps\", \"vfnmadd312sd\", \"vfnmadd312ss\", \"vfnmadd321pd\", \"vfnmadd321ps\", \"vfnmadd321sd\", \"vfnmadd321ss\", \"vfnmaddpd\", \"vfnmaddps\", \"vfnmaddsd\",\n \"vfnmaddss\", \"vfnmsub123pd\", \"vfnmsub123ps\", \"vfnmsub123sd\", \"vfnmsub123ss\", \"vfnmsub132bf16\", \"vfnmsub132pd\", \"vfnmsub132ph\", \"vfnmsub132ps\", \"vfnmsub132sd\",\n \"vfnmsub132sh\", \"vfnmsub132ss\", \"vfnmsub213bf16\", \"vfnmsub213pd\", \"vfnmsub213ph\", \"vfnmsub213ps\", \"vfnmsub213sd\", \"vfnmsub213sh\", \"vfnmsub213ss\", \"vfnmsub231bf16\",\n \"vfnmsub231pd\", \"vfnmsub231ph\", \"vfnmsub231ps\", \"vfnmsub231sd\", \"vfnmsub231sh\", \"vfnmsub231ss\", \"vfnmsub312pd\", \"vfnmsub312ps\", \"vfnmsub312sd\", \"vfnmsub312ss\",\n \"vfnmsub321pd\", \"vfnmsub321ps\", \"vfnmsub321sd\", \"vfnmsub321ss\", \"vfnmsubpd\", \"vfnmsubps\", \"vfnmsubsd\", \"vfnmsubss\", \"vfpclassbf16\", \"vfpclasspd\",\n \"vfpclassph\", \"vfpclassps\", \"vfpclasssd\", \"vfpclasssh\", \"vfpclassss\", \"vfrczpd\", \"vfrczps\", \"vfrczsd\", \"vfrczss\", \"vgatherdpd\",\n \"vgatherdps\", \"vgatherpf0dpd\", \"vgatherpf0dps\", \"vgatherpf0qpd\", \"vgatherpf0qps\", \"vgatherpf1dpd\", \"vgatherpf1dps\", \"vgatherpf1qpd\", \"vgatherpf1qps\", \"vgatherqpd\",\n \"vgatherqps\", \"vgetexpbf16\", \"vgetexppd\", \"vgetexpph\", \"vgetexpps\", \"vgetexpsd\", \"vgetexpsh\", \"vgetexpss\", \"vgetmantbf16\", \"vgetmantpd\",\n \"vgetmantph\", \"vgetmantps\", \"vgetmantsd\", \"vgetmantsh\", \"vgetmantss\", \"vgetmaxph\", \"vgetmaxsh\", \"vgetminph\", \"vgetminsh\", \"vgf2p8affineinvqb\",\n \"vgf2p8affineqb\", \"vgf2p8mulb\", \"vhaddpd\", \"vhaddps\", \"vhsubpd\", \"vhsubps\", \"vinsertf128\", \"vinsertf32x4\", \"vinsertf32x8\", \"vinsertf64x2\",\n \"vinsertf64x4\", \"vinserti128\", \"vinserti32x4\", \"vinserti32x8\", \"vinserti64x2\", \"vinserti64x4\", \"vinsertps\", \"vlddqu\", \"vldmxcsr\", \"vldqqu\",\n \"vmaskmovdqu\", \"vmaskmovpd\", \"vmaskmovps\", \"vmaxbf16\", \"vmaxpd\", \"vmaxph\", \"vmaxps\", \"vmaxsd\", \"vmaxsh\", \"vmaxss\",\n \"vmcall\", \"vmclear\", \"vmfunc\", \"vmgexit\", \"vminbf16\", \"vminmaxbf16\", \"vminmaxpd\", \"vminmaxph\", \"vminmaxps\", \"vminmaxsd\",\n \"vminmaxsh\", \"vminmaxss\", \"vminpd\", \"vminph\", \"vminps\", \"vminsd\", \"vminsh\", \"vminss\", \"vmlaunch\", \"vmload\",\n \"vmmcall\", \"vmovapd\", \"vmovaps\", \"vmovd\", \"vmovddup\", \"vmovdqa\", \"vmovdqa32\", \"vmovdqa64\", \"vmovdqu\", \"vmovdqu16\",\n \"vmovdqu32\", \"vmovdqu64\", \"vmovdqu8\", \"vmovhlps\", \"vmovhpd\", \"vmovhps\", \"vmovlhps\", \"vmovlpd\", \"vmovlps\", \"vmovmskpd\",\n \"vmovmskps\", \"vmovntdq\", \"vmovntdqa\", \"vmovntpd\", \"vmovntps\", \"vmovntqq\", \"vmovq\", \"vmovqqa\", \"vmovqqu\", \"vmovsd\",\n \"vmovsh\", \"vmovshdup\", \"vmovsldup\", \"vmovss\", \"vmovupd\", \"vmovups\", \"vmovw\", \"vmpsadbw\", \"vmptrld\", \"vmptrst\",\n \"vmread\", \"vmresume\", \"vmrun\", \"vmsave\", \"vmulbf16\", \"vmulpd\", \"vmulph\", \"vmulps\", \"vmulsd\", \"vmulsh\",\n \"vmulss\", \"vmwrite\", \"vmxoff\", \"vmxon\", \"vorpd\", \"vorps\", \"vp2intersectd\", \"vp2intersectq\", \"vpabsb\", \"vpabsd\",\n \"vpabsq\", \"vpabsw\", \"vpackssdw\", \"vpacksswb\", \"vpackusdw\", \"vpackuswb\", \"vpaddb\", \"vpaddd\", \"vpaddq\", \"vpaddsb\",\n \"vpaddsw\", \"vpaddusb\", \"vpaddusw\", \"vpaddw\", \"vpalignr\", \"vpand\", \"vpandd\", \"vpandn\", \"vpandnd\", \"vpandnq\",\n \"vpandq\", \"vpavgb\", \"vpavgw\", \"vpblendd\", \"vpblendmb\", \"vpblendmd\", \"vpblendmq\", \"vpblendmw\", \"vpblendvb\", \"vpblendw\",\n \"vpbroadcastb\", \"vpbroadcastd\", \"vpbroadcastmb2q\", \"vpbroadcastmw2d\", \"vpbroadcastq\", \"vpbroadcastw\", \"vpclmulhqhqdq\", \"vpclmulhqlqdq\", \"vpclmullqhqdq\", \"vpclmullqlqdq\",\n \"vpclmulqdq\", \"vpcmov\", \"vpcmpb\", \"vpcmpd\", \"vpcmpeqb\", \"vpcmpeqd\", \"vpcmpeqq\", \"vpcmpequb\", \"vpcmpequd\", \"vpcmpequq\",\n \"vpcmpequw\", \"vpcmpeqw\", \"vpcmpestri\", \"vpcmpestrm\", \"vpcmpgeb\", \"vpcmpged\", \"vpcmpgeq\", \"vpcmpgeub\", \"vpcmpgeud\", \"vpcmpgeuq\",\n \"vpcmpgeuw\", \"vpcmpgew\", \"vpcmpgtb\", \"vpcmpgtd\", \"vpcmpgtq\", \"vpcmpgtub\", \"vpcmpgtud\", \"vpcmpgtuq\", \"vpcmpgtuw\", \"vpcmpgtw\",\n \"vpcmpistri\", \"vpcmpistrm\", \"vpcmpleb\", \"vpcmpled\", \"vpcmpleq\", \"vpcmpleub\", \"vpcmpleud\", \"vpcmpleuq\", \"vpcmpleuw\", \"vpcmplew\",\n \"vpcmpltb\", \"vpcmpltd\", \"vpcmpltq\", \"vpcmpltub\", \"vpcmpltud\", \"vpcmpltuq\", \"vpcmpltuw\", \"vpcmpltw\", \"vpcmpneqb\", \"vpcmpneqd\",\n \"vpcmpneqq\", \"vpcmpnequb\", \"vpcmpnequd\", \"vpcmpnequq\", \"vpcmpnequw\", \"vpcmpneqw\", \"vpcmpngtb\", \"vpcmpngtd\", \"vpcmpngtq\", \"vpcmpngtub\",\n \"vpcmpngtud\", \"vpcmpngtuq\", \"vpcmpngtuw\", \"vpcmpngtw\", \"vpcmpnleb\", \"vpcmpnled\", \"vpcmpnleq\", \"vpcmpnleub\", \"vpcmpnleud\", \"vpcmpnleuq\",\n \"vpcmpnleuw\", \"vpcmpnlew\", \"vpcmpnltb\", \"vpcmpnltd\", \"vpcmpnltq\", \"vpcmpnltub\", \"vpcmpnltud\", \"vpcmpnltuq\", \"vpcmpnltuw\", \"vpcmpnltw\",\n \"vpcmpq\", \"vpcmpub\", \"vpcmpud\", \"vpcmpuq\", \"vpcmpuw\", \"vpcmpw\", \"vpcomb\", \"vpcomd\", \"vpcompressb\", \"vpcompressd\",\n \"vpcompressq\", \"vpcompressw\", \"vpcomq\", \"vpcomub\", \"vpcomud\", \"vpcomuq\", \"vpcomuw\", \"vpcomw\", \"vpconflictd\", \"vpconflictq\",\n \"vpdpbssd\", \"vpdpbssds\", \"vpdpbsud\", \"vpdpbsuds\", \"vpdpbusd\", \"vpdpbusds\", \"vpdpbuud\", \"vpdpbuuds\", \"vpdpwssd\", \"vpdpwssds\",\n \"vpdpwsud\", \"vpdpwsuds\", \"vpdpwusd\", \"vpdpwusds\", \"vpdpwuud\", \"vpdpwuuds\", \"vperm2f128\", \"vperm2i128\", \"vpermb\", \"vpermd\",\n \"vpermi2b\", \"vpermi2d\", \"vpermi2pd\", \"vpermi2ps\", \"vpermi2q\", \"vpermi2w\", \"vpermilpd\", \"vpermilps\", \"vpermpd\", \"vpermps\",\n \"vpermq\", \"vpermt2b\", \"vpermt2d\", \"vpermt2pd\", \"vpermt2ps\", \"vpermt2q\", \"vpermt2w\", \"vpermw\", \"vpexpandb\", \"vpexpandd\",\n \"vpexpandq\", \"vpexpandw\", \"vpextrb\", \"vpextrd\", \"vpextrq\", \"vpextrw\", \"vpgatherdd\", \"vpgatherdq\", \"vpgatherqd\", \"vpgatherqq\",\n \"vphaddbd\", \"vphaddbq\", \"vphaddbw\", \"vphaddd\", \"vphadddq\", \"vphaddsw\", \"vphaddubd\", \"vphaddubq\", \"vphaddubw\", \"vphaddudq\",\n \"vphadduwd\", \"vphadduwq\", \"vphaddw\", \"vphaddwd\", \"vphaddwq\", \"vphminposuw\", \"vphsubbw\", \"vphsubd\", \"vphsubdq\", \"vphsubsw\",\n \"vphsubw\", \"vphsubwd\", \"vpinsrb\", \"vpinsrd\", \"vpinsrq\", \"vpinsrw\", \"vplzcntd\", \"vplzcntq\", \"vpmacsdd\", \"vpmacsdqh\",\n \"vpmacsdql\", \"vpmacssdd\", \"vpmacssdqh\", \"vpmacssdql\", \"vpmacsswd\", \"vpmacssww\", \"vpmacswd\", \"vpmacsww\", \"vpmadcsswd\", \"vpmadcswd\",\n \"vpmadd132ph\", \"vpmadd132sh\", \"vpmadd213ph\", \"vpmadd213sh\", \"vpmadd231ph\", \"vpmadd231sh\", \"vpmadd52huq\", \"vpmadd52luq\", \"vpmaddubsw\", \"vpmaddwd\",\n \"vpmaskmovd\", \"vpmaskmovq\", \"vpmaxsb\", \"vpmaxsd\", \"vpmaxsq\", \"vpmaxsw\", \"vpmaxub\", \"vpmaxud\", \"vpmaxuq\", \"vpmaxuw\",\n \"vpminsb\", \"vpminsd\", \"vpminsq\", \"vpminsw\", \"vpminub\", \"vpminud\", \"vpminuq\", \"vpminuw\", \"vpmovb2m\", \"vpmovd2m\",\n \"vpmovdb\", \"vpmovdw\", \"vpmovm2b\", \"vpmovm2d\", \"vpmovm2q\", \"vpmovm2w\", \"vpmovmskb\", \"vpmovq2m\", \"vpmovqb\", \"vpmovqd\",\n \"vpmovqw\", \"vpmovsdb\", \"vpmovsdw\", \"vpmovsqb\", \"vpmovsqd\", \"vpmovsqw\", \"vpmovswb\", \"vpmovsxbd\", \"vpmovsxbq\", \"vpmovsxbw\",\n \"vpmovsxdq\", \"vpmovsxwd\", \"vpmovsxwq\", \"vpmovusdb\", \"vpmovusdw\", \"vpmovusqb\", \"vpmovusqd\", \"vpmovusqw\", \"vpmovuswb\", \"vpmovw2m\",\n \"vpmovwb\", \"vpmovzxbd\", \"vpmovzxbq\", \"vpmovzxbw\", \"vpmovzxdq\", \"vpmovzxwd\", \"vpmovzxwq\", \"vpmsub132ph\", \"vpmsub132sh\", \"vpmsub213ph\",\n \"vpmsub213sh\", \"vpmsub231ph\", \"vpmsub231sh\", \"vpmuldq\", \"vpmulhrsw\", \"vpmulhuw\", \"vpmulhw\", \"vpmulld\", \"vpmullq\", \"vpmullw\",\n \"vpmultishiftqb\", \"vpmuludq\", \"vpnmadd132sh\", \"vpnmadd213sh\", \"vpnmadd231sh\", \"vpnmsub132sh\", \"vpnmsub213sh\", \"vpnmsub231sh\", \"vpopcntb\", \"vpopcntd\",\n \"vpopcntq\", \"vpopcntw\", \"vpor\", \"vpord\", \"vporq\", \"vpperm\", \"vprold\", \"vprolq\", \"vprolvd\", \"vprolvq\",\n \"vprord\", \"vprorq\", \"vprorvd\", \"vprorvq\", \"vprotb\", \"vprotd\", \"vprotq\", \"vprotw\", \"vpsadbw\", \"vpscatterdd\",\n \"vpscatterdq\", \"vpscatterqd\", \"vpscatterqq\", \"vpshab\", \"vpshad\", \"vpshaq\", \"vpshaw\", \"vpshlb\", \"vpshld\", \"vpshldd\",\n \"vpshldq\", \"vpshldvd\", \"vpshldvq\", \"vpshldvw\", \"vpshldw\", \"vpshlq\", \"vpshlw\", \"vpshrdd\", \"vpshrdq\", \"vpshrdvd\",\n \"vpshrdvq\", \"vpshrdvw\", \"vpshrdw\", \"vpshufb\", \"vpshufbitqmb\", \"vpshufd\", \"vpshufhw\", \"vpshuflw\", \"vpsignb\", \"vpsignd\",\n \"vpsignw\", \"vpslld\", \"vpslldq\", \"vpsllq\", \"vpsllvd\", \"vpsllvq\", \"vpsllvw\", \"vpsllw\", \"vpsrad\", \"vpsraq\",\n \"vpsravd\", \"vpsravq\", \"vpsravw\", \"vpsraw\", \"vpsrld\", \"vpsrldq\", \"vpsrlq\", \"vpsrlvd\", \"vpsrlvq\", \"vpsrlvw\",\n \"vpsrlw\", \"vpsubb\", \"vpsubd\", \"vpsubq\", \"vpsubsb\", \"vpsubsw\", \"vpsubusb\", \"vpsubusw\", \"vpsubw\", \"vpternlogd\",\n \"vpternlogq\", \"vptest\", \"vptestmb\", \"vptestmd\", \"vptestmq\", \"vptestmw\", \"vptestnmb\", \"vptestnmd\", \"vptestnmq\", \"vptestnmw\",\n \"vpunpckhbw\", \"vpunpckhdq\", \"vpunpckhqdq\", \"vpunpckhwd\", \"vpunpcklbw\", \"vpunpckldq\", \"vpunpcklqdq\", \"vpunpcklwd\", \"vpxor\", \"vpxord\",\n \"vpxorq\", \"vrangepd\", \"vrangeps\", \"vrangesd\", \"vrangess\", \"vrcp14pd\", \"vrcp14ps\", \"vrcp14sd\", \"vrcp14ss\", \"vrcp28pd\",\n \"vrcp28ps\", \"vrcp28sd\", \"vrcp28ss\", \"vrcpbf16\", \"vrcpph\", \"vrcpps\", \"vrcpsh\", \"vrcpss\", \"vreducebf16\", \"vreducepd\",\n \"vreduceph\", \"vreduceps\", \"vreducesd\", \"vreducesh\", \"vreducess\", \"vrndscalebf16\", \"vrndscalepd\", \"vrndscaleph\", \"vrndscaleps\", \"vrndscalesd\",\n \"vrndscalesh\", \"vrndscaless\", \"vroundpd\", \"vroundps\", \"vroundsd\", \"vroundss\", \"vrsqrt14pd\", \"vrsqrt14ps\", \"vrsqrt14sd\", \"vrsqrt14ss\",\n \"vrsqrt28pd\", \"vrsqrt28ps\", \"vrsqrt28sd\", \"vrsqrt28ss\", \"vrsqrtbf16\", \"vrsqrtph\", \"vrsqrtps\", \"vrsqrtsh\", \"vrsqrtss\", \"vscalefbf16\",\n \"vscalefpd\", \"vscalefph\", \"vscalefps\", \"vscalefsd\", \"vscalefsh\", \"vscalefss\", \"vscatterdpd\", \"vscatterdps\", \"vscatterpf0dpd\", \"vscatterpf0dps\",\n \"vscatterpf0qpd\", \"vscatterpf0qps\", \"vscatterpf1dpd\", \"vscatterpf1dps\", \"vscatterpf1qpd\", \"vscatterpf1qps\", \"vscatterqpd\", \"vscatterqps\", \"vsha512msg1\", \"vsha512msg2\",\n \"vsha512rnds2\", \"vshuff32x4\", \"vshuff64x2\", \"vshufi32x4\", \"vshufi64x2\", \"vshufpd\", \"vshufps\", \"vsm3msg1\", \"vsm3msg2\", \"vsm3rnds2\",\n \"vsm4key4\", \"vsm4rnds4\", \"vsqrtbf16\", \"vsqrtpd\", \"vsqrtph\", \"vsqrtps\", \"vsqrtsd\", \"vsqrtsh\", \"vsqrtss\", \"vstmxcsr\",\n \"vsubbf16\", \"vsubpd\", \"vsubph\", \"vsubps\", \"vsubsd\", \"vsubsh\", \"vsubss\", \"vtestpd\", \"vtestps\", \"vucomisd\",\n \"vucomish\", \"vucomiss\", \"vucomxsd\", \"vucomxsh\", \"vucomxss\", \"vunpckhpd\", \"vunpckhps\", \"vunpcklpd\", \"vunpcklps\", \"vxorpd\",\n \"vxorps\", \"vzeroall\", \"vzeroupper\", \"wait\", \"warning\", \"wbinvd\", \"wbnoinvd\", \"word\", \"wrfsbase\", \"wrgsbase\",\n \"wrmsr\", \"wrmsrlist\", \"wrmsrns\", \"wrpkru\", \"wrshr\", \"wrssd\", \"wrssq\", \"wrt\", \"wrussd\", \"wrussq\",\n \"xabort\", \"xacquire\", \"xadd\", \"xbegin\", \"xbts\", \"xchg\", \"xcryptcbc\", \"xcryptcfb\", \"xcryptctr\", \"xcryptecb\",\n \"xcryptofb\", \"xend\", \"xgetbv\", \"xlat\", \"xlatb\", \"xmm0\", \"xmm1\", \"xmm10\", \"xmm11\", \"xmm12\",\n \"xmm13\", \"xmm14\", \"xmm15\", \"xmm16\", \"xmm17\", \"xmm18\", \"xmm19\", \"xmm2\", \"xmm20\", \"xmm21\",\n \"xmm22\", \"xmm23\", \"xmm24\", \"xmm25\", \"xmm26\", \"xmm27\", \"xmm28\", \"xmm29\", \"xmm3\", \"xmm30\",\n \"xmm31\", \"xmm4\", \"xmm5\", \"xmm6\", \"xmm7\", \"xmm8\", \"xmm9\", \"xnor\", \"xnorb\", \"xnord\",\n \"xnorq\", \"xnorw\", \"xor\", \"xorb\", \"xord\", \"xorpd\", \"xorps\", \"xorq\", \"xorw\", \"xrelease\",\n \"xresldtrk\", \"xrstor\", \"xrstor64\", \"xrstors\", \"xrstors64\", \"xsave\", \"xsave64\", \"xsavec\", \"xsavec64\", \"xsaveopt\",\n \"xsaveopt64\", \"xsaves\", \"xsaves64\", \"xsetbv\", \"xsha1\", \"xsha256\", \"xstore\", \"xsusldtrk\", \"xtest\", \"ymm0\",\n \"ymm1\", \"ymm10\", \"ymm11\", \"ymm12\", \"ymm13\", \"ymm14\", \"ymm15\", \"ymm16\", \"ymm17\", \"ymm18\",\n \"ymm19\", \"ymm2\", \"ymm20\", \"ymm21\", \"ymm22\", \"ymm23\", \"ymm24\", \"ymm25\", \"ymm26\", \"ymm27\",\n \"ymm28\", \"ymm29\", \"ymm3\", \"ymm30\", \"ymm31\", \"ymm4\", \"ymm5\", \"ymm6\", \"ymm7\", \"ymm8\",\n \"ymm9\", \"yword\", \"zmm0\", \"zmm1\", \"zmm10\", \"zmm11\", \"zmm12\", \"zmm13\", \"zmm14\", \"zmm15\",\n \"zmm16\", \"zmm17\", \"zmm18\", \"zmm19\", \"zmm2\", \"zmm20\", \"zmm21\", \"zmm22\", \"zmm23\", \"zmm24\",\n \"zmm25\", \"zmm26\", \"zmm27\", \"zmm28\", \"zmm29\", \"zmm3\", \"zmm30\", \"zmm31\", \"zmm4\", \"zmm5\",\n \"zmm6\", \"zmm7\", \"zmm8\", \"zmm9\", \"zword\",\n]\n","import { parseInteger, type Token } from './lexer'\nimport { NASM_REGISTERS } from './nasm-reserved'\nimport type { TranslationDiagnosticCode } from './types'\n\n/** A symbol as an operand names it, before renaming and escaping. */\nexport type SymbolRef = { readonly name: string; readonly column: number }\n\n/** `g` a general register, `x` an `xmm` register, `f` an x87 register. */\nexport type RegisterClass = 'g' | 'x' | 'f'\n\nexport type Operand =\n /** `name` is the output spelling: `eax`, `xmm0`, `st1`. */\n | {\n readonly kind: 'register'\n readonly name: string\n readonly registerClass: RegisterClass\n /** The x87 stack index of `st` or `st(i)`. */\n readonly x87?: number\n /** The register as written, when it stood alone, which is what an ambiguous name looks like. */\n readonly bare?: Token\n }\n /** NASM's `to stN`: an x87 destination other than `st0`. */\n | { readonly kind: 'x87-to'; readonly name: string }\n | { readonly kind: 'immediate'; readonly text: string }\n /** `OFFSET FLAT:sym+8`: the symbol's address as an immediate. */\n | { readonly kind: 'address'; readonly symbol: SymbolRef; readonly addend: string }\n /** A bare symbol, which only a branch takes. */\n | { readonly kind: 'target'; readonly symbol: SymbolRef }\n | {\n readonly kind: 'memory'\n readonly size: string | null\n readonly symbol: SymbolRef | null\n /** `rip` for a RIP-relative operand. */\n readonly base: string | null\n readonly offset: string | null\n readonly index: string | null\n readonly scale: string | null\n /** `call [QWORD PTR [rbx]]`: the brackets GCC writes around an indirect branch's operand. */\n readonly indirect: boolean\n }\n\nexport type OperandProblem = {\n readonly code: TranslationDiagnosticCode\n readonly message: string\n readonly column: number\n /** A register name standing alone, which a symbol of the same name would make ambiguous instead. */\n readonly register?: Token\n}\n\nexport type OperandResult = { readonly operand: Operand } | { readonly problem: OperandProblem }\n\n/**\n * GCC's Intel size names and NASM's. Maps, like every table the input's words are looked up in, so\n * that no word reads a property every object has (`constructor PTR`, `__proto__ PTR`).\n */\nconst SIZES: ReadonlyMap<string, string> = new Map([\n ['byte', 'byte'],\n ['word', 'word'],\n ['dword', 'dword'],\n ['qword', 'qword'],\n ['tbyte', 'tword'],\n ['xmmword', 'oword'],\n])\n\nconst UNSUPPORTED_SIZES: ReadonlyMap<string, string> = new Map([\n ['ymmword', 'a 32-byte operand needs AVX'],\n ['zmmword', 'a 64-byte operand needs AVX-512'],\n])\n\nconst GPR64 = [\n 'rax',\n 'rbx',\n 'rcx',\n 'rdx',\n 'rsi',\n 'rdi',\n 'rbp',\n 'rsp',\n 'r8',\n 'r9',\n 'r10',\n 'r11',\n 'r12',\n 'r13',\n 'r14',\n 'r15',\n]\n\n/** The general registers of x86-64 in every width, as GCC spells them. */\nconst GENERAL_REGISTERS = new Set([\n ...GPR64,\n ...['eax', 'ebx', 'ecx', 'edx', 'esi', 'edi', 'ebp', 'esp'],\n ...['ax', 'bx', 'cx', 'dx', 'si', 'di', 'bp', 'sp'],\n ...['al', 'bl', 'cl', 'dl', 'ah', 'bh', 'ch', 'dh', 'sil', 'dil', 'bpl', 'spl'],\n ...[8, 9, 10, 11, 12, 13, 14, 15].flatMap((n) => [`r${n}d`, `r${n}w`, `r${n}b`]),\n])\n\nconst SEGMENT_REGISTERS = new Set(['es', 'cs', 'ss', 'ds', 'fs', 'gs'])\n\n/**\n * What GNU as reads as a register in GCC's output: NASM's register names, which are GNU as's apart\n * from NASM's own `st0`-`st7` and `segr6`-`segr7`, plus GNU as's `st` and its address-only names.\n */\nconst GAS_REGISTERS = new Set([\n ...NASM_REGISTERS.filter((name) => !/^st[0-7]$|^segr[67]$/.test(name)),\n 'st',\n 'rip',\n 'eip',\n 'riz',\n 'eiz',\n])\n\n/** Whether GNU as reads `text` as a register, whatever its case. */\nexport function isGasRegister(text: string): boolean {\n return GAS_REGISTERS.has(text.toLowerCase())\n}\n\n/** Why a register outside the translator's set is rejected; the code is the Diagnostic's. */\nfunction registerProblem(name: string): { code: TranslationDiagnosticCode; reason: string } {\n if (/^mm[0-7]$/.test(name))\n return {\n code: 'unsupported-instruction',\n reason: \"is an MMX register, and this Core's Blink is built without MMX\",\n }\n if (/^ymm\\d+$/.test(name)) return { code: 'unsupported-instruction', reason: 'is an AVX register' }\n if (/^(zmm\\d+|xmm(1[6-9]|2\\d|3[01]))$/.test(name))\n return { code: 'unsupported-instruction', reason: 'is an AVX-512 register' }\n if (/^k[0-7]$/.test(name)) return { code: 'unsupported-instruction', reason: 'is an AVX-512 mask register' }\n if (/^r(1[6-9]|2\\d|3[01])[bwd]?$/.test(name))\n return { code: 'unsupported-instruction', reason: 'is an APX register' }\n if (/^tmm\\d$/.test(name)) return { code: 'unsupported-instruction', reason: 'is an AMX register' }\n if (/^bnd\\d$/.test(name)) return { code: 'unsupported-instruction', reason: 'is an MPX register' }\n if (SEGMENT_REGISTERS.has(name)) return { code: 'unsupported-instruction', reason: 'is a segment register' }\n if (/^(cr|dr|tr)\\d+$/.test(name)) return { code: 'unsupported-instruction', reason: 'is a system register' }\n return { code: 'unsupported-operand', reason: 'cannot stand alone as an operand' }\n}\n\ntype OperandToken = { readonly kind: 'ident' | 'number' | 'punct'; readonly text: string; readonly column: number }\n\nfunction tokenize(operand: Token): OperandToken[] | OperandProblem {\n const tokens: OperandToken[] = []\n const text = operand.text\n let index = 0\n while (index < text.length) {\n const character = text[index]!\n const column = operand.column + index\n if (/\\s/.test(character)) {\n index += 1\n continue\n }\n const ident = /^[A-Za-z_.$][A-Za-z0-9_.$]*/.exec(text.slice(index))\n if (ident) {\n tokens.push({ kind: 'ident', text: ident[0], column })\n index += ident[0].length\n continue\n }\n const number = /^[0-9][A-Za-z0-9_]*/.exec(text.slice(index))\n if (number) {\n if (/^\\d+[bf]$/.test(number[0])) {\n return {\n code: 'unsupported-symbol',\n message: `\\`${number[0]}\\` refers to a numeric label, which the translator does not read`,\n column,\n }\n }\n tokens.push({ kind: 'number', text: number[0], column })\n index += number[0].length\n continue\n }\n if ('[](),+-*:'.includes(character)) {\n tokens.push({ kind: 'punct', text: character, column })\n index += 1\n continue\n }\n if (character === '@') {\n const operator = /^@[A-Za-z0-9_]*/.exec(text.slice(index))?.[0] ?? character\n return {\n code: 'unsupported-operand',\n message: `relocation operator \\`${operator}\\` has no translation; the profile compiles with -fno-pie and without thread-local storage`,\n column,\n }\n }\n return { code: 'unsupported-operand', message: `unexpected \\`${character}\\` in operand \\`${text}\\``, column }\n }\n return tokens\n}\n\nconst isPunct = (token: OperandToken | undefined, text: string) => token?.kind === 'punct' && token.text === text\nconst isWord = (token: OperandToken | undefined, word: string) =>\n token?.kind === 'ident' && token.text.toLowerCase() === word\n\nfunction shapeProblem(operand: Token): OperandProblem {\n return {\n code: 'unsupported-operand',\n message: `operand \\`${operand.text}\\` has a shape the translator does not read`,\n column: operand.column,\n }\n}\n\n/** A number the operand grammar accepts, with its sign. */\nfunction readNumber(tokens: readonly OperandToken[], at: number): { text: string; value: bigint; next: number } | null {\n const negative = isPunct(tokens[at], '-')\n const token = tokens[negative ? at + 1 : at]\n if (token?.kind !== 'number') return null\n const value = parseInteger(token.text)\n if (value === null) return null\n return {\n text: negative ? `-${token.text}` : token.text,\n value: negative ? -value : value,\n next: (negative ? at + 1 : at) + 1,\n }\n}\n\n/**\n * Reads one instruction operand of GCC's Intel syntax, as `ix86_print_operand` writes them: a\n * register, `st(i)`, an integer, `OFFSET FLAT:sym±n`, a bare branch target, or memory, which is an\n * optional `SIZE PTR`, an optional symbol and `[base±offset+index*scale]`, `[offset+index*scale]`\n * or `[rip±offset]`, and for an indirect branch the whole of that in brackets once more.\n */\nexport function parseOperand(operand: Token): OperandResult {\n const tokens = tokenize(operand)\n if (!Array.isArray(tokens)) return { problem: tokens }\n if (tokens.length === 0)\n return { problem: { code: 'unsupported-operand', message: 'empty operand', column: operand.column } }\n const [first, second] = tokens\n\n const sizeName = first?.kind === 'ident' ? first.text.toLowerCase() : ''\n if (first?.kind === 'ident' && isWord(second, 'ptr')) {\n const unsupported = UNSUPPORTED_SIZES.get(sizeName)\n if (unsupported) {\n return {\n problem: {\n code: 'unsupported-instruction',\n message: `\\`${first.text} PTR\\`: ${unsupported}`,\n column: first.column,\n },\n }\n }\n const size = SIZES.get(sizeName)\n if (!size) return { problem: shapeProblem(operand) }\n return parseMemory(operand, tokens.slice(2), size, false)\n }\n\n if (isPunct(first, '[') && isPunct(tokens[tokens.length - 1], ']') && isWord(tokens[2], 'ptr')) {\n const innerSize = tokens[1]?.kind === 'ident' ? SIZES.get(tokens[1].text.toLowerCase()) : undefined\n if (!innerSize) return { problem: shapeProblem(operand) }\n return parseMemory(operand, tokens.slice(3, -1), innerSize, true)\n }\n if (isPunct(first, '[')) return parseMemory(operand, tokens, null, false)\n\n if (isWord(first, 'offset') && isWord(second, 'flat') && isPunct(tokens[2], ':')) {\n const symbol = tokens[3]\n if (symbol?.kind !== 'ident') return { problem: shapeProblem(operand) }\n if (tokens.length === 4)\n return { operand: { kind: 'address', symbol: { name: symbol.text, column: symbol.column }, addend: '' } }\n const sign = tokens[4]\n const number = tokens[5]\n const value = number?.kind === 'number' ? parseInteger(number.text) : null\n if (tokens.length !== 6 || !(isPunct(sign, '+') || isPunct(sign, '-')) || value === null) {\n return { problem: expressionProblem(operand) }\n }\n return {\n operand: {\n kind: 'address',\n symbol: { name: symbol.text, column: symbol.column },\n addend: `${sign!.text}${number!.text}`,\n },\n }\n }\n\n if (\n first?.kind === 'ident' &&\n first.text.toLowerCase() === 'st' &&\n tokens.length === 4 &&\n isPunct(second, '(') &&\n isPunct(tokens[3], ')')\n ) {\n const index = tokens[2]?.kind === 'number' ? /^[0-7]$/.exec(tokens[2].text) : null\n if (!index) return { problem: shapeProblem(operand) }\n return { operand: { kind: 'register', name: `st${index[0]}`, registerClass: 'f', x87: Number(index[0]) } }\n }\n\n if (first?.kind === 'ident' && tokens.length === 1) {\n const name = first.text.toLowerCase()\n if (!isGasRegister(name))\n return { operand: { kind: 'target', symbol: { name: first.text, column: first.column } } }\n const bare = { text: first.text, column: first.column }\n if (name === 'st') return { operand: { kind: 'register', name: 'st0', registerClass: 'f', x87: 0, bare } }\n if (GENERAL_REGISTERS.has(name)) return { operand: { kind: 'register', name, registerClass: 'g', bare } }\n if (/^xmm([0-9]|1[0-5])$/.test(name)) return { operand: { kind: 'register', name, registerClass: 'x', bare } }\n const problem = registerProblem(name)\n return {\n problem: {\n code: problem.code,\n message: `\\`${first.text}\\` ${problem.reason}`,\n column: first.column,\n register: bare,\n },\n }\n }\n\n if (first?.kind === 'ident' && isPunct(second, '[')) return parseMemory(operand, tokens, null, false)\n if (first?.kind === 'ident' && SEGMENT_REGISTERS.has(first.text.toLowerCase()) && isPunct(second, ':')) {\n return { problem: segmentProblem(first) }\n }\n\n const number = readNumber(tokens, 0)\n if (number && number.next === tokens.length) return { operand: { kind: 'immediate', text: number.text } }\n if (first?.kind === 'number' && parseInteger(first.text) === null) {\n return {\n problem: {\n code: 'unsupported-operand',\n message: `\\`${first.text}\\` is not an integer the translator reads`,\n column: first.column,\n },\n }\n }\n return { problem: expressionProblem(operand) }\n}\n\nfunction expressionProblem(operand: Token): OperandProblem {\n return {\n code: 'unsupported-operand',\n message: `operand \\`${operand.text}\\` is an expression beyond an integer, a symbol, or a symbol plus or minus an integer`,\n column: operand.column,\n }\n}\n\nfunction segmentProblem(token: OperandToken): OperandProblem {\n const why = /^[fg]s$/i.test(token.text)\n ? 'GCC writes it for thread-local storage and the stack protector'\n : 'GCC writes it for an absolute address'\n return {\n code: 'unsupported-operand',\n message: `segment override \\`${token.text}:\\` has no translation; ${why}`,\n column: token.column,\n }\n}\n\nfunction parseMemory(\n operand: Token,\n tokens: readonly OperandToken[],\n size: string | null,\n indirect: boolean,\n): OperandResult {\n let at = 0\n const head = tokens[0]\n if (head?.kind === 'ident' && SEGMENT_REGISTERS.has(head.text.toLowerCase()) && isPunct(tokens[1], ':')) {\n return { problem: segmentProblem(head) }\n }\n let symbol: SymbolRef | null = null\n if (head?.kind === 'ident' && isPunct(tokens[1], '[')) {\n // Plan note 1: whatever its spelling, a token before `[` is a symbol.\n symbol = { name: head.text, column: head.column }\n at = 1\n }\n if (!isPunct(tokens[at], '[') || !isPunct(tokens[tokens.length - 1], ']')) return { problem: shapeProblem(operand) }\n const inner = tokens.slice(at + 1, -1)\n if (inner.some((token) => isPunct(token, '[') || isPunct(token, ']'))) return { problem: shapeProblem(operand) }\n\n let index = 0\n let base: string | null = null\n let offset: { text: string; value: bigint } | null = null\n let indexRegister: string | null = null\n let scale: string | null = null\n\n const baseToken = inner[0]\n if (baseToken?.kind === 'ident') {\n const name = baseToken.text.toLowerCase()\n if (name !== 'rip' && !GPR64.includes(name)) return { problem: addressRegisterProblem(baseToken) }\n base = name\n index = 1\n if (isPunct(inner[1], '+') || isPunct(inner[1], '-')) {\n const value = inner[2]?.kind === 'number' ? parseInteger(inner[2].text) : null\n if (value !== null) {\n offset = {\n text: `${inner[1]!.text === '-' ? '-' : ''}${inner[2]!.text}`,\n value: inner[1]!.text === '-' ? -value : value,\n }\n index = 3\n }\n }\n } else {\n const number = readNumber(inner, 0)\n if (!number) return { problem: shapeProblem(operand) }\n offset = { text: number.text, value: number.value }\n index = number.next\n }\n if (isPunct(inner[index], '+') && inner[index + 1]?.kind === 'ident') {\n const register = inner[index + 1]!\n const name = register.text.toLowerCase()\n if (!GPR64.includes(name) || name === 'rsp') return { problem: addressRegisterProblem(register) }\n indexRegister = name\n index += 2\n if (isPunct(inner[index], '*')) {\n const factor = inner[index + 1]\n if (factor?.kind !== 'number' || !['1', '2', '4', '8'].includes(factor.text))\n return { problem: shapeProblem(operand) }\n scale = factor.text\n index += 2\n }\n }\n if (index !== inner.length) return { problem: shapeProblem(operand) }\n\n if (base === 'rip' && (indexRegister || !symbol)) return { problem: shapeProblem(operand) }\n if (!base && !indexRegister) {\n return {\n problem: {\n code: 'unsupported-operand',\n message: `operand \\`${operand.text}\\` is an absolute address, which the translator does not read`,\n column: operand.column,\n },\n }\n }\n return {\n operand: {\n kind: 'memory',\n size,\n symbol,\n base,\n offset: offset ? offset.text : null,\n index: indexRegister,\n scale,\n indirect,\n },\n }\n}\n\nfunction addressRegisterProblem(token: OperandToken): OperandProblem {\n return {\n code: 'unsupported-operand',\n message: `\\`${token.text}\\` is not a 64-bit base or index register the translator reads in an address`,\n column: token.column,\n }\n}\n\n/** Whether an offset of a memory operand is zero, which NASM needs no `+0` for after a symbol. */\nfunction isZero(text: string): boolean {\n return parseInteger(text.replace(/^-/, '')) === 0n\n}\n\n/** The operand in NASM syntax, `nasmName` spelling each symbol. */\nexport function renderOperand(operand: Operand, nasmName: (name: string) => string): string {\n switch (operand.kind) {\n case 'register':\n return operand.name\n case 'x87-to':\n return `to ${operand.name}`\n case 'immediate':\n return operand.text\n case 'address':\n return `${nasmName(operand.symbol.name)}${operand.addend}`\n case 'target':\n return nasmName(operand.symbol.name)\n case 'memory': {\n const signed = (text: string) => (text.startsWith('-') ? text : `+${text}`)\n let address: string\n if (operand.base === 'rip') {\n address = `rel ${nasmName(operand.symbol!.name)}${operand.offset && !isZero(operand.offset) ? signed(operand.offset) : ''}`\n } else {\n address = operand.symbol ? nasmName(operand.symbol.name) : ''\n if (operand.base) address += `${address ? '+' : ''}${operand.base}`\n if (operand.offset !== null) {\n if (operand.base) address += signed(operand.offset)\n else if (operand.symbol) address += isZero(operand.offset) ? '' : signed(operand.offset)\n else address += operand.offset\n }\n if (operand.index) address += `+${operand.index}${operand.scale ? `*${operand.scale}` : ''}`\n }\n return `${operand.size ? `${operand.size} ` : ''}[${address}]`\n }\n }\n}\n\n/** The operand kind an instruction-set form names: `g`, `x`, `f`, `m` or `i`. */\nexport function operandKind(operand: Operand): string {\n switch (operand.kind) {\n case 'register':\n return operand.registerClass\n case 'x87-to':\n return 'f'\n case 'memory':\n return 'm'\n default:\n return 'i'\n }\n}\n\n/** The symbols an operand names, in the order it names them. */\nexport function operandSymbols(operand: Operand): SymbolRef[] {\n if (operand.kind === 'address' || operand.kind === 'target') return [operand.symbol]\n if (operand.kind === 'memory' && operand.symbol) return [operand.symbol]\n return []\n}\n","import { splitCommas, type Token } from './lexer'\nimport { NASM_INSTRUCTION_SET, NASM_REJECTION_REASONS } from './nasm-instruction-set'\nimport { operandKind, parseOperand, type Operand, type OperandProblem } from './operands'\n\nexport type Instruction = {\n /** `rep`, `lock` and the like, as written. */\n readonly prefix: string | null\n /** As written; GCC writes lowercase. */\n readonly mnemonic: string\n readonly operands: readonly Operand[]\n}\n\nexport type InstructionResult = { readonly instruction: Instruction } | { readonly problems: readonly OperandProblem[] }\n\n/** The prefixes GCC writes as words of their own, which NASM spells the same. */\nconst PREFIXES = new Set(['rep', 'repe', 'repz', 'repne', 'repnz', 'lock'])\n\n/** GNU as prefix words with no NASM spelling the translator writes, or no place in the profile. */\nconst UNSUPPORTED_PREFIXES = new Set([\n 'data16',\n 'data32',\n 'addr16',\n 'addr32',\n 'rex',\n 'rex64',\n 'rex2',\n 'notrack',\n 'bnd',\n 'xacquire',\n 'xrelease',\n 'cs',\n 'ds',\n 'es',\n 'fs',\n 'gs',\n 'ss',\n])\n\n/** A one-operand shift or rotate is by one in GNU as; NASM wants the count written. */\nconst SHIFTS = new Set(['sal', 'shl', 'sar', 'shr', 'rol', 'ror', 'rcl', 'rcr'])\n\nconst CONDITIONS = [\n 'a',\n 'ae',\n 'b',\n 'be',\n 'c',\n 'e',\n 'g',\n 'ge',\n 'l',\n 'le',\n 'na',\n 'nae',\n 'nb',\n 'nbe',\n 'nc',\n 'ne',\n 'ng',\n 'nge',\n 'nl',\n 'nle',\n 'no',\n 'np',\n 'ns',\n 'nz',\n 'o',\n 'p',\n 'pe',\n 'po',\n 's',\n 'z',\n]\n\n/** The instructions whose operand may be a bare symbol: a branch target, never a memory operand. */\nconst BRANCHES = new Set([\n 'call',\n 'jmp',\n 'jcxz',\n 'jecxz',\n 'jrcxz',\n 'loop',\n 'loope',\n 'loopne',\n 'loopnz',\n 'loopz',\n ...CONDITIONS.map((condition) => `j${condition}`),\n])\n\n/** x87 arithmetic, whose two-register forms milestone 1's matrix verifies (plan note 2). */\nconst X87_ARITHMETIC = new Set(['fadd', 'fsub', 'fsubr', 'fmul', 'fdiv', 'fdivr'])\nconst X87_POPPING = new Set(['faddp', 'fsubp', 'fsubrp', 'fmulp', 'fdivp', 'fdivrp'])\n/** Comparisons with `st` first, as the corpus has them. */\nconst X87_COMPARISONS = new Set(['fcomi', 'fcomip', 'fucomi', 'fucomip'])\n/** One-register x87 instructions, which mean the same to GNU as and NASM. */\nconst X87_SINGLE = new Set(['fld', 'fst', 'fstp', 'fxch', 'fcom', 'fcomp', 'fucom', 'fucomp', 'ffree'])\n\n/** The instruction set the profile allows, for messages. */\nconst ALLOWED_SET = 'the x86-64 baseline, x87, SSE, SSE2 and SSE3'\n\n/** A first word and the rest of the statement after the whitespace that ends it. */\nconst WORDS = /^(\\S+)(?:\\s+([\\s\\S]*))?$/\n\n/**\n * Reads an instruction statement and translates it: GCC's operands into NASM's, a count for\n * one-operand shifts, the x87 register forms NASM accepts, and the instruction-set check.\n */\nexport function translateInstruction(body: Token): InstructionResult {\n const words = WORDS.exec(body.text)\n if (!words) {\n return problem(\n 'unsupported-instruction',\n `\\`${body.text}\\` is not an instruction the translator reads`,\n body.column,\n )\n }\n let mnemonic = { text: words[1]!, column: body.column }\n let rest = words[2] ?? ''\n let restColumn = body.column + body.text.length - rest.length\n let prefix: string | null = null\n\n if (UNSUPPORTED_PREFIXES.has(mnemonic.text.toLowerCase())) {\n return problem('unsupported-instruction', prefixMessage(mnemonic.text), mnemonic.column)\n }\n if (PREFIXES.has(mnemonic.text.toLowerCase())) {\n const next = WORDS.exec(rest)\n if (!next)\n return problem(\n 'unsupported-instruction',\n `prefix \\`${mnemonic.text}\\` without an instruction`,\n mnemonic.column,\n )\n prefix = mnemonic.text\n const column = restColumn\n mnemonic = { text: next[1]!, column }\n rest = next[2] ?? ''\n restColumn = body.column + body.text.length - rest.length\n const lower = mnemonic.text.toLowerCase()\n if (UNSUPPORTED_PREFIXES.has(lower))\n return problem('unsupported-instruction', prefixMessage(mnemonic.text), mnemonic.column)\n if (PREFIXES.has(lower)) {\n return problem(\n 'unsupported-instruction',\n `a second prefix, \\`${mnemonic.text}\\`, has no translation`,\n mnemonic.column,\n )\n }\n }\n\n const name = mnemonic.text.toLowerCase()\n if (!/^[a-z][a-z0-9]*$/.test(name)) {\n return problem(\n 'unsupported-instruction',\n `\\`${mnemonic.text}\\` is not an instruction the translator reads`,\n mnemonic.column,\n )\n }\n const entry = NASM_INSTRUCTION_SET.get(name)\n if (!entry)\n return problem('unsupported-instruction', `NASM 3.00 has no instruction \\`${mnemonic.text}\\``, mnemonic.column)\n\n const parsed: Operand[] = []\n const problems: OperandProblem[] = []\n for (const piece of splitCommas({ text: rest, column: restColumn })) {\n const result = parseOperand(piece)\n if ('problem' in result) problems.push(result.problem)\n else parsed.push(result.operand)\n }\n if (problems.length) return { problems }\n\n for (const operand of parsed) {\n if (operand.kind === 'target' && !BRANCHES.has(name)) {\n return problem(\n 'unsupported-operand',\n `\\`${operand.symbol.name}\\` alone is a memory operand to GNU as but an immediate to NASM; GCC writes \\`${operand.symbol.name}[rip]\\` or \\`OFFSET FLAT:${operand.symbol.name}\\` for those`,\n operand.symbol.column,\n )\n }\n if (operand.kind === 'memory' && operand.indirect && name !== 'call' && name !== 'jmp') {\n return problem(\n 'unsupported-operand',\n 'only an indirect `call` or `jmp` takes a bracketed memory operand',\n mnemonic.column,\n )\n }\n }\n\n const x87 = translateX87(name, parsed, mnemonic)\n if ('problems' in x87) return x87\n let operands = x87.operands\n if (SHIFTS.has(name) && operands.length === 1) operands = [...operands, { kind: 'immediate', text: '1' }]\n\n const kinds = operands.map(operandKind)\n const [allowed, rejected] = entry\n if (allowed && allowed.split('|').some((form) => formMatches(form, kinds))) {\n return { instruction: { prefix, mnemonic: mnemonic.text, operands } }\n }\n const forms = rejected ? rejected.split('|').map((form) => form.split('=') as [string, string]) : []\n const matching = forms.filter(([form]) => form === '*' || formMatches(form, kinds))\n const all = [...new Set((matching.length ? matching : forms).flatMap(([, indices]) => indices.split('+')))].map(\n (index) => NASM_REJECTION_REASONS[Number(index)]!,\n )\n // APX re-encodes many legacy instructions; the legacy form's reason is the one that explains.\n const legacy = all.filter((reason) => !reason.includes('APX'))\n const reasons = legacy.length ? legacy : all\n const which = allowed ? ' in this form' : ''\n const why = reasons.length ? reasons.join(' or ') : 'has no form with these operands'\n return problem(\n 'unsupported-instruction',\n `\\`${mnemonic.text}\\`${which} ${why}; the profile allows ${ALLOWED_SET}`,\n mnemonic.column,\n )\n}\n\n/** Whether operand kinds fit a form of the instruction-set table, such as `g,gm` or `_`. */\nfunction formMatches(form: string, kinds: readonly string[]): boolean {\n const expected = form === '_' ? [] : form.split(',')\n return expected.length === kinds.length && expected.every((accepted, index) => accepted.includes(kinds[index]!))\n}\n\n/**\n * NASM 3.00 rejects every two-register x87 spelling (plan note 2), so `fop st, st(i)` becomes\n * `fop sti`, `fopp st(i), st` becomes `fopp sti` and a non-popping `fop st(i), st` becomes\n * `fop to sti`: exactly the forms milestone 1's x87 matrix verifies, plus the comparisons and\n * one-register forms of the corpus. Any other x87 register form is an error.\n */\nfunction translateX87(\n name: string,\n operands: readonly Operand[],\n mnemonic: Token,\n): { operands: Operand[] } | { problems: OperandProblem[] } {\n const stack = operands.map((operand) =>\n operand.kind === 'register' && operand.registerClass === 'f' ? operand : null,\n )\n const registers = stack.filter((operand) => operand !== null)\n const [first, second] = stack\n const outside = () =>\n problem(\n 'unsupported-instruction',\n `\\`${mnemonic.text}\\` with these x87 operands is outside the forms the translator verifies`,\n mnemonic.column,\n ) as { problems: OperandProblem[] }\n\n if (X87_ARITHMETIC.has(name)) {\n if (operands.length === 1 && operands[0]!.kind === 'memory') return { operands: [...operands] }\n if (operands.length !== 2 || !first || !second) return outside()\n if (first.x87 === 0) return { operands: [second] }\n if (second.x87 === 0) return { operands: [{ kind: 'x87-to', name: first.name }] }\n return outside()\n }\n if (X87_POPPING.has(name)) {\n if (operands.length === 2 && first && second && second.x87 === 0) return { operands: [first] }\n return outside()\n }\n if (X87_COMPARISONS.has(name)) {\n if (operands.length === 2 && first && second && first.x87 === 0) return { operands: [second] }\n return outside()\n }\n if (X87_SINGLE.has(name)) {\n if (operands.length <= 1) return { operands: [...operands] }\n return outside()\n }\n if (registers.length) return outside()\n return { operands: [...operands] }\n}\n\nfunction prefixMessage(prefix: string): string {\n if (prefix.toLowerCase() === 'notrack') {\n // NASM 3.00 has no `notrack`: it reads the word as a label and drops the prefix without a\n // warning. `ds` and `{pt}` warn, and `db 0x3e` on a line of its own splits the instruction\n // in two for the debugger, so none of them is an exact equivalent.\n return 'prefix `notrack` (from -fcf-protection) has no exact NASM 3.00 equivalent; the profile compiles with -fcf-protection=none'\n }\n return `prefix \\`${prefix}\\` has no translation`\n}\n\nfunction problem(code: OperandProblem['code'], message: string, column: number): { problems: OperandProblem[] } {\n return { problems: [{ code, message, column }] }\n}\n","import type { DiagnosticCollector } from './diagnostics'\nimport { decodeGasString, splitWords, type Token } from './lexer'\nimport type { CompilerLocation } from './types'\n\n/** `.loc` options that change nothing about which source line an instruction came from. */\nconst IGNORED_OPTIONS = new Set(['discriminator', 'is_stmt', 'view'])\n\n/**\n * The compiler's own source locations: `.file N \"name\"` declares a file number, and `.loc N line\n * column` makes that file and line current for the instructions after it, until another `.loc`, a\n * section directive or `.cfi_endproc`.\n */\nexport class LocationTracker {\n private readonly files = new Map<number, string>()\n private location: CompilerLocation | null = null\n\n constructor(private readonly diagnostics: DiagnosticCollector) {}\n\n get current(): CompilerLocation | null {\n return this.location\n }\n\n clear(): void {\n this.location = null\n }\n\n /** `.file \"name\"`, `.file N \"name\"` or `.file N \"directory\" \"name\"`. */\n file(body: Token, inputLine: number): void {\n const words = splitWords(body)\n if (words.length === 1 && words[0]!.text.startsWith('\"')) return // the primary source's name\n const number = words[0] && /^(?:0|[1-9][0-9]*)$/.test(words[0].text) ? Number(words[0].text) : null\n const strings = words.slice(1)\n if (number === null || strings.length < 1 || strings.length > 2) {\n this.unreadable(inputLine, `\\`.file ${body.text}\\` is not a form the translator reads`, body.column)\n return\n }\n const decoded = decodeGasString(strings[strings.length - 1]!)\n if ('error' in decoded) {\n this.unreadable(inputLine, `\\`.file\\`: ${decoded.error}`, strings[strings.length - 1]!.column)\n return\n }\n const name = new TextDecoder().decode(decoded.bytes)\n const known = this.files.get(number)\n if (known !== undefined && known !== name) {\n this.unreadable(\n inputLine,\n `\\`.file ${number}\\` is declared again as \"${name}\" after \"${known}\"`,\n body.column,\n )\n return\n }\n this.files.set(number, name)\n }\n\n /** `.loc file line [column] [option value]...`; an unreadable one leaves no location. */\n loc(body: Token, inputLine: number): void {\n this.location = null\n const words = splitWords(body)\n const [fileWord, lineWord, ...rest] = words\n const integer = (word: Token | undefined) =>\n word && /^(?:0|[1-9][0-9]*)$/.test(word.text) ? Number(word.text) : null\n const fileNumber = integer(fileWord)\n const line = integer(lineWord)\n if (fileNumber === null || line === null) {\n this.unreadable(inputLine, `\\`.loc ${body.text}\\` has no file and line numbers`, body.column)\n return\n }\n let column = 0\n let index = 0\n if (rest[0] && integer(rest[0]) !== null) {\n column = integer(rest[0])!\n index = 1\n }\n while (index < rest.length) {\n const option = rest[index]!\n if (!IGNORED_OPTIONS.has(option.text) || rest[index + 1] === undefined) {\n this.unreadable(\n inputLine,\n `\\`.loc\\` option \\`${option.text}\\` is not one the translator reads`,\n option.column,\n )\n return\n }\n index += 2\n }\n const file = this.files.get(fileNumber)\n if (file === undefined) {\n this.unreadable(\n inputLine,\n `\\`.loc\\` names file ${fileNumber}, which no \\`.file\\` declared`,\n fileWord!.column,\n )\n return\n }\n this.location = { file, line, column }\n }\n\n private unreadable(inputLine: number, message: string, column: number): void {\n this.diagnostics.warning('unreadable-location', inputLine, message, column, null)\n }\n}\n","import { GAS_SYMBOL } from './lexer'\nimport { NASM_RESERVED_NAMES } from './nasm-reserved'\n\nconst RESERVED = new Set(NASM_RESERVED_NAMES)\n\n/** NASM copies at most this many characters of an identifier (`IDLEN_MAX - 1` in `include/nasm.h`). */\nconst NASM_IDENTIFIER_LIMIT = 4095\n\n/** Whether NASM reads `name` as an instruction, register, keyword, directive or standard macro. */\nexport function isReservedName(name: string): boolean {\n return RESERVED.has(name.toLowerCase())\n}\n\n/** GCC's assembler-local labels, which NASM would scope to the previous ordinary label. */\nexport function isLocalLabel(name: string): boolean {\n return name.startsWith('.L')\n}\n\n/**\n * The labels GCC writes only for debug information and call-frame tables, which the translation\n * drops: function and block boundaries, variable locations, and the text and debug section anchors.\n */\nexport function isDebugLabel(name: string): boolean {\n return /^\\.L(?:FB|FE|BB|BE|VL)\\d+$/.test(name) || /^\\.Le?text\\d+$/.test(name) || /^\\.Ldebug\\w*$/.test(name)\n}\n\n/** Why a symbol name cannot be translated, or null when it can. */\nexport function symbolNameProblem(name: string): string | null {\n if (!GAS_SYMBOL.test(name)) return `\\`${name}\\` is not a symbol name the translator reads`\n if (name.startsWith('$')) {\n return `\\`${name}\\` starts with \\`$\\`, which NASM reads as an escape rather than part of the name`\n }\n if (name.startsWith('.') && !isLocalLabel(name)) {\n return `\\`${name}\\` starts with \\`.\\`, which NASM reads as a label local to the previous one`\n }\n if (name.length >= NASM_IDENTIFIER_LIMIT) {\n return `\\`${name.slice(0, 40)}…\\` is longer than the ${NASM_IDENTIFIER_LIMIT} characters NASM keeps of a name`\n }\n return null\n}\n\n/**\n * How the output spells each name: a `.L` label loses its dot and gains `_` until it differs from\n * every other name of the unit, and a name NASM reserves is `$`-escaped.\n */\nexport class NameMap {\n private readonly spelled = new Map<string, string>()\n private escapedAny = false\n\n /** `unitNames` are every name the unit defines or references. */\n constructor(private readonly unitNames: ReadonlySet<string>) {}\n\n /** The name as the output spells it. */\n nasmName(name: string): string {\n const known = this.spelled.get(name)\n if (known !== undefined) return known\n let renamed = name\n if (isLocalLabel(name)) {\n renamed = name.slice(1)\n while (this.unitNames.has(renamed)) renamed = `_${renamed}`\n }\n const spelling = isReservedName(renamed) ? `$${renamed}` : renamed\n this.spelled.set(name, spelling)\n return spelling\n }\n\n /** Use while emitting: the same as {@link nasmName}, recording whether the output escapes a name. */\n emit(name: string): string {\n const spelling = this.nasmName(name)\n if (spelling.startsWith('$')) this.escapedAny = true\n return spelling\n }\n\n /** Whether any name emitted so far is `$`-escaped, which the header must allow for. */\n get escapes(): boolean {\n return this.escapedAny\n }\n}\n","import type { Token } from './lexer'\n\n/** The NASM sections GCC's sections flatten into. */\nexport type SectionFamily = '.text' | '.rodata' | '.data' | '.bss' | '.init_array'\n\nexport type SectionClass =\n | { readonly kind: 'kept'; readonly family: SectionFamily }\n /** Debug information and notes, whose contents the translation drops. */\n | { readonly kind: 'dropped' }\n | { readonly kind: 'unsupported'; readonly message: string; readonly column: number }\n\n/**\n * The alignment NASM's ELF backend gives each section unless told otherwise (`output/outelf.c`,\n * `elf_known_sections`; `.init_array` gets the pointer size).\n */\nexport const NASM_DEFAULT_ALIGNMENT: Readonly<Record<SectionFamily, number>> = {\n '.text': 16,\n '.rodata': 4,\n '.data': 4,\n '.bss': 4,\n '.init_array': 8,\n}\n\ntype FamilyRule = {\n readonly family: SectionFamily\n /** Flags GCC writes for the family; `G` (a COMDAT group) is allowed on top of any of them. */\n readonly flags: readonly string[]\n readonly types: readonly string[]\n}\n\nconst RULES: readonly (FamilyRule & { readonly matches: (name: string) => boolean })[] = [\n { matches: (name) => family(name, '.text'), family: '.text', flags: ['ax'], types: ['@progbits'] },\n {\n matches: (name) => family(name, '.data.rel.ro'),\n family: '.rodata',\n flags: ['aw'],\n types: ['@progbits'],\n },\n {\n matches: (name) => family(name, '.rodata'),\n family: '.rodata',\n flags: ['a', 'aM', 'aMS'],\n types: ['@progbits'],\n },\n { matches: (name) => family(name, '.data'), family: '.data', flags: ['aw'], types: ['@progbits'] },\n { matches: (name) => family(name, '.bss'), family: '.bss', flags: ['aw'], types: ['@nobits'] },\n {\n matches: (name) => name === '.init_array',\n family: '.init_array',\n flags: ['aw', 'a'],\n types: ['@init_array'],\n },\n]\n\nfunction family(name: string, base: string): boolean {\n return name === base || name.startsWith(`${base}.`)\n}\n\n/** Sections whose contents are debug information or metadata that a static link does not need. */\nfunction isDropped(name: string): boolean {\n return name.startsWith('.debug_') || name === '.note.GNU-stack' || name === '.note.gnu.property'\n}\n\n/** Why GCC would have written each section the translation rejects. */\nfunction unsupportedReason(name: string): string {\n if (name === '.tdata' || name === '.tbss' || family(name, '.tdata') || family(name, '.tbss')) {\n return 'thread-local storage'\n }\n if (/^\\.(?:init|fini)_array\\.\\d+$/.test(name)) return 'a constructor or destructor with a priority'\n if (name === '.fini_array' || name === '.dtors') return 'a destructor run at exit'\n if (name === '.preinit_array' || name === '.ctors') return 'a constructor table version 1 does not run'\n if (name === '.eh_frame' || name === '.gcc_except_table') return 'exception handling'\n return 'a section outside the version 1 rules'\n}\n\n/** Classifies a `.section` directive's arguments, `name[,\"flags\"[,@type[,…]]]`. */\nexport function classifySection(args: readonly Token[]): SectionClass {\n const nameToken = args[0]\n if (!nameToken || !nameToken.text) {\n return { kind: 'unsupported', message: '`.section` without a name', column: nameToken?.column ?? 1 }\n }\n const name = nameToken.text\n if (!/^[A-Za-z0-9_.$-]+$/.test(name)) {\n return {\n kind: 'unsupported',\n message: `section name \\`${name}\\` is not one the translator reads`,\n column: nameToken.column,\n }\n }\n const flags = args[1]\n if (name === '.note.GNU-stack' && flags && /^\"[A-Za-z?]*x[A-Za-z?]*\"$/.test(flags.text)) {\n // The note is dropped, and with it a request for an executable stack, which a nested\n // function's trampoline needs; only the ordinary `\"\"` is dropped.\n return {\n kind: 'unsupported',\n message: `section \\`${name}\\` with flags ${flags.text} (an executable stack, which GCC asks for when a nested function's trampoline runs on the stack) has no translation`,\n column: flags.column,\n }\n }\n if (isDropped(name)) return { kind: 'dropped' }\n const rule = RULES.find((candidate) => candidate.matches(name))\n if (!rule) {\n return {\n kind: 'unsupported',\n message: `section \\`${name}\\` (${unsupportedReason(name)}) has no translation`,\n column: nameToken.column,\n }\n }\n const problem = attributeProblem(rule, args)\n if (problem)\n return { kind: 'unsupported', message: `section \\`${name}\\` ${problem.message}`, column: problem.column }\n return { kind: 'kept', family: rule.family }\n}\n\n/** The flags, type and extra fields must be what GCC writes for the family, or nothing at all. */\nfunction attributeProblem(rule: FamilyRule, args: readonly Token[]): { message: string; column: number } | null {\n const [, flagsToken, typeToken, ...rest] = args\n if (!flagsToken) return null\n const flagsMatch = /^\"([A-Za-z?]*)\"$/.exec(flagsToken.text)\n if (!flagsMatch) return { message: `has unreadable flags \\`${flagsToken.text}\\``, column: flagsToken.column }\n const flags = flagsMatch[1]!\n const grouped = flags.includes('G')\n const base = flags.replace('G', '')\n if (!rule.flags.includes(base) || flags.indexOf('G') !== flags.lastIndexOf('G')) {\n return {\n message: `has flags \"${flags}\", where GCC writes ${rule.flags.map((f) => `\"${f}\"`).join(' or ')}`,\n column: flagsToken.column,\n }\n }\n if (typeToken && !rule.types.includes(typeToken.text)) {\n return {\n message: `has type \\`${typeToken.text}\\`, where GCC writes \\`${rule.types[0]}\\``,\n column: typeToken.column,\n }\n }\n if (!typeToken && (grouped || base.includes('M'))) {\n return { message: 'has merge or group flags without a type', column: flagsToken.column }\n }\n let index = 0\n if (base.includes('M')) {\n const entrySize = rest[index]\n if (!entrySize || !/^[1-9][0-9]*$/.test(entrySize.text)) {\n return { message: 'has a merge flag without an entry size', column: entrySize?.column ?? flagsToken.column }\n }\n index += 1\n }\n if (grouped) {\n const group = rest[index]\n if (!group || !/^[A-Za-z_.$][A-Za-z0-9_.$]*$/.test(group.text)) {\n return { message: 'has a group flag without a group name', column: group?.column ?? flagsToken.column }\n }\n index += 1\n if (rest[index]?.text === 'comdat') index += 1\n }\n const extra = rest[index]\n if (extra) return { message: `has an extra field \\`${extra.text}\\``, column: extra.column }\n return null\n}\n\n/** What `.text`, `.data` and `.bss` written as directives of their own switch to. */\nexport function bareSectionFamily(directive: string): SectionFamily | null {\n if (directive === '.text') return '.text'\n if (directive === '.data') return '.data'\n if (directive === '.bss') return '.bss'\n return null\n}\n","import type { DiagnosticCollector } from './diagnostics'\nimport { translateInstruction, type Instruction } from './instructions'\nimport {\n decodeGasString,\n lexLine,\n parseInteger,\n splitCommas,\n unreadableCharacter,\n type LexedStatement,\n type Token,\n} from './lexer'\nimport { LocationTracker } from './locations'\nimport { isDebugLabel, isLocalLabel, symbolNameProblem } from './names'\nimport { operandSymbols, type OperandProblem, type SymbolRef } from './operands'\nimport type { TranslationRules } from './profile'\nimport { bareSectionFamily, classifySection, type SectionFamily } from './sections'\nimport type { CompilerLocation } from './types'\n\nexport type DataDirective = 'db' | 'dw' | 'dd' | 'dq'\n\nexport type DataValue =\n | { readonly kind: 'integer'; readonly text: string }\n | { readonly kind: 'symbol'; readonly symbol: SymbolRef; readonly addend: string }\n\n/** A statement that produces output, in input order. */\nexport type Statement =\n | { readonly kind: 'section'; readonly line: number; readonly family: SectionFamily }\n | { readonly kind: 'label'; readonly line: number; readonly symbol: SymbolRef }\n /** `.globl` or `.weak`. */\n | { readonly kind: 'binding'; readonly line: number; readonly symbol: SymbolRef }\n | {\n readonly kind: 'common'\n readonly line: number\n readonly symbol: SymbolRef\n readonly size: string\n readonly alignment: number\n }\n | {\n readonly kind: 'align'\n readonly line: number\n readonly bytes: number\n readonly family: SectionFamily\n /** The padding byte; null in code without a fill value, which NASM pads with NOPs. */\n readonly fill: string | null\n }\n | {\n readonly kind: 'data'\n readonly line: number\n readonly directive: DataDirective\n readonly values: readonly DataValue[]\n }\n | { readonly kind: 'zero'; readonly line: number; readonly count: string; readonly family: SectionFamily }\n | {\n readonly kind: 'string'\n readonly line: number\n readonly strings: readonly Uint8Array[]\n readonly terminated: boolean\n }\n | {\n readonly kind: 'instruction'\n readonly line: number\n readonly instruction: Instruction\n readonly location: CompilerLocation | null\n }\n\nexport type SymbolUse = { readonly name: string; readonly line: number; readonly column: number }\n\nexport type Alias = { readonly alias: SymbolUse; readonly target: SymbolUse }\n\nexport type Analysis = {\n readonly statements: readonly Statement[]\n readonly lineLocations: readonly (CompilerLocation | null)[]\n /**\n * Every label definition, in input order: kept, dropped with its debug or note section, or in a\n * section already reported as unsupported, which nothing else is reported about.\n */\n readonly labels: readonly (SymbolUse & { readonly fate: 'kept' | 'dropped' | 'rejected' })[]\n readonly globals: ReadonlyMap<string, readonly SymbolUse[]>\n readonly weak: ReadonlyMap<string, readonly SymbolUse[]>\n readonly locals: ReadonlyMap<string, readonly SymbolUse[]>\n readonly commons: readonly (SymbolUse & { readonly alignment: number })[]\n readonly aliases: readonly Alias[]\n /** `.type x, @gnu_unique_object` under the `weak-object` rule, which must be weak. */\n readonly uniqueObjects: readonly SymbolUse[]\n /** Symbols named by kept instructions and data, first use of each. */\n readonly references: ReadonlyMap<string, SymbolUse>\n /** Every name the translator reads outside dropped sections, at its first appearance. */\n readonly mentions: ReadonlyMap<string, SymbolUse>\n /** Operands written as a register name alone, which a symbol of that name would make ambiguous. */\n readonly bareRegisters: readonly SymbolUse[]\n /**\n * Register names standing alone that the translator rejects anyway (`mm0`, `k1`, `cr0`): the\n * problem is reported once the unit's symbols are known, as an ambiguity if one has that name.\n */\n readonly rejectedRegisters: readonly { readonly use: SymbolUse; readonly problem: OperandProblem }[]\n readonly constructors: readonly SymbolUse[]\n /** The largest `.align` or `.p2align` the output keeps in each section family. */\n readonly sectionAlignment: ReadonlyMap<SectionFamily, number>\n readonly idents: readonly { readonly line: number; readonly text: string | null; readonly column: number }[]\n}\n\nconst DATA_DIRECTIVES: ReadonlyMap<string, { readonly directive: DataDirective; readonly bits: number }> = new Map([\n ['.byte', { directive: 'db', bits: 8 }],\n ['.value', { directive: 'dw', bits: 16 }],\n ['.short', { directive: 'dw', bits: 16 }],\n ['.word', { directive: 'dw', bits: 16 }],\n ['.long', { directive: 'dd', bits: 32 }],\n ['.int', { directive: 'dd', bits: 32 }],\n ['.quad', { directive: 'dq', bits: 64 }],\n] as const)\n\n/** What a dropped section holds: debug data, read by nothing in the translation. */\nconst DROPPED_CONTENT = new Set([\n '.byte',\n '.value',\n '.short',\n '.word',\n '.long',\n '.int',\n '.quad',\n '.uleb128',\n '.sleb128',\n '.string',\n '.asciz',\n '.ascii',\n '.zero',\n '.align',\n '.p2align',\n])\n\n/**\n * Directives GNU as has that the version 1 rules do not translate, with what GCC uses them for. A\n * Map, like every table a word of the input is looked up in, so that no word reads a property every\n * object has.\n */\nconst UNSUPPORTED_DIRECTIVES: ReadonlyMap<string, string> = new Map([\n ['.previous', 'a section stack'],\n ['.pushsection', 'a section stack'],\n ['.popsection', 'a section stack'],\n ['.subsection', 'subsections'],\n ['.balign', 'alignment GCC writes as `.align` or `.p2align`'],\n ['.rept', 'repetition'],\n ['.org', 'absolute positioning'],\n ['.symver', 'symbol versioning'],\n ['.equ', 'symbol assignment'],\n ['.equiv', 'symbol assignment'],\n ['.eqv', 'symbol assignment'],\n ['.weakref', 'weak references'],\n ['.lcomm', 'local common storage, which GCC writes as `.local` and `.comm`'],\n ['.uleb128', 'variable-length data outside debug information'],\n ['.sleb128', 'variable-length data outside debug information'],\n ['.att_syntax', 'AT&T syntax'],\n])\n\ntype Section =\n | { readonly kind: 'kept'; readonly family: SectionFamily }\n | { readonly kind: 'dropped' }\n | { readonly kind: 'rejected' }\n\n/**\n * The first pass: every line read once, in order, into output statements and the facts about\n * symbols the later passes need, with a Diagnostic for every construct outside the rules.\n */\nexport function analyze(\n input: readonly string[],\n rules: TranslationRules,\n diagnostics: DiagnosticCollector,\n lineLocations: (CompilerLocation | null)[],\n): Analysis {\n const locations = new LocationTracker(diagnostics)\n /** Null where code alignment turned out to align no function. */\n const statements: (Statement | null)[] = []\n const labels: (SymbolUse & { fate: 'kept' | 'dropped' | 'rejected' })[] = []\n const globals = new Map<string, SymbolUse[]>()\n const weak = new Map<string, SymbolUse[]>()\n const locals = new Map<string, SymbolUse[]>()\n const commons: (SymbolUse & { alignment: number })[] = []\n const aliases: Alias[] = []\n const uniqueObjects: SymbolUse[] = []\n const references = new Map<string, SymbolUse>()\n const mentions = new Map<string, SymbolUse>()\n const bareRegisters: SymbolUse[] = []\n const rejectedRegisters: { use: SymbolUse; problem: OperandProblem }[] = []\n const constructors: SymbolUse[] = []\n const sectionAlignment = new Map<SectionFamily, number>()\n const idents: { line: number; text: string | null; column: number }[] = []\n\n let section: Section = { kind: 'kept', family: '.text' }\n let appBlock = false\n\n /**\n * Plan note 8: code alignment waits to learn what it aligns, the next position in code. A label\n * other than a `.L` label there, before the next instruction, is a function's entry, which keeps\n * it: C++ pointers to member functions use the address's low bit, and `aligned(N)` functions\n * promise their alignment. Only `.L` labels there make it loop or jump-target alignment, which\n * only affects speed and is dropped, keeping Step free of NOP runs. Section switches and other\n * families' contents do not end the wait, since every code section flattens into one: GCC's hot\n * and cold partitioning puts `.section .text.unlikely`, `.Ltext_cold0:` and `.text` between a\n * function's alignment and its label.\n */\n const pendingCodeAlignment: { readonly index: number; readonly bytes: number }[] = []\n const settleCodeAlignment = (kept: boolean) => {\n for (const { index, bytes } of pendingCodeAlignment) {\n if (kept) sectionAlignment.set('.text', Math.max(sectionAlignment.get('.text') ?? 1, bytes))\n else statements[index] = null\n }\n pendingCodeAlignment.length = 0\n }\n\n const mention = (name: string, line: number, column: number) => {\n if (!mentions.has(name)) mentions.set(name, { name, line, column })\n }\n const reference = (symbol: SymbolRef, line: number) => {\n mention(symbol.name, line, symbol.column)\n if (!references.has(symbol.name))\n references.set(symbol.name, { name: symbol.name, line, column: symbol.column })\n }\n const record = (map: Map<string, SymbolUse[]>, use: SymbolUse) => {\n const list = map.get(use.name) ?? []\n list.push(use)\n map.set(use.name, list)\n }\n /** A symbol directive's one name, or null after reporting why it is not one. */\n const symbolArgument = (token: Token | undefined, line: number, directive: Token): SymbolUse | null => {\n if (!token || !token.text) {\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `\\`${directive.text}\\` without a symbol name`,\n directive.column,\n )\n return null\n }\n const problem = symbolNameProblem(token.text)\n if (problem) {\n diagnostics.error('unsupported-symbol', line, problem, token.column)\n return null\n }\n return { name: token.text, line, column: token.column }\n }\n\n const keptFamily = (): SectionFamily | null => (section.kind === 'kept' ? section.family : null)\n\n const onSection = (next: Section, line: number, family: SectionFamily | null) => {\n section = next\n locations.clear()\n if (family) statements.push({ kind: 'section', line, family })\n }\n\n const onLabel = (name: Token, line: number) => {\n const problem = symbolNameProblem(name.text)\n if (problem) {\n diagnostics.error('unsupported-symbol', line, problem, name.column)\n return\n }\n const fate =\n section.kind === 'rejected'\n ? 'rejected'\n : section.kind === 'kept' && !isDebugLabel(name.text)\n ? 'kept'\n : 'dropped'\n labels.push({ name: name.text, line, column: name.column, fate })\n if (fate !== 'kept') return\n mention(name.text, line, name.column)\n statements.push({ kind: 'label', line, symbol: { name: name.text, column: name.column } })\n if (keptFamily() === '.text' && !isLocalLabel(name.text)) settleCodeAlignment(true)\n }\n\n const onDirective = (nameToken: Token, body: Token, line: number) => {\n const name = nameToken.text.toLowerCase()\n const family = keptFamily()\n\n if (name.startsWith('.cfi_')) {\n if (name === '.cfi_endproc') locations.clear()\n return\n }\n switch (name) {\n case '.file':\n locations.file(body, line)\n return\n case '.loc':\n locations.loc(body, line)\n return\n case '.ident': {\n const decoded = body.text ? decodeGasString(body) : null\n idents.push({\n line,\n text: decoded && 'bytes' in decoded ? new TextDecoder().decode(decoded.bytes) : null,\n column: nameToken.column,\n })\n return\n }\n case '.intel_syntax':\n if (body.text !== 'noprefix') {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`.intel_syntax ${body.text}\\`: the rules read GCC's \\`noprefix\\` Intel syntax`,\n nameToken.column,\n )\n }\n return\n case '.text':\n case '.data':\n case '.bss': {\n if (body.text) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text} ${body.text}\\`: subsections have no translation`,\n body.column,\n )\n onSection({ kind: 'rejected' }, line, null)\n return\n }\n const bare = bareSectionFamily(name)!\n onSection({ kind: 'kept', family: bare }, line, bare)\n return\n }\n case '.section': {\n const classified = classifySection(splitCommas(body))\n if (classified.kind === 'unsupported') {\n diagnostics.error('unsupported-section', line, classified.message, classified.column)\n onSection({ kind: 'rejected' }, line, null)\n } else if (classified.kind === 'dropped') onSection({ kind: 'dropped' }, line, null)\n else onSection({ kind: 'kept', family: classified.family }, line, classified.family)\n return\n }\n case '.globl':\n case '.global':\n case '.weak': {\n const args = splitCommas(body)\n if (args.length > 1) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text}\\` with more than one symbol`,\n args[1]!.column,\n )\n return\n }\n const symbol = symbolArgument(args[0], line, nameToken)\n if (!symbol) return\n mention(symbol.name, line, symbol.column)\n record(name === '.weak' ? weak : globals, symbol)\n statements.push({ kind: 'binding', line, symbol: { name: symbol.name, column: symbol.column } })\n return\n }\n case '.local': {\n const args = splitCommas(body)\n if (args.length > 1) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n '`.local` with more than one symbol',\n args[1]!.column,\n )\n return\n }\n const symbol = symbolArgument(args[0], line, nameToken)\n if (!symbol) return\n mention(symbol.name, line, symbol.column)\n record(locals, symbol)\n return\n }\n case '.hidden': {\n const symbol = symbolArgument(splitCommas(body)[0], line, nameToken)\n if (symbol) mention(symbol.name, line, symbol.column)\n return\n }\n case '.protected':\n case '.internal':\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `visibility \\`${nameToken.text}\\` has no translation; only \\`.hidden\\` is dropped`,\n nameToken.column,\n )\n return\n case '.size': {\n const symbol = symbolArgument(splitCommas(body)[0], line, nameToken)\n if (symbol) mention(symbol.name, line, symbol.column)\n return\n }\n case '.type':\n onType(nameToken, body, line)\n return\n case '.comm':\n onCommon(nameToken, body, line)\n return\n case '.set': {\n const [aliasToken, targetToken, extra] = splitCommas(body)\n const alias = symbolArgument(aliasToken, line, nameToken)\n if (!alias) return\n mention(alias.name, line, alias.column)\n if (!targetToken || extra || symbolNameProblem(targetToken.text)) {\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `\\`.set ${body.text}\\` is not an alias of a label`,\n targetToken?.column ?? nameToken.column,\n )\n return\n }\n mention(targetToken.text, line, targetToken.column)\n aliases.push({ alias, target: { name: targetToken.text, line, column: targetToken.column } })\n return\n }\n }\n\n const unsupported = UNSUPPORTED_DIRECTIVES.get(name)\n if (unsupported && !(section.kind === 'dropped' && DROPPED_CONTENT.has(name))) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text}\\` (${unsupported}) has no translation`,\n nameToken.column,\n )\n return\n }\n if (section.kind === 'dropped' && DROPPED_CONTENT.has(name)) return\n if (section.kind === 'rejected') return\n\n if (name === '.align' || name === '.p2align') {\n onAlign(nameToken, body, line, family!)\n return\n }\n if (name === '.zero') {\n if (!dataAllowed(nameToken, line, family!, ['.rodata', '.data', '.bss'])) return\n const count = splitCommas(body)\n const value = count.length === 1 ? parseInteger(count[0]!.text) : null\n if (value === null) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`.zero ${body.text}\\` is not a byte count the translator reads`,\n body.column,\n )\n return\n }\n statements.push({ kind: 'zero', line, count: count[0]!.text, family: family! })\n return\n }\n if (name === '.string' || name === '.asciz' || name === '.ascii') {\n if (!dataAllowed(nameToken, line, family!, ['.rodata', '.data'])) return\n const strings: Uint8Array[] = []\n const args = splitCommas(body)\n if (args.length === 0) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text}\\` without a string`,\n nameToken.column,\n )\n return\n }\n for (const arg of args) {\n const decoded = decodeGasString(arg)\n if ('error' in decoded) {\n diagnostics.error('unsupported-directive', line, decoded.error, arg.column)\n return\n }\n strings.push(decoded.bytes)\n }\n statements.push({ kind: 'string', line, strings, terminated: name !== '.ascii' })\n return\n }\n const data = DATA_DIRECTIVES.get(name)\n if (data) {\n onData(nameToken, body, line, family!, data.directive, data.bits)\n return\n }\n diagnostics.error('unsupported-directive', line, `\\`${nameToken.text}\\` has no translation`, nameToken.column)\n }\n\n const dataAllowed = (\n nameToken: Token,\n line: number,\n family: SectionFamily,\n allowed: readonly SectionFamily[],\n ): boolean => {\n if (allowed.includes(family)) return true\n const where =\n family === '.text'\n ? 'a code section'\n : family === '.bss'\n ? '`.bss`, which holds only zeroed storage'\n : '`.init_array`, which holds only constructor addresses'\n diagnostics.error(\n 'unsupported-section',\n line,\n `\\`${nameToken.text}\\` in ${where} has no translation`,\n nameToken.column,\n )\n return false\n }\n\n const onData = (\n nameToken: Token,\n body: Token,\n line: number,\n family: SectionFamily,\n directive: DataDirective,\n bits: number,\n ) => {\n const initArray = family === '.init_array'\n if (initArray && directive !== 'dq') {\n dataAllowed(nameToken, line, family, [])\n return\n }\n if (!initArray && !dataAllowed(nameToken, line, family, ['.rodata', '.data'])) return\n const args = splitCommas(body)\n if (args.length === 0) {\n diagnostics.error('unsupported-directive', line, `\\`${nameToken.text}\\` without a value`, nameToken.column)\n return\n }\n const values: DataValue[] = []\n for (const arg of args) {\n const value = readDataValue(arg, bits)\n if ('problem' in value) {\n diagnostics.error(value.code, line, value.problem, arg.column)\n return\n }\n values.push(value)\n }\n if (initArray) {\n const [entry] = values\n if (values.length !== 1 || entry!.kind !== 'symbol' || entry.addend) {\n diagnostics.error(\n 'unsupported-operand',\n line,\n `\\`.init_array\\` entry \\`${body.text}\\` is not a constructor's symbol`,\n body.column,\n )\n return\n }\n constructors.push({ name: entry.symbol.name, line, column: entry.symbol.column })\n }\n for (const value of values) if (value.kind === 'symbol') reference(value.symbol, line)\n statements.push({ kind: 'data', line, directive, values })\n }\n\n const onAlign = (nameToken: Token, body: Token, line: number, family: SectionFamily) => {\n const args = splitCommas(body)\n const amount = args[0] ? parseInteger(args[0].text) : null\n const extras = args.slice(1)\n const wellFormed =\n amount !== null &&\n extras.length <= 2 &&\n extras.every((arg) => arg.text === '' || parseInteger(arg.text) !== null)\n if (!wellFormed) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text} ${body.text}\\` is not an alignment the translator reads`,\n body.column,\n )\n return\n }\n const p2 = nameToken.text.toLowerCase() === '.p2align'\n if ((p2 && amount > 30n) || (!p2 && (amount < 1n || amount > 1n << 30n || (amount & (amount - 1n)) !== 0n))) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text} ${body.text}\\` is not a power-of-two alignment`,\n body.column,\n )\n return\n }\n const bytes = p2 ? 2 ** Number(amount) : Number(amount)\n const [fill, maximumSkip] = extras\n if (family === '.text') {\n // A maximum skip is loop alignment (plan note 8), dropped whatever follows it.\n if (maximumSkip?.text) return\n if (fill?.text && (parseInteger(fill.text) ?? 0n) > 0xffn) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text} ${body.text}\\` has a fill value that does not fit in a byte`,\n fill.column,\n )\n return\n }\n pendingCodeAlignment.push({ index: statements.length, bytes })\n statements.push({ kind: 'align', line, bytes, family, fill: fill?.text || null })\n return\n }\n if (extras.some((arg) => arg.text !== '')) {\n const what = maximumSkip?.text ? 'a maximum skip' : 'a fill value'\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${nameToken.text} ${body.text}\\` has ${what}, which only code alignment may have`,\n body.column,\n )\n return\n }\n sectionAlignment.set(family, Math.max(sectionAlignment.get(family) ?? 1, bytes))\n statements.push({ kind: 'align', line, bytes, family, fill: '0' })\n }\n\n const onType = (nameToken: Token, body: Token, line: number) => {\n const [symbolToken, typeToken, extra] = splitCommas(body)\n const symbol = symbolArgument(symbolToken, line, nameToken)\n if (!symbol) return\n mention(symbol.name, line, symbol.column)\n const type = typeToken?.text\n if (!extra && (type === '@function' || type === '@object')) return\n if (!extra && type === '@gnu_unique_object') {\n if (rules.gnuUniqueObject === 'weak-object') {\n uniqueObjects.push(symbol)\n return\n }\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `\\`.type ${symbol.name}, @gnu_unique_object\\` has no translation yet (gate 7)`,\n typeToken!.column,\n )\n return\n }\n const why =\n type === '@gnu_indirect_function' ? ': dropping it would call the resolver as if it were the function' : ''\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `\\`.type ${body.text}\\` has no translation${why}`,\n typeToken?.column ?? nameToken.column,\n )\n }\n\n const onCommon = (nameToken: Token, body: Token, line: number) => {\n const [symbolToken, sizeToken, alignToken, extra] = splitCommas(body)\n const symbol = symbolArgument(symbolToken, line, nameToken)\n if (!symbol) return\n mention(symbol.name, line, symbol.column)\n const size = sizeToken ? parseInteger(sizeToken.text) : null\n const alignment = alignToken ? parseInteger(alignToken.text) : null\n if (\n size === null ||\n alignment === null ||\n extra ||\n alignment < 1n ||\n (alignment & (alignment - 1n)) !== 0n ||\n alignment > 1n << 30n\n ) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`.comm ${body.text}\\` is not a common symbol with a size and a power-of-two alignment`,\n body.column,\n )\n return\n }\n commons.push({ ...symbol, alignment: Number(alignment) })\n statements.push({\n kind: 'common',\n line,\n symbol: { name: symbol.name, column: symbol.column },\n size: sizeToken!.text,\n alignment: Number(alignment),\n })\n }\n\n const onInstruction = (body: Token, line: number) => {\n // An instruction at the aligned position: whatever labels came first were `.L` labels.\n if (keptFamily() === '.text') settleCodeAlignment(false)\n if (section.kind === 'rejected') return\n if (section.kind === 'dropped' || section.family !== '.text') {\n const where = section.kind === 'dropped' ? 'a dropped debug or note section' : `\\`${section.family}\\``\n diagnostics.error('unsupported-section', line, `instruction in ${where}, outside code`, body.column)\n return\n }\n const result = translateInstruction(body)\n if ('problems' in result) {\n for (const problem of result.problems) {\n if (problem.register) {\n const use = { name: problem.register.text, line, column: problem.register.column }\n rejectedRegisters.push({ use, problem })\n } else diagnostics.error(problem.code, line, problem.message, problem.column)\n }\n return\n }\n const symbols = result.instruction.operands.flatMap(operandSymbols)\n const invalid = symbols\n .map((symbol) => [symbol, symbolNameProblem(symbol.name)] as const)\n .filter(([, problem]) => problem)\n for (const [symbol, problem] of invalid) diagnostics.error('unsupported-symbol', line, problem!, symbol.column)\n if (invalid.length) return\n for (const symbol of symbols) reference(symbol, line)\n for (const operand of result.instruction.operands) {\n if (operand.kind === 'register' && operand.bare) {\n bareRegisters.push({ name: operand.bare.text, line, column: operand.bare.column })\n }\n }\n statements.push({ kind: 'instruction', line, instruction: result.instruction, location: locations.current })\n }\n\n const onStatement = (statement: LexedStatement, line: number) => {\n switch (statement.kind) {\n case 'label':\n onLabel(statement.name, line)\n return\n case 'numeric-label':\n // `.note.gnu.property` measures itself with numeric labels; a dropped section's are\n // dropped with it, and a rejected section's are part of what was reported.\n if (section.kind !== 'kept') return\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `numeric label \\`${statement.name.text}:\\` has no translation`,\n statement.name.column,\n )\n return\n case 'quoted-label':\n diagnostics.error(\n 'unsupported-symbol',\n line,\n `quoted symbol name ${statement.name.text} has no translation`,\n statement.name.column,\n )\n return\n case 'directive':\n onDirective(statement.name, statement.body, line)\n return\n case 'assignment':\n diagnostics.error(\n 'unsupported-directive',\n line,\n `assignment to \\`${statement.name.text}\\` (symbol assignment) has no translation`,\n statement.name.column,\n )\n return\n case 'instruction':\n onInstruction(statement.body, line)\n return\n case 'unreadable':\n diagnostics.error(\n 'unsupported-directive',\n line,\n `\\`${statement.body.text}\\` is not a statement the translator reads`,\n statement.body.column,\n )\n return\n }\n }\n\n input.forEach((text, line) => {\n lineLocations[line] = locations.current\n if (appBlock) {\n const lexed = lexLine(text)\n if (lexed.kind === 'comment' && lexed.text.text === '#NO_APP') appBlock = false\n return\n }\n const unreadable = unreadableCharacter(text)\n if (unreadable) {\n const codePoint = `U+${unreadable.codePoint.toString(16).toUpperCase().padStart(4, '0')}`\n diagnostics.error(\n 'unreadable-line',\n line,\n `control character or line break ${codePoint} inside the line, which GCC never writes; nothing on the line is read`,\n unreadable.column,\n )\n return\n }\n const lexed = lexLine(text)\n if (lexed.kind === 'blank') return\n if (lexed.kind === 'comment') {\n if (lexed.text.text === '#APP') {\n appBlock = true\n diagnostics.error(\n 'inline-assembly',\n line,\n 'inline assembly (`#APP` to `#NO_APP`) has no translation in version 1',\n lexed.text.column,\n )\n return\n }\n diagnostics.error(\n 'unsupported-directive',\n line,\n `comment \\`${lexed.text.text}\\` has no translation; the profile compiles with -fno-verbose-asm`,\n lexed.text.column,\n )\n return\n }\n if (lexed.trailingComment !== null) {\n diagnostics.error(\n 'unsupported-directive',\n line,\n 'a comment after a statement has no translation; the profile compiles with -fno-verbose-asm',\n lexed.trailingComment,\n )\n }\n if (lexed.statements.length > 1 || lexed.separators.length > 0) {\n const second = lexed.statements[1]\n diagnostics.error(\n 'unsupported-directive',\n line,\n 'several statements on one line have no translation',\n lexed.separators[0] ?? (second ? statementColumn(second) : undefined),\n )\n }\n for (const statement of lexed.statements) onStatement(statement, line)\n })\n settleCodeAlignment(false)\n\n return {\n statements: statements.filter((statement) => statement !== null),\n lineLocations,\n labels,\n globals,\n weak,\n locals,\n commons,\n aliases,\n uniqueObjects,\n references,\n mentions,\n bareRegisters,\n rejectedRegisters,\n constructors,\n sectionAlignment,\n idents,\n }\n}\n\nfunction statementColumn(statement: LexedStatement): number {\n return 'name' in statement ? statement.name.column : statement.body.column\n}\n\n/** A data value: an integer that fits the width, a symbol, or a symbol plus or minus an integer. */\nfunction readDataValue(\n arg: Token,\n bits: number,\n): DataValue | { problem: string; code: 'unsupported-operand' | 'unsupported-symbol' } {\n const text = arg.text\n const integer = /^(-?)\\s*([0-9][A-Za-z0-9_]*)$/.exec(text)\n if (integer) {\n const magnitude = parseInteger(integer[2]!)\n if (magnitude === null)\n return { code: 'unsupported-operand', problem: `\\`${text}\\` is not an integer the translator reads` }\n const value = integer[1] ? -magnitude : magnitude\n const min = -(1n << BigInt(bits - 1))\n const max = (1n << BigInt(bits)) - 1n\n if (value < min || value > max) {\n return {\n code: 'unsupported-operand',\n problem: `\\`${text}\\` does not fit in ${bits / 8} byte${bits === 8 ? '' : 's'}`,\n }\n }\n return { kind: 'integer', text: `${integer[1]}${integer[2]}` }\n }\n const symbol = /^([A-Za-z_.$][A-Za-z0-9_.$]*)(?:\\s*([+-])\\s*([0-9][A-Za-z0-9_]*))?$/.exec(text)\n if (symbol) {\n const problem = symbolNameProblem(symbol[1]!)\n if (problem) return { code: 'unsupported-symbol', problem }\n if (symbol[3] !== undefined && parseInteger(symbol[3]) === null) {\n return { code: 'unsupported-operand', problem: `\\`${symbol[3]}\\` is not an integer the translator reads` }\n }\n return {\n kind: 'symbol',\n symbol: { name: symbol[1]!, column: arg.column },\n addend: symbol[2] ? `${symbol[2]}${symbol[3]}` : '',\n }\n }\n return {\n code: 'unsupported-operand',\n problem: `\\`${text}\\` is an expression beyond an integer, a symbol, or a symbol plus or minus an integer`,\n }\n}\n","import type { CompilerLocation, TranslationDiagnostic, TranslationDiagnosticCode } from './types'\n\n/**\n * Collects every Diagnostic of one translation. Nothing stops at the first problem: a translation\n * reports all of them, sorted by input line, and any error means no output.\n */\nexport class DiagnosticCollector {\n private readonly entries: TranslationDiagnostic[] = []\n\n /** `locationAt` gives the compiler location in effect at an input line. */\n constructor(private readonly locationAt: (inputLine: number) => CompilerLocation | null) {}\n\n error(code: TranslationDiagnosticCode, inputLine: number, message: string, column?: number): void {\n this.add('error', code, inputLine, message, column)\n }\n\n warning(\n code: TranslationDiagnosticCode,\n inputLine: number,\n message: string,\n column?: number,\n location?: CompilerLocation | null,\n ): void {\n this.add('warning', code, inputLine, message, column, location)\n }\n\n get hasErrors(): boolean {\n return this.entries.some((entry) => entry.severity === 'error')\n }\n\n /** Sorted by input line, keeping the order they were found in within a line. */\n sorted(): TranslationDiagnostic[] {\n return this.entries\n .map((entry, order) => ({ entry, order }))\n .sort((left, right) => left.entry.inputLine - right.entry.inputLine || left.order - right.order)\n .map(({ entry }) => entry)\n }\n\n private add(\n severity: 'error' | 'warning',\n code: TranslationDiagnosticCode,\n inputLine: number,\n message: string,\n column?: number,\n location?: CompilerLocation | null,\n ): void {\n this.entries.push({\n severity,\n code,\n message,\n inputLine,\n ...(column === undefined ? {} : { column }),\n location: location === undefined ? this.locationAt(inputLine) : location,\n })\n }\n}\n","import type { Analysis, DataValue, Statement, SymbolUse } from './analyze'\nimport type { DiagnosticCollector } from './diagnostics'\nimport { encodeNasmString } from './lexer'\nimport { isLocalLabel, NameMap } from './names'\nimport { renderOperand } from './operands'\nimport { NASM_DEFAULT_ALIGNMENT, type SectionFamily } from './sections'\nimport type { CompilerLocation, SymbolSummary, TranslatedLine, TranslatedSymbol } from './types'\n\ntype Resolution = {\n readonly names: NameMap\n /** Names the output defines: kept labels, aliases and local commons. */\n readonly defined: ReadonlySet<string>\n readonly localCommons: ReadonlySet<string>\n readonly globalCommons: ReadonlySet<string>\n readonly weak: ReadonlySet<string>\n readonly global: ReadonlySet<string>\n /** Alias uses by the label they follow, in `.set` order. */\n readonly aliasesByLabel: ReadonlyMap<string, readonly SymbolUse[]>\n readonly externs: readonly { readonly name: string; readonly weak: boolean; readonly referenced: boolean }[]\n readonly alignment: ReadonlyMap<SectionFamily, number>\n}\n\n/**\n * The second pass: checks that need the whole unit (definitions, aliases, bindings, references and\n * register-named symbols) and decides how every name is spelled and which are external.\n */\nexport function resolve(analysis: Analysis, diagnostics: DiagnosticCollector): Resolution {\n const firstDefinition = new Map<string, SymbolUse>()\n const kept = new Set<string>()\n const dropped = new Set<string>()\n /** Defined in a section already reported as unsupported: nothing more is said about them. */\n const rejected = new Set<string>()\n for (const label of analysis.labels) {\n if (firstDefinition.has(label.name)) {\n diagnostics.error('unsupported-symbol', label.line, `\\`${label.name}\\` is defined twice`, label.column)\n continue\n }\n firstDefinition.set(label.name, label)\n if (label.fate === 'kept') kept.add(label.name)\n else if (label.fate === 'dropped') dropped.add(label.name)\n else rejected.add(label.name)\n }\n\n const locals = new Set(analysis.locals.keys())\n const weak = new Set(analysis.weak.keys())\n const global = new Set(analysis.globals.keys())\n const localCommons = new Set<string>()\n const globalCommons = new Set<string>()\n const alignment = new Map(analysis.sectionAlignment)\n for (const common of analysis.commons) {\n if (firstDefinition.has(common.name) || localCommons.has(common.name) || globalCommons.has(common.name)) {\n diagnostics.error('unsupported-symbol', common.line, `\\`${common.name}\\` is defined twice`, common.column)\n continue\n }\n if (locals.has(common.name)) {\n localCommons.add(common.name)\n alignment.set('.bss', Math.max(alignment.get('.bss') ?? 1, common.alignment))\n } else globalCommons.add(common.name)\n if (weak.has(common.name) || (global.has(common.name) && !locals.has(common.name))) {\n const binding = weak.has(common.name) ? '.weak' : '.globl'\n diagnostics.error(\n 'unsupported-symbol',\n common.line,\n `common symbol \\`${common.name}\\` is also declared \\`${binding}\\`, which has no translation`,\n common.column,\n )\n }\n }\n\n const aliasTargets = new Map<string, SymbolUse>()\n for (const { alias, target } of analysis.aliases) {\n if (\n firstDefinition.has(alias.name) ||\n localCommons.has(alias.name) ||\n globalCommons.has(alias.name) ||\n aliasTargets.has(alias.name)\n ) {\n diagnostics.error('unsupported-symbol', alias.line, `\\`${alias.name}\\` is defined twice`, alias.column)\n continue\n }\n aliasTargets.set(alias.name, target)\n }\n const aliasesByLabel = new Map<string, SymbolUse[]>()\n const aliases = new Set<string>()\n for (const { alias, target } of analysis.aliases) {\n if (aliasTargets.get(alias.name) !== target) continue\n const seen = new Set([alias.name])\n let root = target.name\n while (aliasTargets.has(root) && !seen.has(root)) {\n seen.add(root)\n root = aliasTargets.get(root)!.name\n }\n if (!kept.has(root)) {\n if (!rejected.has(root)) {\n diagnostics.error(\n 'unsupported-symbol',\n alias.line,\n `\\`.set ${alias.name}, ${target.name}\\` is not an alias of a label in this output`,\n target.column,\n )\n }\n continue\n }\n aliases.add(alias.name)\n const list = aliasesByLabel.get(root) ?? []\n list.push(alias)\n aliasesByLabel.set(root, list)\n }\n\n const defined = new Set([...kept, ...aliases, ...localCommons])\n\n for (const name of locals) {\n if (!global.has(name) && !weak.has(name)) continue\n const use = (analysis.globals.get(name) ?? analysis.weak.get(name))![0]!\n diagnostics.error(\n 'unsupported-symbol',\n use.line,\n `\\`${name}\\` is declared both \\`.local\\` and global or weak`,\n use.column,\n )\n }\n for (const use of analysis.uniqueObjects) {\n if (!weak.has(use.name)) {\n diagnostics.error(\n 'unsupported-symbol',\n use.line,\n `\\`${use.name}\\` is \\`@gnu_unique_object\\` without \\`.weak\\`, which has no translation`,\n use.column,\n )\n }\n }\n for (const [name, uses] of [...analysis.globals, ...analysis.weak]) {\n const use = uses[0]!\n if (rejected.has(name)) continue\n if (isLocalLabel(name)) {\n diagnostics.error(\n 'unsupported-symbol',\n use.line,\n `\\`${name}\\` is an assembler-local label declared global or weak`,\n use.column,\n )\n } else if (dropped.has(name) && !defined.has(name)) {\n diagnostics.error(\n 'unsupported-symbol',\n use.line,\n `\\`${name}\\` is defined only where the translation drops it`,\n use.column,\n )\n }\n }\n for (const [name, use] of analysis.references) {\n if (defined.has(name) || globalCommons.has(name) || rejected.has(name)) continue\n if (dropped.has(name)) {\n diagnostics.error(\n 'unsupported-symbol',\n use.line,\n `\\`${name}\\` is a label the translation drops`,\n use.column,\n )\n } else if (isLocalLabel(name)) {\n diagnostics.error('unsupported-symbol', use.line, `local label \\`${name}\\` is never defined`, use.column)\n }\n }\n const ambiguous = (use: SymbolUse) =>\n diagnostics.error(\n 'ambiguous-register-name',\n use.line,\n `\\`${use.name}\\` alone reads as a register, but this unit also has a symbol \\`${use.name}\\`; GCC's Intel syntax cannot tell them apart`,\n use.column,\n )\n for (const use of analysis.bareRegisters) if (analysis.mentions.has(use.name)) ambiguous(use)\n for (const { use, problem } of analysis.rejectedRegisters) {\n if (analysis.mentions.has(use.name)) ambiguous(use)\n else diagnostics.error(problem.code, use.line, problem.message, problem.column)\n }\n\n const externs: { name: string; weak: boolean; referenced: boolean }[] = []\n for (const name of analysis.mentions.keys()) {\n const referenced = analysis.references.has(name)\n if (!referenced && !global.has(name) && !weak.has(name)) continue\n if (\n defined.has(name) ||\n globalCommons.has(name) ||\n isLocalLabel(name) ||\n dropped.has(name) ||\n rejected.has(name)\n )\n continue\n externs.push({ name, weak: weak.has(name), referenced })\n }\n\n const unitNames = new Set([...analysis.mentions.keys(), ...kept])\n return {\n names: new NameMap(unitNames),\n defined,\n localCommons,\n globalCommons,\n weak,\n global,\n aliasesByLabel,\n externs,\n alignment,\n }\n}\n\nconst INDENT = ' '\n\n/**\n * The third pass: the output lines, header first, each statement line carrying its input line and\n * every synthesized line the input line that required it.\n */\nexport function emit(analysis: Analysis, resolution: Resolution): { lines: TranslatedLine[]; symbols: SymbolSummary } {\n const { names } = resolution\n const body: TranslatedLine[] = []\n const declared = new Set<SectionFamily>()\n const definedOrder: string[] = []\n let current: SectionFamily = '.text'\n\n const push = (\n text: string,\n inputLine: number,\n options: { synthesized?: boolean; label?: boolean; location?: CompilerLocation | null } = {},\n ) => {\n body.push({\n text: options.label ? text : `${INDENT}${text}`,\n inputLine,\n synthesized: options.synthesized ?? false,\n location: options.location ?? null,\n })\n }\n const enter = (family: SectionFamily, inputLine: number, synthesized: boolean) => {\n let attributes = ''\n if (!declared.has(family)) {\n declared.add(family)\n const needed = resolution.alignment.get(family) ?? 1\n if (needed > NASM_DEFAULT_ALIGNMENT[family]) attributes = ` align=${needed}`\n }\n push(`section ${family}${attributes}`, inputLine, { synthesized })\n current = family\n }\n const value = (data: DataValue) =>\n data.kind === 'integer' ? data.text : `${names.emit(data.symbol.name)}${data.addend}`\n\n const emitStatement = (statement: Statement) => {\n switch (statement.kind) {\n case 'section':\n enter(statement.family, statement.line, false)\n return\n case 'label': {\n const name = statement.symbol.name\n push(`${names.emit(name)}:`, statement.line, { label: true })\n definedOrder.push(name)\n for (const alias of resolution.aliasesByLabel.get(name) ?? []) {\n push(`${names.emit(alias.name)}:`, alias.line, { label: true })\n definedOrder.push(alias.name)\n }\n return\n }\n case 'binding': {\n const name = statement.symbol.name\n if (!resolution.defined.has(name)) return // an `extern` in the header\n push(`global ${names.emit(name)}${resolution.weak.has(name) ? ':weak' : ''}`, statement.line)\n return\n }\n case 'common': {\n const name = statement.symbol.name\n if (!resolution.localCommons.has(name)) {\n push(`common ${names.emit(name)} ${statement.size}:${statement.alignment}`, statement.line)\n return\n }\n const previous = current\n if (previous !== '.bss') enter('.bss', statement.line, true)\n push(`alignb ${statement.alignment}`, statement.line, { synthesized: true })\n push(`${names.emit(name)}: resb ${statement.size}`, statement.line, { label: true })\n if (previous !== '.bss') enter(previous, statement.line, true)\n return\n }\n case 'align':\n push(\n statement.family === '.bss'\n ? `alignb ${statement.bytes}`\n : statement.fill === null\n ? `align ${statement.bytes}`\n : `align ${statement.bytes}, db ${statement.fill}`,\n statement.line,\n )\n return\n case 'data':\n push(`${statement.directive} ${statement.values.map(value).join(', ')}`, statement.line)\n return\n case 'zero':\n push(\n statement.family === '.bss' ? `resb ${statement.count}` : `times ${statement.count} db 0`,\n statement.line,\n )\n return\n case 'string': {\n const parts = statement.strings.map(\n (bytes) => `${encodeNasmString(bytes)}${statement.terminated ? ', 0' : ''}`,\n )\n push(`db ${parts.join(', ')}`, statement.line)\n return\n }\n case 'instruction': {\n const { prefix, mnemonic, operands } = statement.instruction\n const rendered = operands.map((operand) => renderOperand(operand, (name) => names.emit(name)))\n const text = `${prefix ? `${prefix} ` : ''}${mnemonic}${rendered.length ? ` ${rendered.join(', ')}` : ''}`\n push(text, statement.line, { location: statement.location })\n return\n }\n }\n }\n for (const statement of analysis.statements) emitStatement(statement)\n\n const externNames = resolution.externs.map((extern) => names.emit(extern.name))\n const header: string[] = []\n // An instruction-set directive such as `CPU X64` would be the first line; gate 8 chose the\n // generated `unsupported-instruction` check over it.\n header.push('default rel')\n if (names.escapes) header.push('[dollarhex off]')\n resolution.externs.forEach((extern, index) =>\n header.push(`extern ${externNames[index]}${extern.weak ? ':weak' : ''}`),\n )\n\n const lines: TranslatedLine[] = [\n ...header.map((text) => ({ text: `${INDENT}${text}`, inputLine: null, synthesized: true, location: null })),\n ...body,\n ]\n\n const symbol = (name: string): TranslatedSymbol => ({ name, nasmName: names.nasmName(name) })\n const symbols: SymbolSummary = {\n defined: definedOrder\n .filter((name) => resolution.global.has(name) || resolution.weak.has(name))\n .map((name) => ({\n ...symbol(name),\n binding: resolution.weak.has(name) ? ('weak' as const) : ('global' as const),\n })),\n common: analysis.commons\n .filter((common) => resolution.globalCommons.has(common.name))\n .map((common) => symbol(common.name)),\n external: resolution.externs\n .filter((extern) => extern.referenced)\n .map((extern) => ({ ...symbol(extern.name), weak: extern.weak })),\n constructors: analysis.constructors.map((constructor) => symbol(constructor.name)),\n }\n return { lines, symbols }\n}\n","import { analyze, type Analysis } from './analyze'\nimport { DiagnosticCollector } from './diagnostics'\nimport { emit, resolve } from './emit'\nimport { resolveProfile, type TranslationRules } from './profile'\nimport type { CompilerLocation, TranslationOptions, TranslationProfile, TranslationResult } from './types'\n\n/**\n * Translates one compiler output, as lines of text, into NASM 3.00 source for one ELF64 object.\n * Throws only for an unknown profile id; everything about the input is a Diagnostic, and any error\n * means no output.\n */\nexport function translateCompilerOutput(input: readonly string[], options: TranslationOptions): TranslationResult {\n const { profile, rules } = resolveProfile((options as Partial<TranslationOptions> | undefined)?.profile)\n return translateWithRules(input, profile, rules)\n}\n\n/** {@link translateCompilerOutput} with the rules spelled out, so a pending rule can be tried. */\nexport function translateWithRules(\n input: readonly string[],\n profile: TranslationProfile,\n rules: TranslationRules,\n): TranslationResult {\n const lineLocations: (CompilerLocation | null)[] = []\n const diagnostics = new DiagnosticCollector((line) => lineLocations[line] ?? null)\n const analysis = analyze(input, rules, diagnostics, lineLocations)\n checkCompiler(analysis, profile, diagnostics)\n const resolution = resolve(analysis, diagnostics)\n if (diagnostics.hasErrors) return { ok: false, diagnostics: diagnostics.sorted() }\n\n const { lines, symbols } = emit(analysis, resolution)\n return {\n ok: true,\n text: `${lines.map((line) => line.text).join('\\n')}\\n`,\n lines,\n symbols,\n diagnostics: diagnostics.sorted(),\n }\n}\n\n/**\n * GCC names itself in `.ident`, `GCC: (pkgversion) 14.2.0`. Anything else, or nothing, is a\n * warning that the output comes from a compiler the profile was not verified on.\n */\nfunction checkCompiler(analysis: Analysis, profile: TranslationProfile, diagnostics: DiagnosticCollector): void {\n const { name, version } = profile.compiler\n const expected = `${name} ${version}`\n if (analysis.idents.length === 0) {\n diagnostics.warning(\n 'unverified-compiler',\n 0,\n `No \\`.ident\\` names the compiler; profile ${profile.id} is verified only on ${expected} output`,\n undefined,\n null,\n )\n return\n }\n const pattern = new RegExp(`^${name}: (?:\\\\(.*\\\\) )?${version.replace('.', '\\\\.')}\\\\.\\\\d+(?:\\\\s|$)`)\n for (const ident of analysis.idents) {\n if (ident.text !== null && pattern.test(ident.text)) continue\n const named = ident.text === null ? 'an unreadable compiler' : `\"${ident.text}\"`\n diagnostics.warning(\n 'unverified-compiler',\n ident.line,\n `\\`.ident\\` names ${named}; profile ${profile.id} is verified only on ${expected} output`,\n ident.column,\n null,\n )\n }\n}\n"],"mappings":"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AC,IAAI,MAAM;CACX,CAAC,IAAI,MAAM;CACX,CAAC,IAAI,OAAO;CACZ,CAAC,IAAI,MAAM;CACd,CAAC;;;;;;AAOF,SAAgB,iBAAiB,OAA2B;CACxD,IAAI,OAAO;AACX,MAAK,MAAM,QAAQ,OAAO;EACtB,MAAM,SAAS,oBAAoB,IAAI,KAAK;AAC5C,MAAI,OAAQ,SAAQ;WACX,QAAQ,MAAQ,QAAQ,IAAM,SAAQ,OAAO,aAAa,KAAK;MACnE,SAAQ,KAAK,KAAK,SAAS,EAAE,CAAC,SAAS,GAAG,IAAI;;AAEvD,QAAO,GAAG,KAAK;;;;;;;;;;;;;;;;;;ACpSnB,MAAa,yBAA4C;CACrD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACH;;;;;;;;;;;;;AAiBD,MAAa,uBAA8D,IAAI,IAA8B;CACzG,CAAC,OAAO,C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C,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;CAC3B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;CAC3B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;CAC3B,CAAC,cAAc,CAAC,IAAI,OAAO,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C,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;CACjC,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;CACjC,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC;CAC9B,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC;CAC9B,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;CACjC,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;CACjC,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC;CAC9B,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC;CAC9B,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC;CACpC,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC;CACjC,CAAC,gBAAgB,CAA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"}