12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433 |
- #if UNITY_EDITOR || BURST_INTERNAL
- namespace Unity.Burst.Editor
- {
- internal partial class BurstDisassembler
- {
- /// <summary>
- /// <see cref="AsmTokenKind"/> provider for Intel x86-64
- /// </summary>
- private class X86AsmTokenKindProvider : AsmTokenKindProvider
- {
- private static readonly string[] Registers = new[]
- {
- "rax",
- "eax",
- "ax",
- "al",
- "ah",
- "rbx",
- "ebx",
- "bx",
- "bl",
- "bh",
- "rcx",
- "ecx",
- "cx",
- "cl",
- "ch",
- "rdx",
- "edx",
- "dx",
- "dl",
- "dh",
- "rsi",
- "esi",
- "si",
- "sil",
- "rdi",
- "edi",
- "di",
- "dil",
- "rbp",
- "ebp",
- "bp",
- "bpl",
- "rsp",
- "esp",
- "sp",
- "spl",
- "r8",
- "r8d",
- "r8w",
- "r8b",
- "r9",
- "r9d",
- "r9w",
- "r9b",
- "r10",
- "r10d",
- "r10w",
- "r10b",
- "r11",
- "r11d",
- "r11w",
- "r11b",
- "r12",
- "r12d",
- "r12w",
- "r12b",
- "r13",
- "r13d",
- "r13w",
- "r13b",
- "r14",
- "r14d",
- "r14w",
- "r14b",
- "r15",
- "r15d",
- "r15w",
- "r15b",
- "cs",
- "ss",
- "ds",
- "es",
- "fs",
- "gs",
- "cr0",
- "cr2",
- "cr3",
- "cr4",
- "cr8",
- "dr0",
- "dr1",
- "dr2",
- "dr3",
- "dr6",
- "dr7",
- "mm0",
- "mm1",
- "mm2",
- "mm3",
- "mm4",
- "mm5",
- "mm6",
- "mm7",
- "xmm0",
- "xmm1",
- "xmm2",
- "xmm3",
- "xmm4",
- "xmm5",
- "xmm6",
- "xmm7",
- "xmm8",
- "xmm9",
- "xmm10",
- "xmm11",
- "xmm12",
- "xmm13",
- "xmm14",
- "xmm15",
- "ymm0",
- "ymm1",
- "ymm2",
- "ymm3",
- "ymm4",
- "ymm5",
- "ymm6",
- "ymm7",
- "ymm8",
- "ymm9",
- "ymm10",
- "ymm11",
- "ymm12",
- "ymm13",
- "ymm14",
- "ymm15",
- "st",
- "st0",
- "st1",
- "st2",
- "st3",
- "st4",
- "st5",
- "st6",
- "st7",
- };
-
- private static readonly string[] Qualifiers = new[]
- {
- "offset",
- "xmmword",
- "dword",
- "qword",
- "byte",
- "ptr",
- };
-
- private static readonly string[] Instructions = new[]
- {
- "aaa",
- "aad",
- "aam",
- "aas",
- "adc",
- "adcx",
- "add",
- "adox",
- "and",
- "andn",
- "arpl",
- "bextr",
- "blsi",
- "blsmsk",
- "blsr",
- "bound",
- "bsf",
- "bsr",
- "bswap",
- "bt",
- "btc",
- "btr",
- "bts",
- "bzhi",
- "call",
- "cbw",
- "cdq",
- "cdqe",
- "clac",
- "clc",
- "cld",
- "cli",
- "clts",
- "cmc",
- "cmova",
- "cmovae",
- "cmovb",
- "cmovbe",
- "cmovc",
- "cmove",
- "cmovg",
- "cmovge",
- "cmovl",
- "cmovle",
- "cmovna",
- "cmovnae",
- "cmovnb",
- "cmovnbe",
- "cmovnc",
- "cmovne",
- "cmovng",
- "cmovnge",
- "cmovnl",
- "cmovnle",
- "cmovno",
- "cmovnp",
- "cmovns",
- "cmovnz",
- "cmovo",
- "cmovp",
- "cmovpe",
- "cmovpo",
- "cmovs",
- "cmovz",
- "cmp",
- "cmps",
- "cmpsb",
- "cmpsd",
- "cmpsq",
- "cmpsw",
- "cmpxchg",
- "cmpxchg16b",
- "cmpxchg8b",
- "cpuid",
- "crc32",
- "cwd",
- "cwde",
- "daa",
- "das",
- "dec",
- "div",
- "enter",
- "hlt",
- "idiv",
- "imul",
- "in",
- "inc",
- "ins",
- "insb",
- "insd",
- "insw",
- "int",
- "into",
- "invd",
- "invept",
- "invlpg",
- "invpcid",
- "invvpid",
- "iret",
- "ja",
- "jae",
- "jb",
- "jbe",
- "jc",
- "jcxz",
- "je",
- "jecxz",
- "jg",
- "jge",
- "jl",
- "jle",
- "jmp",
- "jna",
- "jnae",
- "jnb",
- "jnbe",
- "jnc",
- "jne",
- "jng",
- "jnge",
- "jnl",
- "jnle",
- "jno",
- "jnp",
- "jns",
- "jnz",
- "jo",
- "jp",
- "jpe",
- "jpo",
- "js",
- "jz",
- "lahf",
- "lar",
- "lds",
- "lea",
- "leave",
- "les",
- "lfs",
- "lgdt",
- "lgs",
- "lidt",
- "lldt",
- "lmsw",
- "lock",
- "lods",
- "lodsb",
- "lodsd",
- "lodsq",
- "lodsw",
- "loop",
- "loope",
- "loopne",
- "loopnz",
- "loopz",
- "lsl",
- "lss",
- "ltr",
- "lzcnt",
- "mov",
- "movbe1",
- "movabs",
- "movs",
- "movsb",
- "movsd",
- "movsq",
- "movsw",
- "movsx",
- "movsxd",
- "movzx",
- "mul",
- "mulx",
- "neg",
- "nop",
- "not",
- "or",
- "out",
- "outs",
- "outsb",
- "outsd",
- "outsw",
- "pdep",
- "pext",
- "pop",
- "popa",
- "popad",
- "popcnt",
- "popf",
- "popfd",
- "prefetchw",
- "prefetchwt1",
- "push",
- "pusha",
- "pushad",
- "pushf",
- "pushfd",
- "rcl",
- "rcr",
- "rdfsbase",
- "rdgsbase",
- "rdmsr",
- "rdpmc",
- "rdrand",
- "rdseed",
- "rdtsc",
- "rdtscp",
- "rep",
- "repe",
- "repne",
- "repnz",
- "repz",
- "ret",
- "rex64",
- "rol",
- "ror",
- "rorx",
- "rsm",
- "sahf",
- "sal",
- "sar",
- "sarx",
- "sbb",
- "scas",
- "scasb",
- "scasd",
- "scasw",
- "seta",
- "setae",
- "setb",
- "setbe",
- "setc",
- "sete",
- "setg",
- "setge",
- "setl",
- "setle",
- "setna",
- "setnae",
- "setnb",
- "setnbe",
- "setnc",
- "setne",
- "setng",
- "setnge",
- "setnl",
- "setnle",
- "setno",
- "setnp",
- "setns",
- "setnz",
- "seto",
- "setp",
- "setpe",
- "setpo",
- "sets",
- "setz",
- "sgdt",
- "shl",
- "shld",
- "shlx",
- "shr",
- "shrd",
- "shrx",
- "sidt",
- "sldt",
- "smsw",
- "stac",
- "stc",
- "std",
- "sti",
- "stos",
- "stosb",
- "stosd",
- "stosq",
- "stosw",
- "str",
- "sub",
- "swapgs",
- "syscall",
- "sysenter",
- "sysexit",
- "sysret",
- "test",
- "tzcnt",
- "ud2",
- "verr",
- "verw",
- "vmcall",
- "vmclear",
- "vmfunc",
- "vmlaunch",
- "vmptrld",
- "vmptrst",
- "vmread",
- "vmresume",
- "vmwrite",
- "vmxoff",
- "vmxon",
- "wbinvd",
- "wrfsbase",
- "wrgsbase",
- "wrmsr",
- "xabort",
- "xacquire",
- "xadd",
- "xbegin",
- "xchg",
- "xend",
- "xgetbv",
- "xlat",
- "xlatb",
- "xor",
- "xrelease",
- "xrstor",
- "xsave",
- "xsaveopt",
- "xsetbv",
- "xtest",
- };
-
- private static readonly string[] FpuInstructions = new[]
- {
- "f2xm1",
- "fabs",
- "fadd",
- "faddp",
- "fbld",
- "fbstp",
- "fchs",
- "fclex",
- "fcmovb",
- "fcmovbe",
- "fcmove",
- "fcmovnb",
- "fcmovnbe",
- "fcmovne",
- "fcmovnu",
- "fcmovu",
- "fcom",
- "fcomi",
- "fcomip",
- "fcomp",
- "fcompp",
- "fcos",
- "fdecstp",
- "fdiv",
- "fdivp",
- "fdivr",
- "fdivrp",
- "ffree",
- "fiadd",
- "ficom",
- "ficomp",
- "fidiv",
- "fidivr",
- "fild",
- "fimul",
- "fincstp",
- "finit",
- "fist",
- "fistp",
- "fisttp",
- "fisub",
- "fisubr",
- "fld1",
- "fld",
- "fldcw",
- "fldenv",
- "fldl2e",
- "fldl2t",
- "fldlg2",
- "fldln2",
- "fldpi",
- "fldz",
- "fmul",
- "fmulp",
- "fnclex",
- "fninit",
- "fnop",
- "fnsave",
- "fnstcw",
- "fnstenv",
- "fnstsw",
- "fpatan",
- "fprem1",
- "fprem",
- "fptan",
- "frndint",
- "frstor",
- "fsave",
- "fscale",
- "fsin",
- "fsincos",
- "fsqrt",
- "fst",
- "fstcw",
- "fstenv",
- "fstp",
- "fstsw",
- "fsub",
- "fsubp",
- "fsubr",
- "fsubrp",
- "ftst",
- "fucom",
- "fucomi",
- "fucomip",
- "fucomp",
- "fucompp",
- "fxam",
- "fxch",
- "fxrstor",
- "fxsave",
- "fxtract",
- "fyl2x",
- "fyl2xp1",
- "fwait",
- "wait",
- };
-
- private static readonly string[] SimdInstructions = new[]
- {
- "addpd",
- "addps",
- "addsd",
- "addss",
- "addsubpd",
- "addsubps",
- "aesdec",
- "aesdeclast",
- "aesenc",
- "aesenclast",
- "aesimc",
- "aeskeygenassist",
- "andnpd",
- "andnps",
- "andpd",
- "andps",
- "blendpd",
- "blendps",
- "blendvpd",
- "blendvps",
- "clflush",
- "cmpeqpd",
- "cmpeqps",
- "cmpeqsd",
- "cmpeqss",
- "cmplepd",
- "cmpleps",
- "cmplesd",
- "cmpless",
- "cmpltpd",
- "cmpltps",
- "cmpltsd",
- "cmpltss",
- "cmpneqpd",
- "cmpneqps",
- "cmpneqsd",
- "cmpneqss",
- "cmpnlepd",
- "cmpnleps",
- "cmpnlesd",
- "cmpnless",
- "cmpnltpd",
- "cmpnltps",
- "cmpnltsd",
- "cmpnltss",
- "cmpordpd",
- "cmpordps",
- "cmpordsd",
- "cmpordss",
- "cmppd",
- "cmpps",
- "cmpss",
- "cmpunordpd",
- "cmpunordps",
- "cmpunordsd",
- "cmpunordss",
- "comisd",
- "comiss",
- "cvtdq2pd",
- "cvtdq2ps",
- "cvtpd2dq",
- "cvtpd2pi",
- "cvtpd2ps",
- "cvtpi2pd",
- "cvtpi2ps",
- "cvtps2dq",
- "cvtps2pd",
- "cvtps2pi",
- "cvtsd2si",
- "cvtsd2ss",
- "cvtsi2sd",
- "cvtsi2ss",
- "cvtss2sd",
- "cvtss2si",
- "cvttpd2dq",
- "cvttpd2pi",
- "cvttps2dq",
- "cvttps2pi",
- "cvttsd2si",
- "cvttss2si",
- "divpd",
- "divps",
- "divsd",
- "divss",
- "dppd",
- "dpps",
- "emms",
- "extractps",
- "extrq",
- "femms",
- "fxrstor64",
- "fxsave64",
- "haddpd",
- "haddps",
- "hsubpd",
- "hsubps",
- "insertps",
- "insertq",
- "lddqu",
- "ldmxcsr",
- "lfence",
- "maskmovdqu",
- "maskmovq",
- "maxpd",
- "maxps",
- "maxsd",
- "maxss",
- "mfence",
- "minpd",
- "minps",
- "minsd",
- "minss",
- "monitor",
- "movapd",
- "movaps",
- "movd",
- "movddup",
- "movdq2q",
- "movdqa",
- "movdqu",
- "movhlps",
- "movhpd",
- "movhps",
- "movlhps",
- "movlpd",
- "movlps",
- "movmskpd",
- "movmskps",
- "movntdq",
- "movntdqa",
- "movnti",
- "movntpd",
- "movntps",
- "movntq",
- "movntsd",
- "movntss",
- "movq",
- "movq2dq",
- "movshdup",
- "movsldup",
- "movss",
- "movupd",
- "movups",
- "mpsadbw",
- "mulpd",
- "mulps",
- "mulsd",
- "mulss",
- "mwait",
- "orpd",
- "orps",
- "pabsb",
- "pabsd",
- "pabsw",
- "packssdw",
- "packsswb",
- "packusdw",
- "packuswb",
- "paddb",
- "paddd",
- "paddq",
- "paddsb",
- "paddsiw",
- "paddsw",
- "paddusb",
- "paddusw",
- "paddw",
- "palignr",
- "pand",
- "pandn",
- "pause",
- "paveb",
- "pavgb",
- "pavgusb",
- "pavgw",
- "pblendvb",
- "pblendw",
- "pclmulqdq",
- "pcmpeqb",
- "pcmpeqd",
- "pcmpeqq",
- "pcmpeqw",
- "pcmpestri",
- "pcmpestrm",
- "pcmpgtb",
- "pcmpgtd",
- "pcmpgtq",
- "pcmpgtw",
- "pcmpistri",
- "pcmpistrm",
- "pdistib",
- "pextrb",
- "pextrd",
- "pextrq",
- "pextrw",
- "pf2id",
- "pfacc",
- "pfadd",
- "pfcmpeq",
- "pfcmpge",
- "pfcmpgt",
- "pfmax",
- "pfmin",
- "pfmul",
- "pfrcp",
- "pfrcpit1",
- "pfrcpit2",
- "pfrsqit1",
- "pfrsqrt",
- "pfsub",
- "pfsubr",
- "phaddd",
- "phaddsw",
- "phaddw",
- "phminposuw",
- "phsubd",
- "phsubsw",
- "phsubw",
- "pi2fd",
- "pinsrb",
- "pinsrd",
- "pinsrq",
- "pinsrw",
- "pmachriw",
- "pmaddubsw",
- "pmaddwd",
- "pmagw",
- "pmaxsb",
- "pmaxsd",
- "pmaxsw",
- "pmaxub",
- "pmaxud",
- "pmaxuw",
- "pminsb",
- "pminsd",
- "pminsw",
- "pminub",
- "pminud",
- "pminuw",
- "pmovmskb",
- "pmovsxbd",
- "pmovsxbq",
- "pmovsxbw",
- "pmovsxdq",
- "pmovsxwd",
- "pmovsxwq",
- "pmovzxbd",
- "pmovzxbq",
- "pmovzxbw",
- "pmovzxdq",
- "pmovzxwd",
- "pmovzxwq",
- "pmuldq",
- "pmulhriw",
- "pmulhrsw",
- "pmulhrwa",
- "pmulhrwc",
- "pmulhuw",
- "pmulhw",
- "pmulld",
- "pmullw",
- "pmuludq",
- "pmvgezb",
- "pmvlzb",
- "pmvnzb",
- "pmvzb",
- "por",
- "prefetch",
- "prefetchnta",
- "prefetcht0",
- "prefetcht1",
- "prefetcht2",
- "psadbw",
- "pshufb",
- "pshufd",
- "pshufhw",
- "pshuflw",
- "pshufw",
- "psignb",
- "psignd",
- "psignw",
- "pslld",
- "pslldq",
- "psllq",
- "psllw",
- "psrad",
- "psraw",
- "psrld",
- "psrldq",
- "psrlq",
- "psrlw",
- "psubb",
- "psubd",
- "psubq",
- "psubsb",
- "psubsiw",
- "psubsw",
- "psubusb",
- "psubusw",
- "psubw",
- "ptest",
- "punpckhbw",
- "punpckhdq",
- "punpckhqdq",
- "punpckhwd",
- "punpcklbw",
- "punpckldq",
- "punpcklqdq",
- "punpcklwd",
- "pxor",
- "rcpps",
- "rcpss",
- "roundpd",
- "roundps",
- "roundsd",
- "roundss",
- "rsqrtps",
- "rsqrtss",
- "sfence",
- "shufpd",
- "shufps",
- "sqrtpd",
- "sqrtps",
- "sqrtsd",
- "sqrtss",
- "stmxcsr",
- "subpd",
- "subps",
- "subsd",
- "subss",
- "ucomisd",
- "ucomiss",
- "unpckhpd",
- "unpckhps",
- "unpcklpd",
- "unpcklps",
- "vaddpd",
- "vaddps",
- "vaddsd",
- "vaddss",
- "vaddsubpd",
- "vaddsubps",
- "vaesdec",
- "vaesdeclast",
- "vaesenc",
- "vaesenclast",
- "vaesimc",
- "vaeskeygenassist",
- "vandnpd",
- "vandnps",
- "vandpd",
- "vandps",
- "vblendpd",
- "vblendps",
- "vblendvpd",
- "vblendvps",
- "vbroadcastf128",
- "vbroadcasti128",
- "vbroadcastsd",
- "vbroadcastss",
- "vcmpeqpd",
- "vcmpeqps",
- "vcmpeqsd",
- "vcmpeqss",
- "vcmpfalsepd",
- "vcmpfalseps",
- "vcmpfalsesd",
- "vcmpfalsess",
- "vcmpgepd",
- "vcmpgeps",
- "vcmpgesd",
- "vcmpgess",
- "vcmpgtpd",
- "vcmpgtps",
- "vcmpgtsd",
- "vcmpgtss",
- "vcmplepd",
- "vcmpleps",
- "vcmplesd",
- "vcmpless",
- "vcmpltpd",
- "vcmpltps",
- "vcmpltsd",
- "vcmpltss",
- "vcmpneqpd",
- "vcmpneqps",
- "vcmpneqsd",
- "vcmpneqss",
- "vcmpngepd",
- "vcmpngeps",
- "vcmpngesd",
- "vcmpngess",
- "vcmpngtpd",
- "vcmpngtps",
- "vcmpngtsd",
- "vcmpngtss",
- "vcmpnlepd",
- "vcmpnleps",
- "vcmpnlesd",
- "vcmpnless",
- "vcmpnltpd",
- "vcmpnltps",
- "vcmpnltsd",
- "vcmpnltss",
- "vcmpordpd",
- "vcmpordps",
- "vcmpordsd",
- "vcmpordss",
- "vcmppd",
- "vcmpps",
- "vcmpsd",
- "vcmpss",
- "vcmptruepd",
- "vcmptrueps",
- "vcmptruesd",
- "vcmptruess",
- "vcmpunordpd",
- "vcmpunordps",
- "vcmpunordsd",
- "vcmpunordss",
- "vcomisd",
- "vcomiss",
- "vcvtdq2pd",
- "vcvtdq2ps",
- "vcvtpd2dq",
- "vcvtpd2ps",
- "vcvtph2ps",
- "vcvtps2dq",
- "vcvtps2pd",
- "vcvtps2ph",
- "vcvtsd2si",
- "vcvtsd2ss",
- "vcvtsi2sd",
- "vcvtsi2ss",
- "vcvtss2sd",
- "vcvtss2si",
- "vcvttpd2dq",
- "vcvttps2dq",
- "vcvttsd2si",
- "vcvttss2si",
- "vdivpd",
- "vdivps",
- "vdivsd",
- "vdivss",
- "vdppd",
- "vdpps",
- "vextractf128",
- "vextracti128",
- "vextractps",
- "vfmadd123pd",
- "vfmadd123ps",
- "vfmadd123sd",
- "vfmadd123ss",
- "vfmadd132pd",
- "vfmadd132ps",
- "vfmadd132sd",
- "vfmadd132ss",
- "vfmadd213pd",
- "vfmadd213ps",
- "vfmadd213sd",
- "vfmadd213ss",
- "vfmadd231pd",
- "vfmadd231ps",
- "vfmadd231sd",
- "vfmadd231ss",
- "vfmadd312pd",
- "vfmadd312ps",
- "vfmadd312sd",
- "vfmadd312ss",
- "vfmadd321pd",
- "vfmadd321ps",
- "vfmadd321sd",
- "vfmadd321ss",
- "vfmaddsub123pd",
- "vfmaddsub123ps",
- "vfmaddsub132pd",
- "vfmaddsub132ps",
- "vfmaddsub213pd",
- "vfmaddsub213ps",
- "vfmaddsub231pd",
- "vfmaddsub231ps",
- "vfmaddsub312pd",
- "vfmaddsub312ps",
- "vfmaddsub321pd",
- "vfmaddsub321ps",
- "vfmsub123pd",
- "vfmsub123ps",
- "vfmsub123sd",
- "vfmsub123ss",
- "vfmsub132pd",
- "vfmsub132ps",
- "vfmsub132sd",
- "vfmsub132ss",
- "vfmsub213pd",
- "vfmsub213ps",
- "vfmsub213sd",
- "vfmsub213ss",
- "vfmsub231pd",
- "vfmsub231ps",
- "vfmsub231sd",
- "vfmsub231ss",
- "vfmsub312pd",
- "vfmsub312ps",
- "vfmsub312sd",
- "vfmsub312ss",
- "vfmsub321pd",
- "vfmsub321ps",
- "vfmsub321sd",
- "vfmsub321ss",
- "vfmsubadd123pd",
- "vfmsubadd123ps",
- "vfmsubadd132pd",
- "vfmsubadd132ps",
- "vfmsubadd213pd",
- "vfmsubadd213ps",
- "vfmsubadd231pd",
- "vfmsubadd231ps",
- "vfmsubadd312pd",
- "vfmsubadd312ps",
- "vfmsubadd321pd",
- "vfmsubadd321ps",
- "vfnmadd123pd",
- "vfnmadd123ps",
- "vfnmadd123sd",
- "vfnmadd123ss",
- "vfnmadd132pd",
- "vfnmadd132ps",
- "vfnmadd132sd",
- "vfnmadd132ss",
- "vfnmadd213pd",
- "vfnmadd213ps",
- "vfnmadd213sd",
- "vfnmadd213ss",
- "vfnmadd231pd",
- "vfnmadd231ps",
- "vfnmadd231sd",
- "vfnmadd231ss",
- "vfnmadd312pd",
- "vfnmadd312ps",
- "vfnmadd312sd",
- "vfnmadd312ss",
- "vfnmadd321pd",
- "vfnmadd321ps",
- "vfnmadd321sd",
- "vfnmadd321ss",
- "vfnmsub123pd",
- "vfnmsub123ps",
- "vfnmsub123sd",
- "vfnmsub123ss",
- "vfnmsub132pd",
- "vfnmsub132ps",
- "vfnmsub132sd",
- "vfnmsub132ss",
- "vfnmsub213pd",
- "vfnmsub213ps",
- "vfnmsub213sd",
- "vfnmsub213ss",
- "vfnmsub231pd",
- "vfnmsub231ps",
- "vfnmsub231sd",
- "vfnmsub231ss",
- "vfnmsub312pd",
- "vfnmsub312ps",
- "vfnmsub312sd",
- "vfnmsub312ss",
- "vfnmsub321pd",
- "vfnmsub321ps",
- "vfnmsub321sd",
- "vfnmsub321ss",
- "vgatherdpd",
- "vgatherdps",
- "vgatherqpd",
- "vgatherqps",
- "vhaddpd",
- "vhaddps",
- "vhsubpd",
- "vhsubps",
- "vinsertf128",
- "vinserti128",
- "vinsertps",
- "vlddqu",
- "vldmxcsr",
- "vldqqu",
- "vmaskmovdqu",
- "vmaskmovpd",
- "vmaskmovps",
- "vmaxpd",
- "vmaxps",
- "vmaxsd",
- "vmaxss",
- "vminpd",
- "vminps",
- "vminsd",
- "vminss",
- "vmovapd",
- "vmovaps",
- "vmovd",
- "vmovddup",
- "vmovdqa",
- "vmovdqu",
- "vmovhlps",
- "vmovhpd",
- "vmovhps",
- "vmovlhps",
- "vmovlpd",
- "vmovlps",
- "vmovmskpd",
- "vmovmskps",
- "vmovntdq",
- "vmovntdqa",
- "vmovntpd",
- "vmovntps",
- "vmovntqq",
- "vmovq",
- "vmovqqa",
- "vmovqqu",
- "vmovsd",
- "vmovshdup",
- "vmovsldup",
- "vmovss",
- "vmovupd",
- "vmovups",
- "vmpsadbw",
- "vmulpd",
- "vmulps",
- "vmulsd",
- "vmulss",
- "vorpd",
- "vorps",
- "vpabsb",
- "vpabsd",
- "vpabsw",
- "vpackssdw",
- "vpacksswb",
- "vpackusdw",
- "vpackuswb",
- "vpaddb",
- "vpaddd",
- "vpaddq",
- "vpaddsb",
- "vpaddsw",
- "vpaddusb",
- "vpaddusw",
- "vpaddw",
- "vpalignr",
- "vpand",
- "vpandn",
- "vpavgb",
- "vpavgw",
- "vpblendd",
- "vpblendvb",
- "vpblendw",
- "vpbroadcastb",
- "vpbroadcastd",
- "vpbroadcastq",
- "vpbroadcastw",
- "vpclmulqdq",
- "vpcmpeqb",
- "vpcmpeqd",
- "vpcmpeqq",
- "vpcmpeqw",
- "vpcmpestri",
- "vpcmpestrm",
- "vpcmpgtb",
- "vpcmpgtd",
- "vpcmpgtq",
- "vpcmpgtw",
- "vpcmpistri",
- "vpcmpistrm",
- "vperm2f128",
- "vperm2i128",
- "vpermd",
- "vpermilpd",
- "vpermilps",
- "vpermpd",
- "vpermps",
- "vpermq",
- "vpextrb",
- "vpextrd",
- "vpextrq",
- "vpextrw",
- "vpgatherdd",
- "vpgatherdq",
- "vpgatherqd",
- "vpgatherqq",
- "vphaddd",
- "vphaddsw",
- "vphaddw",
- "vphminposuw",
- "vphsubd",
- "vphsubsw",
- "vphsubw",
- "vpinsrb",
- "vpinsrd",
- "vpinsrq",
- "vpinsrw",
- "vpmaddubsw",
- "vpmaddwd",
- "vpmaskmovd",
- "vpmaskmovq",
- "vpmaxsb",
- "vpmaxsd",
- "vpmaxsw",
- "vpmaxub",
- "vpmaxud",
- "vpmaxuw",
- "vpminsb",
- "vpminsd",
- "vpminsw",
- "vpminub",
- "vpminud",
- "vpminuw",
- "vpmovmskb",
- "vpmovsxbd",
- "vpmovsxbq",
- "vpmovsxbw",
- "vpmovsxdq",
- "vpmovsxwd",
- "vpmovsxwq",
- "vpmovzxbd",
- "vpmovzxbq",
- "vpmovzxbw",
- "vpmovzxdq",
- "vpmovzxwd",
- "vpmovzxwq",
- "vpmuldq",
- "vpmulhrsw",
- "vpmulhuw",
- "vpmulhw",
- "vpmulld",
- "vpmullw",
- "vpmuludq",
- "vpor",
- "vpsadbw",
- "vpshufb",
- "vpshufd",
- "vpshufhw",
- "vpshuflw",
- "vpsignb",
- "vpsignd",
- "vpsignw",
- "vpslld",
- "vpslldq",
- "vpsllq",
- "vpsllvd",
- "vpsllvq",
- "vpsllw",
- "vpsrad",
- "vpsravd",
- "vpsraw",
- "vpsrld",
- "vpsrldq",
- "vpsrlq",
- "vpsrlvd",
- "vpsrlvq",
- "vpsrlw",
- "vpsubb",
- "vpsubd",
- "vpsubq",
- "vpsubsb",
- "vpsubsw",
- "vpsubusb",
- "vpsubusw",
- "vpsubw",
- "vptest",
- "vpunpckhbw",
- "vpunpckhdq",
- "vpunpckhqdq",
- "vpunpckhwd",
- "vpunpcklbw",
- "vpunpckldq",
- "vpunpcklqdq",
- "vpunpcklwd",
- "vpxor",
- "vrcpps",
- "vrcpss",
- "vroundpd",
- "vroundps",
- "vroundsd",
- "vroundss",
- "vrsqrtps",
- "vrsqrtss",
- "vshufpd",
- "vshufps",
- "vsqrtpd",
- "vsqrtps",
- "vsqrtsd",
- "vsqrtss",
- "vstmxcsr",
- "vsubpd",
- "vsubps",
- "vsubsd",
- "vsubss",
- "vtestpd",
- "vtestps",
- "vucomisd",
- "vucomiss",
- "vunpckhpd",
- "vunpckhps",
- "vunpcklpd",
- "vunpcklps",
- "vxorpd",
- "vxorps",
- "vzeroall",
- "vzeroupper",
- "xorpd",
- "xorps",
- "xrstor64",
- "xrstors",
- "xrstors64",
- "xsave64",
- "xsavec",
- "xsavec64",
- "xsaveopt64",
- "xsaves",
- "xsaves64",
- };
-
- private X86AsmTokenKindProvider() : base(Registers.Length + Qualifiers.Length + Instructions.Length + FpuInstructions.Length + SimdInstructions.Length)
- {
- foreach (var register in Registers)
- {
- AddTokenKind(register, AsmTokenKind.Register);
- }
-
- foreach (var instruction in Qualifiers)
- {
- AddTokenKind(instruction, AsmTokenKind.Qualifier);
- }
-
- foreach (var instruction in Instructions)
- {
- AddTokenKind(instruction, AsmTokenKind.Instruction);
- }
-
- foreach (var instruction in FpuInstructions)
- {
- AddTokenKind(instruction, AsmTokenKind.Instruction);
- }
-
- foreach (var instruction in SimdInstructions)
- {
- AddTokenKind(instruction, AsmTokenKind.InstructionSIMD);
- }
- }
-
- public static readonly X86AsmTokenKindProvider Instance = new X86AsmTokenKindProvider();
- }
- }
- }
- #endif
|