Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 2 | " Language: Microsoft Macro Assembler (80x86) |
| 3 | " Orig Author: Rob Brady <robb@datatone.com> |
| 4 | " Maintainer: Wu Yongwei <wuyongwei@gmail.com> |
Wu Yongwei | 3746887 | 2023-12-22 00:12:34 +0800 | [diff] [blame] | 5 | " Last Change: 2023-12-20 10:20:04 +0800 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 7 | " Quit when a syntax file was already loaded |
| 8 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 9 | finish |
| 10 | endif |
| 11 | |
Bram Moolenaar | b8ff1fb | 2012-02-04 21:59:01 +0100 | [diff] [blame] | 12 | let s:cpo_save = &cpo |
| 13 | set cpo&vim |
| 14 | |
Bram Moolenaar | 47e1395 | 2020-05-12 22:49:12 +0200 | [diff] [blame] | 15 | syn iskeyword @,48-57,_,36,60,62,63,@-@ |
Bram Moolenaar | 2cfb4a2 | 2020-05-07 18:56:00 +0200 | [diff] [blame] | 16 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 17 | syn case ignore |
| 18 | |
| 19 | |
Bram Moolenaar | 2cfb4a2 | 2020-05-07 18:56:00 +0200 | [diff] [blame] | 20 | syn match masmIdentifier "[@a-z_$?][@a-z0-9_$?<>]*" |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 21 | syn match masmLabel "^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-1 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 22 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 23 | syn match masmDecimal "[-+]\?\d\+[dt]\?" |
| 24 | syn match masmBinary "[-+]\?[0-1]\+[by]" "put this before hex or 0bfh dies! |
| 25 | syn match masmOctal "[-+]\?[0-7]\+[oq]" |
| 26 | syn match masmHexadecimal "[-+]\?[0-9]\x*h" |
| 27 | syn match masmFloatRaw "[-+]\?[0-9]\x*r" |
| 28 | syn match masmFloat "[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 29 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 30 | syn match masmComment ";.*" contains=@Spell |
| 31 | syn region masmComment start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell |
| 32 | syn region masmString start=+'+ end=+'+ oneline contains=@Spell |
| 33 | syn region masmString start=+"+ end=+"+ oneline contains=@Spell |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 34 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 35 | syn region masmTitleArea start=+\<TITLE\s+lc=5 start=+\<SUBTITLE\s+lc=8 start=+\<SUBTTL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmTitle |
| 36 | syn region masmTextArea start=+\<NAME\s+lc=4 start=+\<INCLUDE\s+lc=7 start=+\<INCLUDELIB\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmText |
Bram Moolenaar | ff1d0d4 | 2007-05-10 17:24:16 +0000 | [diff] [blame] | 37 | syn match masmTitle "[^\t ;]\([^;]*[^\t ;]\)\?" contained contains=@Spell |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 38 | syn match masmText "[^\t ;]\([^;]*[^\t ;]\)\?" contained |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 39 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 40 | syn region masmOptionOpt start=+\<OPTION\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption |
Bram Moolenaar | ff1d0d4 | 2007-05-10 17:24:16 +0000 | [diff] [blame] | 41 | syn region masmContextOpt start=+\<PUSHCONTEXT\s+lc=11 start=+\<POPCONTEXT\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmOption |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 42 | syn region masmModelOpt start=+\.MODEL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmType |
| 43 | syn region masmSegmentOpt start=+\<SEGMENT\s+lc=7 end=+$+ end=+;+me=e-1 contains=masmOption,masmString |
| 44 | syn region masmProcOpt start=+\<PROC\s+lc=4 end=+$+ end=+;+me=e-1 contains=masmOption,masmType,masmRegister,masmIdentifier |
Bram Moolenaar | ff1d0d4 | 2007-05-10 17:24:16 +0000 | [diff] [blame] | 45 | syn region masmAssumeOpt start=+\<ASSUME\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmOperator,masmType,masmRegister,masmIdentifier |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 46 | syn region masmExpression start=+\.IF\s+lc=3 start=+\.WHILE\s+lc=6 start=+\.UNTIL\s+lc=6 start=+\<IF\s+lc=2 start=+\<IF2\s+lc=3 start=+\<ELSEIF\s+lc=6 start=+\<ELSEIF2\s+lc=7 start=+\<REPEAT\s+lc=6 start=+\<WHILE\s+lc=5 end=+$+ end=+;+me=e-1 contains=masmType,masmOperator,masmRegister,masmIdentifier,masmDecimal,masmBinary,masmHexadecimal,masmFloatRaw,masmString |
| 47 | |
| 48 | syn keyword masmOption TINY SMALL COMPACT MEDIUM LARGE HUGE contained |
| 49 | syn keyword masmOption NEARSTACK FARSTACK contained |
| 50 | syn keyword masmOption PUBLIC PRIVATE STACK COMMON MEMORY AT contained |
| 51 | syn keyword masmOption BYTE WORD DWORD PARA PAGE contained |
| 52 | syn keyword masmOption USE16 USE32 FLAT contained |
| 53 | syn keyword masmOption INFO READ WRITE EXECUTE SHARED contained |
| 54 | syn keyword masmOption NOPAGE NOCACHE DISCARD contained |
| 55 | syn keyword masmOption READONLY USES FRAME contained |
| 56 | syn keyword masmOption CASEMAP DOTNAME NODOTNAME EMULATOR contained |
| 57 | syn keyword masmOption NOEMULATOR EPILOGUE EXPR16 EXPR32 contained |
| 58 | syn keyword masmOption LANGUAGE LJMP NOLJMP M510 NOM510 contained |
| 59 | syn keyword masmOption NOKEYWORD NOSIGNEXTEND OFFSET contained |
| 60 | syn keyword masmOption OLDMACROS NOOLDMACROS OLDSTRUCTS contained |
| 61 | syn keyword masmOption NOOLDSTRUCTS PROC PROLOGUE READONLY contained |
| 62 | syn keyword masmOption NOREADONLY SCOPED NOSCOPED SEGMENT contained |
| 63 | syn keyword masmOption SETIF2 contained |
Bram Moolenaar | ff1d0d4 | 2007-05-10 17:24:16 +0000 | [diff] [blame] | 64 | syn keyword masmOption ABS ALL ASSUMES CPU ERROR EXPORT contained |
| 65 | syn keyword masmOption FORCEFRAME LISTING LOADDS NONE contained |
| 66 | syn keyword masmOption NONUNIQUE NOTHING OS_DOS RADIX REQ contained |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 67 | syn keyword masmType STDCALL SYSCALL C BASIC FORTRAN PASCAL |
| 68 | syn keyword masmType PTR NEAR FAR NEAR16 FAR16 NEAR32 FAR32 |
| 69 | syn keyword masmType REAL4 REAL8 REAL10 BYTE SBYTE TBYTE |
| 70 | syn keyword masmType WORD DWORD QWORD FWORD SWORD SDWORD |
Bram Moolenaar | ce001a3 | 2022-04-27 15:25:03 +0100 | [diff] [blame] | 71 | syn keyword masmType SQWORD OWORD MMWORD XMMWORD YMMWORD |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 72 | syn keyword masmOperator AND NOT OR SHL SHR XOR MOD DUP |
| 73 | syn keyword masmOperator EQ GE GT LE LT NE |
| 74 | syn keyword masmOperator LROFFSET SEG LENGTH LENGTHOF SIZE SIZEOF |
| 75 | syn keyword masmOperator CODEPTR DATAPTR FAR NEAR SHORT THIS TYPE |
| 76 | syn keyword masmOperator HIGH HIGHWORD LOW LOWWORD OPATTR MASK WIDTH |
| 77 | syn match masmOperator "OFFSET\(\sFLAT:\)\?" |
| 78 | syn match masmOperator ".TYPE\>" |
| 79 | syn match masmOperator "CARRY?" |
| 80 | syn match masmOperator "OVERFLOW?" |
| 81 | syn match masmOperator "PARITY?" |
| 82 | syn match masmOperator "SIGN?" |
| 83 | syn match masmOperator "ZERO?" |
| 84 | syn keyword masmDirective ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT |
| 85 | syn keyword masmDirective DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB |
| 86 | syn keyword masmDirective ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE |
| 87 | syn keyword masmDirective ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END |
| 88 | syn keyword masmDirective ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN |
| 89 | syn keyword masmDirective EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF2 |
| 90 | syn keyword masmDirective IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB |
| 91 | syn keyword masmDirective IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP |
| 92 | syn keyword masmDirective IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE |
| 93 | syn keyword masmDirective POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT |
| 94 | syn keyword masmDirective RECORD REPEAT REPT SEGMENT SIZESTR STRUC |
| 95 | syn keyword masmDirective STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE |
| 96 | syn keyword masmDirective TYPEDEF UNION WHILE |
| 97 | syn match masmDirective "\.8086\>" |
| 98 | syn match masmDirective "\.8087\>" |
| 99 | syn match masmDirective "\.NO87\>" |
| 100 | syn match masmDirective "\.186\>" |
| 101 | syn match masmDirective "\.286\>" |
| 102 | syn match masmDirective "\.286C\>" |
| 103 | syn match masmDirective "\.286P\>" |
| 104 | syn match masmDirective "\.287\>" |
| 105 | syn match masmDirective "\.386\>" |
| 106 | syn match masmDirective "\.386C\>" |
| 107 | syn match masmDirective "\.386P\>" |
| 108 | syn match masmDirective "\.387\>" |
| 109 | syn match masmDirective "\.486\>" |
| 110 | syn match masmDirective "\.486P\>" |
| 111 | syn match masmDirective "\.586\>" |
| 112 | syn match masmDirective "\.586P\>" |
| 113 | syn match masmDirective "\.686\>" |
| 114 | syn match masmDirective "\.686P\>" |
| 115 | syn match masmDirective "\.K3D\>" |
| 116 | syn match masmDirective "\.MMX\>" |
| 117 | syn match masmDirective "\.XMM\>" |
| 118 | syn match masmDirective "\.ALPHA\>" |
| 119 | syn match masmDirective "\.DOSSEG\>" |
| 120 | syn match masmDirective "\.SEQ\>" |
| 121 | syn match masmDirective "\.CODE\>" |
| 122 | syn match masmDirective "\.CONST\>" |
| 123 | syn match masmDirective "\.DATA\>" |
| 124 | syn match masmDirective "\.DATA?" |
| 125 | syn match masmDirective "\.EXIT\>" |
| 126 | syn match masmDirective "\.FARDATA\>" |
| 127 | syn match masmDirective "\.FARDATA?" |
| 128 | syn match masmDirective "\.MODEL\>" |
| 129 | syn match masmDirective "\.STACK\>" |
| 130 | syn match masmDirective "\.STARTUP\>" |
| 131 | syn match masmDirective "\.IF\>" |
| 132 | syn match masmDirective "\.ELSE\>" |
| 133 | syn match masmDirective "\.ELSEIF\>" |
| 134 | syn match masmDirective "\.ENDIF\>" |
| 135 | syn match masmDirective "\.REPEAT\>" |
| 136 | syn match masmDirective "\.UNTIL\>" |
| 137 | syn match masmDirective "\.UNTILCXZ\>" |
| 138 | syn match masmDirective "\.WHILE\>" |
| 139 | syn match masmDirective "\.ENDW\>" |
| 140 | syn match masmDirective "\.BREAK\>" |
| 141 | syn match masmDirective "\.CONTINUE\>" |
| 142 | syn match masmDirective "\.ERR\>" |
| 143 | syn match masmDirective "\.ERR1\>" |
| 144 | syn match masmDirective "\.ERR2\>" |
| 145 | syn match masmDirective "\.ERRB\>" |
| 146 | syn match masmDirective "\.ERRDEF\>" |
| 147 | syn match masmDirective "\.ERRDIF\>" |
| 148 | syn match masmDirective "\.ERRDIFI\>" |
| 149 | syn match masmDirective "\.ERRE\>" |
| 150 | syn match masmDirective "\.ERRIDN\>" |
| 151 | syn match masmDirective "\.ERRIDNI\>" |
| 152 | syn match masmDirective "\.ERRNB\>" |
| 153 | syn match masmDirective "\.ERRNDEF\>" |
| 154 | syn match masmDirective "\.ERRNZ\>" |
| 155 | syn match masmDirective "\.LALL\>" |
| 156 | syn match masmDirective "\.SALL\>" |
| 157 | syn match masmDirective "\.XALL\>" |
| 158 | syn match masmDirective "\.LFCOND\>" |
| 159 | syn match masmDirective "\.SFCOND\>" |
| 160 | syn match masmDirective "\.TFCOND\>" |
| 161 | syn match masmDirective "\.CREF\>" |
| 162 | syn match masmDirective "\.NOCREF\>" |
| 163 | syn match masmDirective "\.XCREF\>" |
| 164 | syn match masmDirective "\.LIST\>" |
| 165 | syn match masmDirective "\.NOLIST\>" |
| 166 | syn match masmDirective "\.XLIST\>" |
| 167 | syn match masmDirective "\.LISTALL\>" |
| 168 | syn match masmDirective "\.LISTIF\>" |
| 169 | syn match masmDirective "\.NOLISTIF\>" |
| 170 | syn match masmDirective "\.LISTMACRO\>" |
| 171 | syn match masmDirective "\.NOLISTMACRO\>" |
| 172 | syn match masmDirective "\.LISTMACROALL\>" |
| 173 | syn match masmDirective "\.FPO\>" |
| 174 | syn match masmDirective "\.RADIX\>" |
| 175 | syn match masmDirective "\.SAFESEH\>" |
| 176 | syn match masmDirective "%OUT\>" |
| 177 | syn match masmDirective "ALIGN\>" |
| 178 | syn match masmOption "ALIGN([0-9]\+)" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 179 | |
| 180 | syn keyword masmRegister AX BX CX DX SI DI BP SP |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 181 | syn keyword masmRegister CS DS SS ES FS GS |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 182 | syn keyword masmRegister AH BH CH DH AL BL CL DL |
| 183 | syn keyword masmRegister EAX EBX ECX EDX ESI EDI EBP ESP |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 184 | syn keyword masmRegister CR0 CR2 CR3 CR4 |
| 185 | syn keyword masmRegister DR0 DR1 DR2 DR3 DR6 DR7 |
| 186 | syn keyword masmRegister TR3 TR4 TR5 TR6 TR7 |
| 187 | syn match masmRegister "ST([0-7])" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 188 | |
Bram Moolenaar | b8ff1fb | 2012-02-04 21:59:01 +0100 | [diff] [blame] | 189 | " x86-64 registers |
| 190 | syn keyword masmRegister RAX RBX RCX RDX RSI RDI RBP RSP |
| 191 | syn keyword masmRegister R8 R9 R10 R11 R12 R13 R14 R15 |
| 192 | syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D |
| 193 | syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W |
| 194 | syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 195 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 196 | " SSE/AVX registers |
Wu Yongwei | e7833e7 | 2023-09-11 00:27:31 +0800 | [diff] [blame] | 197 | syn match masmRegister "\(X\|Y\|Z\)MM[12]\?[0-9]\>" |
| 198 | syn match masmRegister "\(X\|Y\|Z\)MM3[01]\>" |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 199 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 200 | " Instruction prefixes |
| 201 | syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 202 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 203 | " 8086/8088 opcodes |
| 204 | syn keyword masmOpcode AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD |
| 205 | syn keyword masmOpcode CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC |
| 206 | syn keyword masmOpcode DIV ESC HLT IDIV IMUL IN INC INT INTO IRET |
| 207 | syn keyword masmOpcode JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW |
| 208 | syn keyword masmOpcode LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ |
| 209 | syn keyword masmOpcode LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB |
| 210 | syn keyword masmOpcode MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH |
| 211 | syn keyword masmOpcode PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL |
| 212 | syn keyword masmOpcode SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI |
| 213 | syn keyword masmOpcode STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB |
| 214 | syn keyword masmOpcode XOR |
| 215 | syn match masmOpcode "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" |
| 216 | |
| 217 | " 80186 opcodes |
| 218 | syn keyword masmOpcode BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB |
| 219 | syn keyword masmOpcode OUTSW POPA PUSHA PUSHW |
| 220 | |
| 221 | " 80286 opcodes |
| 222 | syn keyword masmOpcode ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW |
| 223 | |
| 224 | " 80286/80386 privileged opcodes |
| 225 | syn keyword masmOpcode CLTS LGDT LIDT LLDT LMSW LTR |
| 226 | |
| 227 | " 80386 opcodes |
| 228 | syn keyword masmOpcode BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD |
| 229 | syn keyword masmOpcode IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD |
| 230 | syn keyword masmOpcode LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX |
| 231 | syn keyword masmOpcode MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD |
| 232 | syn keyword masmOpcode SCASD SHLD SHRD STOSD |
| 233 | syn match masmOpcode "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" |
| 234 | |
| 235 | " 80486 opcodes |
| 236 | syn keyword masmOpcode BSWAP CMPXCHG INVD INVLPG WBINVD XADD |
| 237 | |
| 238 | " Floating-point opcodes as of 487 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 239 | syn keyword masmOpFloat F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX |
| 240 | syn keyword masmOpFloat FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI |
| 241 | syn keyword masmOpFloat FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI |
| 242 | syn keyword masmOpFloat FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD |
| 243 | syn keyword masmOpFloat FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB |
| 244 | syn keyword masmOpFloat FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E |
| 245 | syn keyword masmOpFloat FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 246 | syn keyword masmOpFloat FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE |
| 247 | syn keyword masmOpFloat FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW |
| 248 | syn keyword masmOpFloat FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB |
| 249 | syn keyword masmOpFloat FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP |
| 250 | syn keyword masmOpFloat FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1 |
| 251 | |
| 252 | " Floating-point opcodes in Pentium and later processors |
| 253 | syn keyword masmOpFloat FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE |
| 254 | syn keyword masmOpFloat FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP |
| 255 | syn keyword masmOpFloat FXSAVE FXRSTOR |
| 256 | |
| 257 | " MMX opcodes (Pentium w/ MMX, Pentium II, and later) |
| 258 | syn keyword masmOpcode MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB |
| 259 | syn keyword masmOpcode PUNPCKHBW PUNPCKHWD PUNPCKHDQ |
| 260 | syn keyword masmOpcode PUNPCKLBW PUNPCKLWD PUNPCKLDQ |
| 261 | syn keyword masmOpcode PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW |
| 262 | syn keyword masmOpcode PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW |
| 263 | syn keyword masmOpcode PMULHW PMULLW PMADDWD |
| 264 | syn keyword masmOpcode PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD |
| 265 | syn keyword masmOpcode PAND PANDN POR PXOR |
| 266 | syn keyword masmOpcode PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD |
| 267 | syn keyword masmOpcode EMMS |
| 268 | |
| 269 | " SSE opcodes (Pentium III and later) |
| 270 | syn keyword masmOpcode MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS |
| 271 | syn keyword masmOpcode MOVMSKPS MOVSS |
| 272 | syn keyword masmOpcode ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS |
| 273 | syn keyword masmOpcode RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS |
| 274 | syn keyword masmOpcode MAXPS MAXSS MINPS MINSS |
| 275 | syn keyword masmOpcode CMPPS CMPSS COMISS UCOMISS |
| 276 | syn keyword masmOpcode ANDPS ANDNPS ORPS XORPS |
| 277 | syn keyword masmOpcode SHUFPS UNPCKHPS UNPCKLPS |
| 278 | syn keyword masmOpcode CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI |
| 279 | syn keyword masmOpcode CVTSS2SI CVTTSS2SI |
| 280 | syn keyword masmOpcode LDMXCSR STMXCSR |
| 281 | syn keyword masmOpcode PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW |
| 282 | syn keyword masmOpcode PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW |
| 283 | syn keyword masmOpcode MASKMOVQ MOVNTQ MOVNTPS SFENCE |
| 284 | syn keyword masmOpcode PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA |
| 285 | |
| 286 | " SSE2 opcodes (Pentium 4 and later) |
| 287 | syn keyword masmOpcode MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD |
| 288 | syn keyword masmOpcode ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD |
| 289 | syn keyword masmOpcode SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD |
| 290 | syn keyword masmOpcode ANDPD ANDNPD ORPD XORPD |
| 291 | syn keyword masmOpcode CMPPD CMPSD COMISD UCOMISD |
| 292 | syn keyword masmOpcode SHUFPD UNPCKHPD UNPCKLPD |
| 293 | syn keyword masmOpcode CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ |
| 294 | syn keyword masmOpcode CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS |
| 295 | syn keyword masmOpcode CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD |
| 296 | syn keyword masmOpcode CVTDQ2PS CVTPS2DQ CVTTPS2DQ |
| 297 | syn keyword masmOpcode MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ |
| 298 | syn keyword masmOpcode PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD |
| 299 | syn keyword masmOpcode PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ |
| 300 | syn keyword masmOpcode CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU |
| 301 | syn keyword masmOpcode MOVNTPD MOVNTDQ MOVNTI |
| 302 | |
| 303 | " SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later) |
| 304 | syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD |
| 305 | syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD |
| 306 | syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT |
| 307 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 308 | " SSSE3 opcodes (Core and later) |
| 309 | syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD |
| 310 | syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW |
| 311 | syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW |
| 312 | |
| 313 | " SSE 4.1 opcodes (Penryn and later) |
| 314 | syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD |
| 315 | syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD |
| 316 | syn keyword masmOpcode PBLENDVB PBLENDW |
| 317 | syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD |
| 318 | syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD |
| 319 | syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD |
| 320 | syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ |
| 321 | syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ |
| 322 | syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD |
| 323 | syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD |
| 324 | syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ |
| 325 | syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA |
| 326 | |
| 327 | " SSE 4.2 opcodes (Nehalem and later) |
| 328 | syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ |
| 329 | syn keyword masmOpcode CRC32 POPCNT LZCNT |
| 330 | |
| 331 | " AES-NI (Westmere (2010) and later) |
| 332 | syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST |
| 333 | syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ |
| 334 | |
| 335 | " AVX (Sandy Bridge (2011) and later) |
| 336 | syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128 |
| 337 | syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD |
| 338 | syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128 |
| 339 | syn keyword masmOpcode VZEROALL VZEROUPPER |
| 340 | |
Wu Yongwei | e7833e7 | 2023-09-11 00:27:31 +0800 | [diff] [blame] | 341 | " AVX-2 (Haswell and later) |
| 342 | syn keyword masmOpcode VPBROADCASTB VPBROADCASTW VPBROADCASTD |
| 343 | syn keyword masmOpcode VPBROADCASTQ VBROADCASTI128 |
| 344 | syn keyword masmOpcode VINSERTI128 VEXTRACTI128 |
| 345 | syn keyword masmOpcode VGATHERDPD VGATHERQPD VGATHERDPS VGATHERQPS |
| 346 | syn keyword masmOpcode VPGATHERDD VPGATHERDQ VPGATHERQD VPGATHERQQ |
| 347 | syn keyword masmOpcode VPMASKMOVD VPMASKMOVQ |
| 348 | syn keyword masmOpcode PERMPS VPERMD VPERMPD VPERMQ VPERM2I128 |
| 349 | syn keyword masmOpcode VPBLENDD VPSLLVD VPSLLVQ VPSRLVD VPSRLVQ |
| 350 | syn keyword masmOpcode VPSRAVD |
| 351 | |
| 352 | " AVX-512 (Knights Landing/Skylake-X and later) |
| 353 | syn keyword masmOpcode KAND KANDN KMOV KUNPCK KNOT KOR KORTEST |
| 354 | syn keyword masmOpcode KSHIFTL KSHIFTR KXNOR KXOR KADD KTEST |
| 355 | syn keyword masmOpcode VBLENDMPD VBLENDMPS |
| 356 | syn keyword masmOpcode VPBLENDMD VPBLENDMQ VPBLENDMB VPBLENDMW |
| 357 | syn keyword masmOpcode VPCMPD VPCMPUD VPCMPQ VPCMPUQ |
| 358 | syn keyword masmOpcode VPCMPB VPCMPUB VPCMPW VPCMPUW |
| 359 | syn keyword masmOpcode VPTESTMD VPTESTMQ VPTESTNMD VPTESTNMQ |
| 360 | syn keyword masmOpcode VPTESTMB VPTESTMW VPTESTNMB VPTESTNMW |
| 361 | syn keyword masmOpcode VCOMPRESSPD VCOMPRESSPS VPCOMPRESSD VPCOMPRESSQ |
| 362 | syn keyword masmOpcode VEXPANDPD VEXPANDPS VPEXPANDD VPEXPANDQ |
| 363 | syn keyword masmOpcode VPERMB VPERMW VPERMT2B VPERMT2W VPERMI2PD |
| 364 | syn keyword masmOpcode VPERMI2PS VPERMI2D VPERMI2Q VPERMI2B VPERMI2W |
| 365 | syn keyword masmOpcode VPERMT2PS VPERMT2PD VPERMT2D VPERMT2Q |
| 366 | syn keyword masmOpcode VSHUFF32x4 VSHUFF64x2 VSHUFI32x4 VSHUFI64x2 |
| 367 | syn keyword masmOpcode VPMULTISHIFTQB VPTERNLOGD VPTERNLOGQ |
| 368 | syn keyword masmOpcode VPMOVQD VPMOVSQD VPMOVUSQD VPMOVQW VPMOVSQW |
| 369 | syn keyword masmOpcode VPMOVUSQW VPMOVQB VPMOVSQB VPMOVUSQB VPMOVDW |
| 370 | syn keyword masmOpcode VPMOVSDW VPMOVUSDW VPMOVDB VPMOVSDB VPMOVUSDB |
| 371 | syn keyword masmOpcode VPMOVWB VPMOVSWB VPMOVUSWB |
| 372 | syn keyword masmOpcode VCVTPS2UDQ VCVTPD2UDQ VCVTTPS2UDQ VCVTTPD2UDQ |
| 373 | syn keyword masmOpcode VCVTSS2USI VCVTSD2USI VCVTTSS2USI VCVTTSD2USI |
| 374 | syn keyword masmOpcode VCVTPS2QQ VCVTPD2QQ VCVTPS2UQQ VCVTPD2UQQ |
| 375 | syn keyword masmOpcode VCVTTPS2QQ VCVTTPD2QQ VCVTTPS2UQQ VCVTTPD2UQQ |
| 376 | syn keyword masmOpcode VCVTUDQ2PS VCVTUDQ2PD VCVTUSI2PS VCVTUSI2PD |
| 377 | syn keyword masmOpcode VCVTUSI2SD VCVTUSI2SS VCVTUQQ2PS VCVTUQQ2PD |
| 378 | syn keyword masmOpcode VCVTQQ2PD VCVTQQ2PS VGETEXPPD |
| 379 | syn keyword masmOpcode VGETEXPPS VGETEXPSD VGETEXPSS |
| 380 | syn keyword masmOpcode VGETMANTPD VGETMANTPS VGETMANTSD VGETMANTSS |
| 381 | syn keyword masmOpcode VFIXUPIMMPD VFIXUPIMMPS VFIXUPIMMSD VFIXUPIMMSS |
| 382 | syn keyword masmOpcode VRCP14PD VRCP14PS VRCP14SD VRCP14SS |
| 383 | syn keyword masmOpcode VRNDSCALEPS VRNDSCALEPD VRNDSCALESS VRNDSCALESD |
| 384 | syn keyword masmOpcode VRSQRT14PD VRSQRT14PS VRSQRT14SD VRSQRT14SS |
| 385 | syn keyword masmOpcode VSCALEFPS VSCALEFPD VSCALEFSS VSCALEFSD |
| 386 | syn keyword masmOpcode VBROADCASTI32X2 VBROADCASTI32X4 VBROADCASTI32X8 |
| 387 | syn keyword masmOpcode VBROADCASTI64X2 VBROADCASTI64X4 |
| 388 | syn keyword masmOpcode VALIGND VALIGNQ VDBPSADBW VPABSQ VPMAXSQ |
| 389 | syn keyword masmOpcode VPMAXUQ VPMINSQ VPMINUQ VPROLD VPROLVD VPROLQ |
| 390 | syn keyword masmOpcode VPROLVQ VPRORD VPRORVD VPRORQ VPRORVQ |
| 391 | syn keyword masmOpcode VPSCATTERDD VPSCATTERDQ VPSCATTERQD VPSCATTERQQ |
| 392 | syn keyword masmOpcode VSCATTERDPS VSCATTERDPD VSCATTERQPS VSCATTERQPD |
| 393 | syn keyword masmOpcode VPCONFLICTD VPCONFLICTQ VPLZCNTD VPLZCNTQ |
| 394 | syn keyword masmOpcode VPBROADCASTMB2Q VPBROADCASTMW2D |
| 395 | syn keyword masmOpcode VEXP2PD VEXP2PS |
| 396 | syn keyword masmOpcode VRCP28PD VRCP28PS VRCP28SD VRCP28SS |
| 397 | syn keyword masmOpcode VRSQRT28PD VRSQRT28PS VRSQRT28SD VRSQRT28SS |
| 398 | syn keyword masmOpcode VGATHERPF0DPS VGATHERPF0QPS VGATHERPF0DPD |
| 399 | syn keyword masmOpcode VGATHERPF0QPD VGATHERPF1DPS VGATHERPF1QPS |
| 400 | syn keyword masmOpcode VGATHERPF1DPD VGATHERPF1QPD VSCATTERPF0DPS |
| 401 | syn keyword masmOpcode VSCATTERPF0QPS VSCATTERPF0DPD VSCATTERPF0QPD |
| 402 | syn keyword masmOpcode VSCATTERPF1DPS VSCATTERPF1QPS VSCATTERPF1DPD |
| 403 | syn keyword masmOpcode VSCATTERPF1QPD |
| 404 | syn keyword masmOpcode V4FMADDPS V4FMADDSS V4FNMADDPS V4FNMADDSS |
| 405 | syn keyword masmOpcode VP4DPWSSD VP4DPWSSDS |
| 406 | syn keyword masmOpcode VFPCLASSPS VFPCLASSPD VFPCLASSSS VFPCLASSSD |
| 407 | syn keyword masmOpcode VRANGEPS VRANGEPD VRANGESS VRANGESD |
| 408 | syn keyword masmOpcode VREDUCEPS VREDUCEPD VREDUCESS VREDUCESD |
| 409 | syn keyword masmOpcode VPMOVM2D VPMOVM2Q VPMOVM2B VPMOVM2W VPMOVD2M |
| 410 | syn keyword masmOpcode VPMOVQ2M VPMOVB2M VPMOVW2M VPMULLQ |
| 411 | syn keyword masmOpcode VPCOMPRESSB VPCOMPRESSW VPEXPANDB VPEXPANDW |
| 412 | syn keyword masmOpcode VPSHLD VPSHLDV VPSHRD VPSHRDV |
| 413 | syn keyword masmOpcode VPDPBUSD VPDPBUSDS VPDPWSSD VPDPWSSDS |
| 414 | syn keyword masmOpcode VPMADD52LUQ VPMADD52HUQ |
| 415 | syn keyword masmOpcode VPOPCNTD VPOPCNTQ VPOPCNTB VPOPCNTW |
| 416 | syn keyword masmOpcode VPSHUFBITQMB VP2INTERSECTD VP2INTERSECTQ |
| 417 | syn keyword masmOpcode VGF2P8AFFINEINVQB VGF2P8AFFINEQB |
| 418 | syn keyword masmOpcode VGF2P8MULB VPCLMULQDQ |
| 419 | syn keyword masmOpcode VAESDEC VAESDECLAST VAESENC VAESENCLAST |
| 420 | syn keyword masmOpcode VCVTNE2PS2BF16 VCVTNEPS2BF16 VDPBF16PS |
| 421 | syn keyword masmOpcode VADDPH VADDSH VSUBPH VSUBSH VMULPH VMULSH |
| 422 | syn keyword masmOpcode VDIVPH VDIVSH VSQRTPH VSQRTSH |
| 423 | syn keyword masmOpcode VFMADD132PH VFMADD213PH VFMADD231PH |
| 424 | syn keyword masmOpcode VFMADD132SH VFMADD213SH VFMADD231SH |
| 425 | syn keyword masmOpcode VFNMADD132PH VFNMADD213PH VFNMADD231PH |
| 426 | syn keyword masmOpcode VFNMADD132SH VFNMADD213SH VFNMADD231SH |
| 427 | syn keyword masmOpcode VFMSUB132PH VFMSUB213PH VFMSUB231PH |
| 428 | syn keyword masmOpcode VFMSUB132SH VFMSUB213SH VFMSUB231SH |
| 429 | syn keyword masmOpcode VFNMSUB132PH VFNMSUB213PH VFNMSUB231PH |
| 430 | syn keyword masmOpcode VFNMSUB132SH VFNMSUB213SH VFNMSUB231SH |
| 431 | syn keyword masmOpcode VFMADDSUB132PH VFMADDSUB213PH VFMADDSUB231PH |
| 432 | syn keyword masmOpcode VFMSUBADD132PH VFMSUBADD213PH VFMSUBADD231PH |
| 433 | syn keyword masmOpcode VREDUCEPH VREDUCESH VRNDSCALEPH VRNDSCALESH |
| 434 | syn keyword masmOpcode VSCALEFPH VSCALEFSH VFMULCPH VFMULCSH VFCMULCPH |
| 435 | syn keyword masmOpcode VFCMULCSH VFMADDCPH VFMADDCSH VFCMADDCPH |
| 436 | syn keyword masmOpcode VFCMADDCSH VRCPPH VRCPSH VRSQRTPH VRSQRTSH |
| 437 | syn keyword masmOpcode VCMPPH VCMPSH VCOMISH VUCOMISH VMAXPH VMAXSH |
| 438 | syn keyword masmOpcode VMINPH VMINSH VFPCLASSPH VFPCLASSSH |
| 439 | syn keyword masmOpcode VCVTW2PH VCVTUW2PH VCVTDQ2PH VCVTUDQ2PH |
| 440 | syn keyword masmOpcode VCVTQQ2PH VCVTUQQ2PH VCVTPS2PHX VCVTPD2PH |
| 441 | syn keyword masmOpcode VCVTSI2SH VCVTUSI2SH VCVTSS2SH VCVTSD2SH |
| 442 | syn keyword masmOpcode VCVTPH2W VCVTTPH2W VCVTPH2UW VCVTTPH2UW |
| 443 | syn keyword masmOpcode VCVTPH2DQ VCVTTPH2DQ VCVTPH2UDQ VCVTTPH2UDQ |
| 444 | syn keyword masmOpcode VCVTPH2QQ VCVTTPH2QQ VCVTPH2UQQ VCVTTPH2UQQ |
| 445 | syn keyword masmOpcode VCVTPH2PSX VCVTPH2PD VCVTSH2SI VCVTTSH2SI |
| 446 | syn keyword masmOpcode VCVTSH2USI VCVTTSH2USI VCVTSH2SS VCVTSH2SD |
| 447 | syn keyword masmOpcode VGETEXPPH VGETEXPSH VGETMANTPH VGETMANTSH |
| 448 | syn keyword masmOpcode VMOVSH VMOVW VADDPD VADDPS VADDSD VADDSS |
| 449 | syn keyword masmOpcode VANDPD VANDPS VANDNPD VANDNPS |
| 450 | syn keyword masmOpcode VCMPPD VCMPPS VCMPSD VCMPSS |
| 451 | syn keyword masmOpcode VCOMISD VCOMISS VDIVPD VDIVPS VDIVSD VDIVSS |
| 452 | syn keyword masmOpcode VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2PS |
| 453 | syn keyword masmOpcode VCVTPH2PS VCVTPS2PH VCVTPS2DQ VCVTPS2PD |
| 454 | syn keyword masmOpcode VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS |
| 455 | syn keyword masmOpcode VCVTSS2SD VCVTSS2SI VCVTTPD2DQ VCVTTPS2DQ |
| 456 | syn keyword masmOpcode VCVTTSD2SI VCVTTSS2SI VMAXPD VMAXPS |
| 457 | syn keyword masmOpcode VMAXSD VMAXSS VMINPD VMINPS VMINSD VMINSS |
| 458 | syn keyword masmOpcode VMOVAPD VMOVAPS VMOVD VMOVQ VMOVDDUP |
| 459 | syn keyword masmOpcode VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS VMOVLPD |
| 460 | syn keyword masmOpcode VMOVLPS VMOVNTDQA VMOVNTDQ VMOVNTPD VMOVNTPS |
| 461 | syn keyword masmOpcode VMOVSD VMOVSHDUP VMOVSLDUP VMOVSS VMOVUPD |
Wu Yongwei | 3746887 | 2023-12-22 00:12:34 +0800 | [diff] [blame] | 462 | syn keyword masmOpcode VMOVUPS VMOVDQA VMOVDQA32 VMOVDQA64 |
| 463 | syn keyword masmOpcode VMOVDQU VMOVDQU8 VMOVDQU16 VMOVDQU32 VMOVDQU64 |
| 464 | syn keyword masmOpcode VMULPD VMULPS |
Wu Yongwei | e7833e7 | 2023-09-11 00:27:31 +0800 | [diff] [blame] | 465 | syn keyword masmOpcode VMULSD VMULSS VORPD VORPS VSQRTPD VSQRTPS |
| 466 | syn keyword masmOpcode VSQRTSD VSQRTSS VSUBPD VSUBPS VSUBSD VSUBSS |
| 467 | syn keyword masmOpcode VUCOMISD VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD |
| 468 | syn keyword masmOpcode VUNPCKLPS VXORPD VXORPS VEXTRACTPS VINSERTPS |
| 469 | syn keyword masmOpcode VPEXTRB VPEXTRW VPEXTRD VPEXTRQ VPINSRB VPINSRW |
| 470 | syn keyword masmOpcode VPINSRD VPINSRQ VPACKSSWB VPACKSSDW VPACKUSDW |
| 471 | syn keyword masmOpcode VPACKUSWB VPADDB VPADDW VPADDD VPADDQ VPADDSB |
Wu Yongwei | 3746887 | 2023-12-22 00:12:34 +0800 | [diff] [blame] | 472 | syn keyword masmOpcode VPADDSW VPADDUSB VPADDUSW VPAND VPANDD VPANDQ |
| 473 | syn keyword masmOpcode VPANDND VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW |
Wu Yongwei | e7833e7 | 2023-09-11 00:27:31 +0800 | [diff] [blame] | 474 | syn keyword masmOpcode VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD |
| 475 | syn keyword masmOpcode VPCMPGTQ VPMAXSB VPMAXSW VPMAXSD VPMAXSQ |
| 476 | syn keyword masmOpcode VPMAXUB VPMAXUW VPMAXUD VPMAXUQ VPMINSB VPMINSW |
| 477 | syn keyword masmOpcode VPMINSD VPMINSQ VPMINUB VPMINUW VPMINUD VPMINUQ |
| 478 | syn keyword masmOpcode VPMOVSXBW VPMOVSXBD VPMOVSXBQ VPMOVSXWD |
| 479 | syn keyword masmOpcode VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD |
| 480 | syn keyword masmOpcode VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULDQ |
| 481 | syn keyword masmOpcode VPMULUDQ VPMULHRSW VPMULHUW VPMULHW VPMULLD |
| 482 | syn keyword masmOpcode VPMULLQ VPMULLW VPORD VPORQ VPSUBB VPSUBW |
| 483 | syn keyword masmOpcode VPSUBD VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW |
| 484 | syn keyword masmOpcode VPUNPCKHBW VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ |
| 485 | syn keyword masmOpcode VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ VPUNPCKLQDQ |
Wu Yongwei | 3746887 | 2023-12-22 00:12:34 +0800 | [diff] [blame] | 486 | syn keyword masmOpcode VPXOR VPXORD VPXORQ |
| 487 | syn keyword masmOpcode VPSADBW VPSHUFB VPSHUFHW VPSHUFLW |
Wu Yongwei | e7833e7 | 2023-09-11 00:27:31 +0800 | [diff] [blame] | 488 | syn keyword masmOpcode VPSHUFD VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW |
| 489 | syn keyword masmOpcode VPSRAD VPSRAQ VPSRLDQ VPSRLW VPSRLD VPSRLQ |
| 490 | syn keyword masmOpcode VPSLLVW VPSRLVW VPSHUFPD VPSHUFPS VEXTRACTF32X4 |
| 491 | syn keyword masmOpcode VEXTRACTF64X2 VEXTRACTF32X8 VEXTRACTF64X4 |
| 492 | syn keyword masmOpcode VEXTRACTI32X4 VEXTRACTI64X2 VEXTRACTI32X8 |
| 493 | syn keyword masmOpcode VEXTRACTI64X4 VINSERTF32x4 VINSERTF64X2 |
| 494 | syn keyword masmOpcode VINSERTF32X8 VINSERTF64x4 VINSERTI32X4 |
| 495 | syn keyword masmOpcode VINSERTI64X2 VINSERTI32X8 VINSERTI64X4 |
| 496 | syn keyword masmOpcode VPABSB VPABSW VPABSD VPABSQ VPALIGNR |
| 497 | syn keyword masmOpcode VPMADDUBSW VPMADDWD |
| 498 | syn keyword masmOpcode VFMADD132PD VFMADD213PD VFMADD231PD |
| 499 | syn keyword masmOpcode VFMADD132PS VFMADD213PS VFMADD231PS |
| 500 | syn keyword masmOpcode VFMADD132SD VFMADD213SD VFMADD231SD |
| 501 | syn keyword masmOpcode VFMADD132SS VFMADD213SS VFMADD231SS |
| 502 | syn keyword masmOpcode VFMADDSUB132PD VFMADDSUB213PD VFMADDSUB231PD |
| 503 | syn keyword masmOpcode VFMADDSUB132PS VFMADDSUB213PS VFMADDSUB231PS |
| 504 | syn keyword masmOpcode VFMSUBADD132PD VFMSUBADD213PD VFMSUBADD231PD |
| 505 | syn keyword masmOpcode VFMSUBADD132PS VFMSUBADD213PS VFMSUBADD231PS |
| 506 | syn keyword masmOpcode VFMSUB132PD VFMSUB213PD VFMSUB231PD |
| 507 | syn keyword masmOpcode VFMSUB132PS VFMSUB213PS VFMSUB231PS |
| 508 | syn keyword masmOpcode VFMSUB132SD VFMSUB213SD VFMSUB231SD |
| 509 | syn keyword masmOpcode VFMSUB132SS VFMSUB213SS VFMSUB231SS |
| 510 | syn keyword masmOpcode VFNMADD132PD VFNMADD213PD VFNMADD231PD |
| 511 | syn keyword masmOpcode VFNMADD132PS VFNMADD213PS VFNMADD231PS |
| 512 | syn keyword masmOpcode VFNMADD132SD VFNMADD213SD VFNMADD231SD |
| 513 | syn keyword masmOpcode VFNMADD132SS VFNMADD213SS VFNMADD231SS |
| 514 | syn keyword masmOpcode VFNMSUB132PD VFNMSUB213PD VFNMSUB231PD |
| 515 | syn keyword masmOpcode VFNMSUB132PS VFNMSUB213PS VFNMSUB231PS |
| 516 | syn keyword masmOpcode VFNMSUB132SD VFNMSUB213SD VFNMSUB231SD |
| 517 | syn keyword masmOpcode VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS |
| 518 | syn keyword masmOpcode VPSRAVW VPSRAVQ |
| 519 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 520 | " Other opcodes in Pentium and later processors |
Wu Yongwei | 3746887 | 2023-12-22 00:12:34 +0800 | [diff] [blame] | 521 | syn keyword masmOpcode CMPXCHG8B CPUID UD2 MOVSXD |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 522 | syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT |
| 523 | syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" |
| 524 | |
Wu Yongwei | e7833e7 | 2023-09-11 00:27:31 +0800 | [diff] [blame] | 525 | " Not really used by MASM, but useful for viewing GCC-generated assembly code |
| 526 | " in Intel syntax |
| 527 | syn match masmHexadecimal "[-+]\?0[Xx]\x*" |
| 528 | syn keyword masmOpcode MOVABS |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 529 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 530 | " The default highlighting |
| 531 | hi def link masmLabel PreProc |
| 532 | hi def link masmComment Comment |
| 533 | hi def link masmDirective Statement |
| 534 | hi def link masmType Type |
| 535 | hi def link masmOperator Type |
| 536 | hi def link masmOption Special |
| 537 | hi def link masmRegister Special |
| 538 | hi def link masmString String |
| 539 | hi def link masmText String |
| 540 | hi def link masmTitle Title |
| 541 | hi def link masmOpcode Statement |
| 542 | hi def link masmOpFloat Statement |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 543 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 544 | hi def link masmHexadecimal Number |
| 545 | hi def link masmDecimal Number |
| 546 | hi def link masmOctal Number |
| 547 | hi def link masmBinary Number |
| 548 | hi def link masmFloatRaw Number |
| 549 | hi def link masmFloat Number |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 550 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 551 | hi def link masmIdentifier Identifier |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 552 | |
Bram Moolenaar | 4b60a6c | 2013-11-14 05:48:46 +0100 | [diff] [blame] | 553 | syntax sync minlines=50 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 554 | |
| 555 | let b:current_syntax = "masm" |
| 556 | |
Bram Moolenaar | b8ff1fb | 2012-02-04 21:59:01 +0100 | [diff] [blame] | 557 | let &cpo = s:cpo_save |
| 558 | unlet s:cpo_save |
| 559 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 560 | " vim: ts=8 |