<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!--
	x86 Assembly mode by Kristian Ovaska (kristian.ovaska@helsinki.fi)

	- Intel syntax
	- Instructions and registers of Pentium III/Athlon
	  (including FPU, MMX, 3DNow! and SSE)
	- Full NASM 0.98 & MASM 6.15 keyword support, partial TASM support
-->

<MODE>

	<PROPS>
		<PROPERTY NAME="lineComment" VALUE=";" />
		<PROPERTY NAME="contextInsensitive" VALUE="true"/>
	</PROPS>

	<RULES HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE"
         DIGIT_RE="(0x)?[\p{Digit}a-fA-F_]+[hHdD]?">
		<EOL_SPAN TYPE="COMMENT1">;</EOL_SPAN>

		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
			<BEGIN>'</BEGIN>
			<END>'</END>
		</SPAN>

		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>

		<!-- NASM: label inside a macro -->
		<MARK_FOLLOWING TYPE="LABEL" MATCH_TYPE="OPERATOR"
			AT_LINE_START="TRUE">%%</MARK_FOLLOWING>

		<MARK_FOLLOWING TYPE="KEYWORD2" AT_LINE_START="TRUE">%</MARK_FOLLOWING>

		<MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"
			AT_LINE_START="TRUE">:</MARK_PREVIOUS>

		<SEQ TYPE="OPERATOR">+</SEQ>
		<SEQ TYPE="OPERATOR">-</SEQ>
		<SEQ TYPE="OPERATOR">/</SEQ>
		<SEQ TYPE="OPERATOR">*</SEQ>
		<SEQ TYPE="OPERATOR">%</SEQ>

		<SEQ TYPE="OPERATOR">|</SEQ>
		<SEQ TYPE="OPERATOR">^</SEQ>
		<SEQ TYPE="OPERATOR">&amp;</SEQ>
		<SEQ TYPE="OPERATOR">~</SEQ>
		<SEQ TYPE="OPERATOR">!</SEQ>

		<SEQ TYPE="OPERATOR">=</SEQ>
		<SEQ TYPE="OPERATOR">&lt;</SEQ>
		<SEQ TYPE="OPERATOR">&gt;</SEQ>

		<KEYWORDS>
			<KEYWORD1>.186</KEYWORD1>
			<KEYWORD1>.286</KEYWORD1>
			<KEYWORD1>.286P</KEYWORD1>
			<KEYWORD1>.287</KEYWORD1>
			<KEYWORD1>.386</KEYWORD1>
			<KEYWORD1>.386P</KEYWORD1>
			<KEYWORD1>.387</KEYWORD1>
			<KEYWORD1>.486</KEYWORD1>
			<KEYWORD1>.486P</KEYWORD1>
			<KEYWORD1>.586</KEYWORD1>
			<KEYWORD1>.586P</KEYWORD1>
			<KEYWORD1>.686</KEYWORD1>
			<KEYWORD1>.686P</KEYWORD1>
			<KEYWORD1>.8086</KEYWORD1>
			<KEYWORD1>.8087</KEYWORD1>
			<KEYWORD1>.ALPHA</KEYWORD1>
			<KEYWORD1>.BREAK</KEYWORD1>
			<KEYWORD1>.BSS</KEYWORD1>
			<KEYWORD1>.CODE</KEYWORD1>
			<KEYWORD1>.CONST</KEYWORD1>
			<KEYWORD1>.CONTINUE</KEYWORD1>
			<KEYWORD1>.CREF</KEYWORD1>
			<KEYWORD1>.DATA</KEYWORD1>
			<KEYWORD1>.DATA?</KEYWORD1>
			<KEYWORD1>.DOSSEG</KEYWORD1>
			<KEYWORD1>.ELSE</KEYWORD1>
			<KEYWORD1>.ELSEIF</KEYWORD1>
			<KEYWORD1>.ENDIF</KEYWORD1>
			<KEYWORD1>.ENDW</KEYWORD1>
			<KEYWORD1>.ERR</KEYWORD1>
			<KEYWORD1>.ERR1</KEYWORD1>
			<KEYWORD1>.ERR2</KEYWORD1>
			<KEYWORD1>.ERRB</KEYWORD1>
			<KEYWORD1>.ERRDEF</KEYWORD1>
			<KEYWORD1>.ERRDIF</KEYWORD1>
			<KEYWORD1>.ERRDIFI</KEYWORD1>
			<KEYWORD1>.ERRE</KEYWORD1>
			<KEYWORD1>.ERRIDN</KEYWORD1>
			<KEYWORD1>.ERRIDNI</KEYWORD1>
			<KEYWORD1>.ERRNB</KEYWORD1>
			<KEYWORD1>.ERRNDEF</KEYWORD1>
			<KEYWORD1>.ERRNZ</KEYWORD1>
			<KEYWORD1>.EXIT</KEYWORD1>
			<KEYWORD1>.FARDATA</KEYWORD1>
			<KEYWORD1>.FARDATA?</KEYWORD1>
			<KEYWORD1>.IF</KEYWORD1>
			<KEYWORD1>.K3D</KEYWORD1>
			<KEYWORD1>.LALL</KEYWORD1>
			<KEYWORD1>.LFCOND</KEYWORD1>
			<KEYWORD1>.LIST</KEYWORD1>
			<KEYWORD1>.LISTALL</KEYWORD1>
			<KEYWORD1>.LISTIF</KEYWORD1>
			<KEYWORD1>.LISTMACRO</KEYWORD1>
			<KEYWORD1>.LISTMACROALL</KEYWORD1>
			<KEYWORD1>.MMX</KEYWORD1>
			<KEYWORD1>.MODEL</KEYWORD1>
			<KEYWORD1>.MSFLOAT</KEYWORD1>
			<KEYWORD1>.NO87</KEYWORD1>
			<KEYWORD1>.NOCREF</KEYWORD1>
			<KEYWORD1>.NOLIST</KEYWORD1>
			<KEYWORD1>.NOLISTIF</KEYWORD1>
			<KEYWORD1>.NOLISTMACRO</KEYWORD1>
			<KEYWORD1>.RADIX</KEYWORD1>
			<KEYWORD1>.REPEAT</KEYWORD1>
			<KEYWORD1>.SALL</KEYWORD1>
			<KEYWORD1>.SEQ</KEYWORD1>
			<KEYWORD1>.SFCOND</KEYWORD1>
			<KEYWORD1>.STACK</KEYWORD1>
			<KEYWORD1>.STARTUP</KEYWORD1>
			<KEYWORD1>.TEXT</KEYWORD1>
			<KEYWORD1>.TFCOND</KEYWORD1>
			<KEYWORD1>.UNTIL</KEYWORD1>
			<KEYWORD1>.UNTILCXZ</KEYWORD1>
			<KEYWORD1>.WHILE</KEYWORD1>
			<KEYWORD1>.XALL</KEYWORD1>
			<KEYWORD1>.XCREF</KEYWORD1>
			<KEYWORD1>.XLIST</KEYWORD1>
			<KEYWORD1>.XMM</KEYWORD1>
			<KEYWORD1>__FILE__</KEYWORD1>
			<KEYWORD1>__LINE__</KEYWORD1>
			<KEYWORD1>A16</KEYWORD1>
			<KEYWORD1>A32</KEYWORD1>
			<KEYWORD1>ADDR</KEYWORD1>
			<KEYWORD1>ALIGN</KEYWORD1>
			<KEYWORD1>ALIGNB</KEYWORD1>
			<KEYWORD1>ASSUME</KEYWORD1>
			<KEYWORD1>BITS</KEYWORD1>
			<KEYWORD1>CARRY?</KEYWORD1>
			<KEYWORD1>CATSTR</KEYWORD1>
			<KEYWORD1>CODESEG</KEYWORD1>
			<KEYWORD1>COMM</KEYWORD1>
			<KEYWORD1>COMMENT</KEYWORD1>
			<KEYWORD1>COMMON</KEYWORD1>
			<KEYWORD1>DATASEG</KEYWORD1>
			<KEYWORD1>DOSSEG</KEYWORD1>
			<KEYWORD1>ECHO</KEYWORD1>
			<KEYWORD1>ELSE</KEYWORD1>
			<KEYWORD1>ELSEIF</KEYWORD1>
			<KEYWORD1>ELSEIF1</KEYWORD1>
			<KEYWORD1>ELSEIF2</KEYWORD1>
			<KEYWORD1>ELSEIFB</KEYWORD1>
			<KEYWORD1>ELSEIFDEF</KEYWORD1>
			<KEYWORD1>ELSEIFE</KEYWORD1>
			<KEYWORD1>ELSEIFIDN</KEYWORD1>
			<KEYWORD1>ELSEIFNB</KEYWORD1>
			<KEYWORD1>ELSEIFNDEF</KEYWORD1>
			<KEYWORD1>END</KEYWORD1>
			<KEYWORD1>ENDIF</KEYWORD1>
			<KEYWORD1>ENDM</KEYWORD1>
			<KEYWORD1>ENDP</KEYWORD1>
			<KEYWORD1>ENDS</KEYWORD1>
			<KEYWORD1>ENDSTRUC</KEYWORD1>
			<KEYWORD1>EVEN</KEYWORD1>
			<KEYWORD1>EXITM</KEYWORD1>
			<KEYWORD1>EXPORT</KEYWORD1>
			<KEYWORD1>EXTERN</KEYWORD1>
			<KEYWORD1>EXTERNDEF</KEYWORD1>
			<KEYWORD1>EXTRN</KEYWORD1>
			<KEYWORD1>FAR</KEYWORD1>
			<KEYWORD1>FOR</KEYWORD1>
			<KEYWORD1>FORC</KEYWORD1>
			<KEYWORD1>GLOBAL</KEYWORD1>
			<KEYWORD1>GOTO</KEYWORD1>
			<KEYWORD1>GROUP</KEYWORD1>
			<KEYWORD1>HIGH</KEYWORD1>
			<KEYWORD1>HIGHWORD</KEYWORD1>
			<KEYWORD1>IEND</KEYWORD1>
			<KEYWORD1>IF</KEYWORD1>
			<KEYWORD1>IF1</KEYWORD1>
			<KEYWORD1>IF2</KEYWORD1>
			<KEYWORD1>IFB</KEYWORD1>
			<KEYWORD1>IFDEF</KEYWORD1>
			<KEYWORD1>IFDIF</KEYWORD1>
			<KEYWORD1>IFDIFI</KEYWORD1>
			<KEYWORD1>IFE</KEYWORD1>
			<KEYWORD1>IFIDN</KEYWORD1>
			<KEYWORD1>IFIDNI</KEYWORD1>
			<KEYWORD1>IFNB</KEYWORD1>
			<KEYWORD1>IFNDEF</KEYWORD1>
			<KEYWORD1>IMPORT</KEYWORD1>
			<KEYWORD1>INCBIN</KEYWORD1>
			<KEYWORD1>INCLUDE</KEYWORD1>
			<KEYWORD1>INCLUDELIB</KEYWORD1>
			<KEYWORD1>INSTR</KEYWORD1>
			<KEYWORD1>INVOKE</KEYWORD1>
			<KEYWORD1>IRP</KEYWORD1>
			<KEYWORD1>IRPC</KEYWORD1>
			<KEYWORD1>ISTRUC</KEYWORD1>
			<KEYWORD1>LABEL</KEYWORD1>
			<KEYWORD1>LENGTH</KEYWORD1>
			<KEYWORD1>LENGTHOF</KEYWORD1>
			<KEYWORD1>LOCAL</KEYWORD1>
			<KEYWORD1>LOW</KEYWORD1>
			<KEYWORD1>LOWWORD</KEYWORD1>
			<KEYWORD1>LROFFSET</KEYWORD1>
			<KEYWORD1>MACRO</KEYWORD1>
			<KEYWORD1>NAME</KEYWORD1>
			<KEYWORD1>NEAR</KEYWORD1>
			<KEYWORD1>NOSPLIT</KEYWORD1>
			<KEYWORD1>O16</KEYWORD1>
			<KEYWORD1>O32</KEYWORD1>
			<KEYWORD1>OFFSET</KEYWORD1>
			<KEYWORD1>OPATTR</KEYWORD1>
			<KEYWORD1>OPTION</KEYWORD1>
			<KEYWORD1>ORG</KEYWORD1>
			<KEYWORD1>OVERFLOW?</KEYWORD1>
			<KEYWORD1>PAGE</KEYWORD1>
			<KEYWORD1>PARITY?</KEYWORD1>
			<KEYWORD1>POPCONTEXT</KEYWORD1>
			<KEYWORD1>PRIVATE</KEYWORD1>
			<KEYWORD1>PROC</KEYWORD1>
			<KEYWORD1>PROTO</KEYWORD1>
			<KEYWORD1>PTR</KEYWORD1>
			<KEYWORD1>PUBLIC</KEYWORD1>
			<KEYWORD1>PURGE</KEYWORD1>
			<KEYWORD1>PUSHCONTEXT</KEYWORD1>
			<KEYWORD1>RECORD</KEYWORD1>
			<KEYWORD1>REPEAT</KEYWORD1>
			<KEYWORD1>REPT</KEYWORD1>
			<KEYWORD1>SECTION</KEYWORD1>
			<KEYWORD1>SEG</KEYWORD1>
			<KEYWORD1>SEGMENT</KEYWORD1>
			<KEYWORD1>SHORT</KEYWORD1>
			<KEYWORD1>SIGN?</KEYWORD1>
			<KEYWORD1>SIZE</KEYWORD1>
			<KEYWORD1>SIZEOF</KEYWORD1>
			<KEYWORD1>SIZESTR</KEYWORD1>
			<KEYWORD1>STACK</KEYWORD1>
			<KEYWORD1>STRUC</KEYWORD1>
			<KEYWORD1>STRUCT</KEYWORD1>
			<KEYWORD1>SUBSTR</KEYWORD1>
			<KEYWORD1>SUBTITLE</KEYWORD1>
			<KEYWORD1>SUBTTL</KEYWORD1>
			<KEYWORD1>THIS</KEYWORD1>
			<KEYWORD1>TITLE</KEYWORD1>
			<KEYWORD1>TYPE</KEYWORD1>
			<KEYWORD1>TYPEDEF</KEYWORD1>
			<KEYWORD1>UNION</KEYWORD1>
			<KEYWORD1>USE16</KEYWORD1>
			<KEYWORD1>USE32</KEYWORD1>
			<KEYWORD1>USES</KEYWORD1>
			<KEYWORD1>WHILE</KEYWORD1>
			<KEYWORD1>WRT</KEYWORD1>
			<KEYWORD1>ZERO?</KEYWORD1>

			<KEYWORD2>DB</KEYWORD2>
			<KEYWORD2>DW</KEYWORD2>
			<KEYWORD2>DD</KEYWORD2>
			<KEYWORD2>DF</KEYWORD2>
			<KEYWORD2>DQ</KEYWORD2>
			<KEYWORD2>DT</KEYWORD2>
			<KEYWORD2>RESB</KEYWORD2>
			<KEYWORD2>RESW</KEYWORD2>
			<KEYWORD2>RESD</KEYWORD2>
			<KEYWORD2>RESQ</KEYWORD2>
			<KEYWORD2>REST</KEYWORD2>
			<KEYWORD2>EQU</KEYWORD2>
			<KEYWORD2>TEXTEQU</KEYWORD2>
			<KEYWORD2>TIMES</KEYWORD2>
			<KEYWORD2>DUP</KEYWORD2>

			<KEYWORD2>BYTE</KEYWORD2>
			<KEYWORD2>WORD</KEYWORD2>
			<KEYWORD2>DWORD</KEYWORD2>
			<KEYWORD2>FWORD</KEYWORD2>
			<KEYWORD2>QWORD</KEYWORD2>
			<KEYWORD2>TBYTE</KEYWORD2>
			<KEYWORD2>SBYTE</KEYWORD2>
			<KEYWORD2>TWORD</KEYWORD2>
			<KEYWORD2>SWORD</KEYWORD2>
			<KEYWORD2>SDWORD</KEYWORD2>
			<KEYWORD2>REAL4</KEYWORD2>
			<KEYWORD2>REAL8</KEYWORD2>
			<KEYWORD2>REAL10</KEYWORD2>

			<!-- Registers -->
			<KEYWORD3>AL</KEYWORD3>
			<KEYWORD3>BL</KEYWORD3>
			<KEYWORD3>CL</KEYWORD3>
			<KEYWORD3>DL</KEYWORD3>
			<KEYWORD3>AH</KEYWORD3>
			<KEYWORD3>BH</KEYWORD3>
			<KEYWORD3>CH</KEYWORD3>
			<KEYWORD3>DH</KEYWORD3>
			<KEYWORD3>AX</KEYWORD3>
			<KEYWORD3>BX</KEYWORD3>
			<KEYWORD3>CX</KEYWORD3>
			<KEYWORD3>DX</KEYWORD3>
			<KEYWORD3>SI</KEYWORD3>
			<KEYWORD3>DI</KEYWORD3>
			<KEYWORD3>SP</KEYWORD3>
			<KEYWORD3>BP</KEYWORD3>
			<KEYWORD3>EAX</KEYWORD3>
			<KEYWORD3>EBX</KEYWORD3>
			<KEYWORD3>ECX</KEYWORD3>
			<KEYWORD3>EDX</KEYWORD3>
			<KEYWORD3>ESI</KEYWORD3>
			<KEYWORD3>EDI</KEYWORD3>
			<KEYWORD3>ESP</KEYWORD3>
			<KEYWORD3>EBP</KEYWORD3>
			<KEYWORD3>CS</KEYWORD3>
			<KEYWORD3>DS</KEYWORD3>
			<KEYWORD3>SS</KEYWORD3>
			<KEYWORD3>ES</KEYWORD3>
			<KEYWORD3>FS</KEYWORD3>
			<KEYWORD3>GS</KEYWORD3>
			<KEYWORD3>ST</KEYWORD3>
			<KEYWORD3>ST0</KEYWORD3>
			<KEYWORD3>ST1</KEYWORD3>
			<KEYWORD3>ST2</KEYWORD3>
			<KEYWORD3>ST3</KEYWORD3>
			<KEYWORD3>ST4</KEYWORD3>
			<KEYWORD3>ST5</KEYWORD3>
			<KEYWORD3>ST6</KEYWORD3>
			<KEYWORD3>ST7</KEYWORD3>
			<KEYWORD3>MM0</KEYWORD3>
			<KEYWORD3>MM1</KEYWORD3>
			<KEYWORD3>MM2</KEYWORD3>
			<KEYWORD3>MM3</KEYWORD3>
			<KEYWORD3>MM4</KEYWORD3>
			<KEYWORD3>MM5</KEYWORD3>
			<KEYWORD3>MM6</KEYWORD3>
			<KEYWORD3>MM7</KEYWORD3>
			<KEYWORD3>XMM0</KEYWORD3>
			<KEYWORD3>XMM1</KEYWORD3>
			<KEYWORD3>XMM2</KEYWORD3>
			<KEYWORD3>XMM3</KEYWORD3>
			<KEYWORD3>XMM4</KEYWORD3>
			<KEYWORD3>XMM5</KEYWORD3>
			<KEYWORD3>XMM6</KEYWORD3>
			<KEYWORD3>XMM7</KEYWORD3>
			<KEYWORD3>CR0</KEYWORD3>
			<KEYWORD3>CR2</KEYWORD3>
			<KEYWORD3>CR3</KEYWORD3>
			<KEYWORD3>CR4</KEYWORD3>
			<KEYWORD3>DR0</KEYWORD3>
			<KEYWORD3>DR1</KEYWORD3>
			<KEYWORD3>DR2</KEYWORD3>
			<KEYWORD3>DR3</KEYWORD3>
			<KEYWORD3>DR4</KEYWORD3>
			<KEYWORD3>DR5</KEYWORD3>
			<KEYWORD3>DR6</KEYWORD3>
			<KEYWORD3>DR7</KEYWORD3>
			<KEYWORD3>TR3</KEYWORD3>
			<KEYWORD3>TR4</KEYWORD3>
			<KEYWORD3>TR5</KEYWORD3>
			<KEYWORD3>TR6</KEYWORD3>
			<KEYWORD3>TR7</KEYWORD3>

			<!-- Instructions: Pentium III/MMX/SSE -->
			<FUNCTION>AAA</FUNCTION>
			<FUNCTION>AAD</FUNCTION>
			<FUNCTION>AAM</FUNCTION>
			<FUNCTION>AAS</FUNCTION>
			<FUNCTION>ADC</FUNCTION>
			<FUNCTION>ADD</FUNCTION>
			<FUNCTION>ADDPS</FUNCTION>
			<FUNCTION>ADDSS</FUNCTION>
			<FUNCTION>AND</FUNCTION>
			<FUNCTION>ANDNPS</FUNCTION>
			<FUNCTION>ANDPS</FUNCTION>
			<FUNCTION>ARPL</FUNCTION>
			<FUNCTION>BOUND</FUNCTION>
			<FUNCTION>BSF</FUNCTION>
			<FUNCTION>BSR</FUNCTION>
			<FUNCTION>BSWAP</FUNCTION>
			<FUNCTION>BT</FUNCTION>
			<FUNCTION>BTC</FUNCTION>
			<FUNCTION>BTR</FUNCTION>
			<FUNCTION>BTS</FUNCTION>
			<FUNCTION>CALL</FUNCTION>
			<FUNCTION>CBW</FUNCTION>
			<FUNCTION>CDQ</FUNCTION>
			<FUNCTION>CLC</FUNCTION>
			<FUNCTION>CLD</FUNCTION>
			<FUNCTION>CLI</FUNCTION>
			<FUNCTION>CLTS</FUNCTION>
			<FUNCTION>CMC</FUNCTION>
			<FUNCTION>CMOVA</FUNCTION>
			<FUNCTION>CMOVAE</FUNCTION>
			<FUNCTION>CMOVB</FUNCTION>
			<FUNCTION>CMOVBE</FUNCTION>
			<FUNCTION>CMOVC</FUNCTION>
			<FUNCTION>CMOVE</FUNCTION>
			<FUNCTION>CMOVG</FUNCTION>
			<FUNCTION>CMOVGE</FUNCTION>
			<FUNCTION>CMOVL</FUNCTION>
			<FUNCTION>CMOVLE</FUNCTION>
			<FUNCTION>CMOVNA</FUNCTION>
			<FUNCTION>CMOVNAE</FUNCTION>
			<FUNCTION>CMOVNB</FUNCTION>
			<FUNCTION>CMOVNBE</FUNCTION>
			<FUNCTION>CMOVNC</FUNCTION>
			<FUNCTION>CMOVNE</FUNCTION>
			<FUNCTION>CMOVNG</FUNCTION>
			<FUNCTION>CMOVNGE</FUNCTION>
			<FUNCTION>CMOVNL</FUNCTION>
			<FUNCTION>CMOVNLE</FUNCTION>
			<FUNCTION>CMOVNO</FUNCTION>
			<FUNCTION>CMOVNP</FUNCTION>
			<FUNCTION>CMOVNS</FUNCTION>
			<FUNCTION>CMOVNZ</FUNCTION>
			<FUNCTION>CMOVO</FUNCTION>
			<FUNCTION>CMOVP</FUNCTION>
			<FUNCTION>CMOVPE</FUNCTION>
			<FUNCTION>CMOVPO</FUNCTION>
			<FUNCTION>CMOVS</FUNCTION>
			<FUNCTION>CMOVZ</FUNCTION>
			<FUNCTION>CMP</FUNCTION>
			<FUNCTION>CMPPS</FUNCTION>
			<FUNCTION>CMPS</FUNCTION>
			<FUNCTION>CMPSB</FUNCTION>
			<FUNCTION>CMPSD</FUNCTION>
			<FUNCTION>CMPSS</FUNCTION>
			<FUNCTION>CMPSW</FUNCTION>
			<FUNCTION>CMPXCHG</FUNCTION>
			<FUNCTION>CMPXCHGB</FUNCTION>
			<FUNCTION>COMISS</FUNCTION>
			<FUNCTION>CPUID</FUNCTION>
			<FUNCTION>CWD</FUNCTION>
			<FUNCTION>CWDE</FUNCTION>
			<FUNCTION>CVTPI2PS</FUNCTION>
			<FUNCTION>CVTPS2PI</FUNCTION>
			<FUNCTION>CVTSI2SS</FUNCTION>
			<FUNCTION>CVTSS2SI</FUNCTION>
			<FUNCTION>CVTTPS2PI</FUNCTION>
			<FUNCTION>CVTTSS2SI</FUNCTION>
			<FUNCTION>DAA</FUNCTION>
			<FUNCTION>DAS</FUNCTION>
			<FUNCTION>DEC</FUNCTION>
			<FUNCTION>DIV</FUNCTION>
			<FUNCTION>DIVPS</FUNCTION>
			<FUNCTION>DIVSS</FUNCTION>
			<FUNCTION>EMMS</FUNCTION>
			<FUNCTION>ENTER</FUNCTION>
			<FUNCTION>F2XM1</FUNCTION>
			<FUNCTION>FABS</FUNCTION>
			<FUNCTION>FADD</FUNCTION>
			<FUNCTION>FADDP</FUNCTION>
			<FUNCTION>FBLD</FUNCTION>
			<FUNCTION>FBSTP</FUNCTION>
			<FUNCTION>FCHS</FUNCTION>
			<FUNCTION>FCLEX</FUNCTION>
			<FUNCTION>FCMOVB</FUNCTION>
			<FUNCTION>FCMOVBE</FUNCTION>
			<FUNCTION>FCMOVE</FUNCTION>
			<FUNCTION>FCMOVNB</FUNCTION>
			<FUNCTION>FCMOVNBE</FUNCTION>
			<FUNCTION>FCMOVNE</FUNCTION>
			<FUNCTION>FCMOVNU</FUNCTION>
			<FUNCTION>FCMOVU</FUNCTION>
			<FUNCTION>FCOM</FUNCTION>
			<FUNCTION>FCOMI</FUNCTION>
			<FUNCTION>FCOMIP</FUNCTION>
			<FUNCTION>FCOMP</FUNCTION>
			<FUNCTION>FCOMPP</FUNCTION>
			<FUNCTION>FCOS</FUNCTION>
			<FUNCTION>FDECSTP</FUNCTION>
			<FUNCTION>FDIV</FUNCTION>
			<FUNCTION>FDIVP</FUNCTION>
			<FUNCTION>FDIVR</FUNCTION>
			<FUNCTION>FDIVRP</FUNCTION>
			<FUNCTION>FFREE</FUNCTION>
			<FUNCTION>FIADD</FUNCTION>
			<FUNCTION>FICOM</FUNCTION>
			<FUNCTION>FICOMP</FUNCTION>
			<FUNCTION>FIDIV</FUNCTION>
			<FUNCTION>FIDIVR</FUNCTION>
			<FUNCTION>FILD</FUNCTION>
			<FUNCTION>FIMUL</FUNCTION>
			<FUNCTION>FINCSTP</FUNCTION>
			<FUNCTION>FINIT</FUNCTION>
			<FUNCTION>FIST</FUNCTION>
			<FUNCTION>FISTP</FUNCTION>
			<FUNCTION>FISUB</FUNCTION>
			<FUNCTION>FISUBR</FUNCTION>
			<FUNCTION>FLD1</FUNCTION>
			<FUNCTION>FLDCW</FUNCTION>
			<FUNCTION>FLDENV</FUNCTION>
			<FUNCTION>FLDL2E</FUNCTION>
			<FUNCTION>FLDL2T</FUNCTION>
			<FUNCTION>FLDLG2</FUNCTION>
			<FUNCTION>FLDLN2</FUNCTION>
			<FUNCTION>FLDPI</FUNCTION>
			<FUNCTION>FLDZ</FUNCTION>
			<FUNCTION>FMUL</FUNCTION>
			<FUNCTION>FMULP</FUNCTION>
			<FUNCTION>FNCLEX</FUNCTION>
			<FUNCTION>FNINIT</FUNCTION>
			<FUNCTION>FNOP</FUNCTION>
			<FUNCTION>FNSAVE</FUNCTION>
			<FUNCTION>FNSTCW</FUNCTION>
			<FUNCTION>FNSTENV</FUNCTION>
			<FUNCTION>FNSTSW</FUNCTION>
			<FUNCTION>FPATAN</FUNCTION>
			<FUNCTION>FPREM</FUNCTION>
			<FUNCTION>FPREMI</FUNCTION>
			<FUNCTION>FPTAN</FUNCTION>
			<FUNCTION>FRNDINT</FUNCTION>
			<FUNCTION>FRSTOR</FUNCTION>
			<FUNCTION>FSAVE</FUNCTION>
			<FUNCTION>FSCALE</FUNCTION>
			<FUNCTION>FSIN</FUNCTION>
			<FUNCTION>FSINCOS</FUNCTION>
			<FUNCTION>FSQRT</FUNCTION>
			<FUNCTION>FST</FUNCTION>
			<FUNCTION>FSTCW</FUNCTION>
			<FUNCTION>FSTENV</FUNCTION>
			<FUNCTION>FSTP</FUNCTION>
			<FUNCTION>FSTSW</FUNCTION>
			<FUNCTION>FSUB</FUNCTION>
			<FUNCTION>FSUBP</FUNCTION>
			<FUNCTION>FSUBR</FUNCTION>
			<FUNCTION>FSUBRP</FUNCTION>
			<FUNCTION>FTST</FUNCTION>
			<FUNCTION>FUCOM</FUNCTION>
			<FUNCTION>FUCOMI</FUNCTION>
			<FUNCTION>FUCOMIP</FUNCTION>
			<FUNCTION>FUCOMP</FUNCTION>
			<FUNCTION>FUCOMPP</FUNCTION>
			<FUNCTION>FWAIT</FUNCTION>
			<FUNCTION>FXAM</FUNCTION>
			<FUNCTION>FXCH</FUNCTION>
			<FUNCTION>FXRSTOR</FUNCTION>
			<FUNCTION>FXSAVE</FUNCTION>
			<FUNCTION>FXTRACT</FUNCTION>
			<FUNCTION>FYL2X</FUNCTION>
			<FUNCTION>FYL2XP1</FUNCTION>
			<FUNCTION>HLT</FUNCTION>
			<FUNCTION>IDIV</FUNCTION>
			<FUNCTION>IMUL</FUNCTION>
			<FUNCTION>IN</FUNCTION>
			<FUNCTION>INC</FUNCTION>
			<FUNCTION>INS</FUNCTION>
			<FUNCTION>INSB</FUNCTION>
			<FUNCTION>INSD</FUNCTION>
			<FUNCTION>INSW</FUNCTION>
			<FUNCTION>INT</FUNCTION>
			<FUNCTION>INTO</FUNCTION>
			<FUNCTION>INVD</FUNCTION>
			<FUNCTION>INVLPG</FUNCTION>
			<FUNCTION>IRET</FUNCTION>
			<FUNCTION>JA</FUNCTION>
			<FUNCTION>JAE</FUNCTION>
			<FUNCTION>JB</FUNCTION>
			<FUNCTION>JBE</FUNCTION>
			<FUNCTION>JC</FUNCTION>
			<FUNCTION>JCXZ</FUNCTION>
			<FUNCTION>JE</FUNCTION>
			<FUNCTION>JECXZ</FUNCTION>
			<FUNCTION>JG</FUNCTION>
			<FUNCTION>JGE</FUNCTION>
			<FUNCTION>JL</FUNCTION>
			<FUNCTION>JLE</FUNCTION>
			<FUNCTION>JMP</FUNCTION>
			<FUNCTION>JNA</FUNCTION>
			<FUNCTION>JNAE</FUNCTION>
			<FUNCTION>JNB</FUNCTION>
			<FUNCTION>JNBE</FUNCTION>
			<FUNCTION>JNC</FUNCTION>
			<FUNCTION>JNE</FUNCTION>
			<FUNCTION>JNG</FUNCTION>
			<FUNCTION>JNGE</FUNCTION>
			<FUNCTION>JNL</FUNCTION>
			<FUNCTION>JNLE</FUNCTION>
			<FUNCTION>JNO</FUNCTION>
			<FUNCTION>JNP</FUNCTION>
			<FUNCTION>JNS</FUNCTION>
			<FUNCTION>JNZ</FUNCTION>
			<FUNCTION>JO</FUNCTION>
			<FUNCTION>JP</FUNCTION>
			<FUNCTION>JPE</FUNCTION>
			<FUNCTION>JPO</FUNCTION>
			<FUNCTION>JS</FUNCTION>
			<FUNCTION>JZ</FUNCTION>
			<FUNCTION>LAHF</FUNCTION>
			<FUNCTION>LAR</FUNCTION>
			<FUNCTION>LDMXCSR</FUNCTION>
			<FUNCTION>LDS</FUNCTION>
			<FUNCTION>LEA</FUNCTION>
			<FUNCTION>LEAVE</FUNCTION>
			<FUNCTION>LES</FUNCTION>
			<FUNCTION>LFS</FUNCTION>
			<FUNCTION>LGDT</FUNCTION>
			<FUNCTION>LGS</FUNCTION>
			<FUNCTION>LIDT</FUNCTION>
			<FUNCTION>LLDT</FUNCTION>
			<FUNCTION>LMSW</FUNCTION>
			<FUNCTION>LOCK</FUNCTION>
			<FUNCTION>LODS</FUNCTION>
			<FUNCTION>LODSB</FUNCTION>
			<FUNCTION>LODSD</FUNCTION>
			<FUNCTION>LODSW</FUNCTION>
			<FUNCTION>LOOP</FUNCTION>
			<FUNCTION>LOOPE</FUNCTION>
			<FUNCTION>LOOPNE</FUNCTION>
			<FUNCTION>LOOPNZ</FUNCTION>
			<FUNCTION>LOOPZ</FUNCTION>
			<FUNCTION>LSL</FUNCTION>
			<FUNCTION>LSS</FUNCTION>
			<FUNCTION>LTR</FUNCTION>
			<FUNCTION>MASKMOVQ</FUNCTION>
			<FUNCTION>MAXPS</FUNCTION>
			<FUNCTION>MAXSS</FUNCTION>
			<FUNCTION>MINPS</FUNCTION>
			<FUNCTION>MINSS</FUNCTION>
			<FUNCTION>MOV</FUNCTION>
			<FUNCTION>MOVAPS</FUNCTION>
			<FUNCTION>MOVD</FUNCTION>
			<FUNCTION>MOVHLPS</FUNCTION>
			<FUNCTION>MOVHPS</FUNCTION>
			<FUNCTION>MOVLHPS</FUNCTION>
			<FUNCTION>MOVLPS</FUNCTION>
			<FUNCTION>MOVMSKPS</FUNCTION>
			<FUNCTION>MOVNTPS</FUNCTION>
			<FUNCTION>MOVNTQ</FUNCTION>
			<FUNCTION>MOVQ</FUNCTION>
			<FUNCTION>MOVS</FUNCTION>
			<FUNCTION>MOVSB</FUNCTION>
			<FUNCTION>MOVSD</FUNCTION>
			<FUNCTION>MOVSS</FUNCTION>
			<FUNCTION>MOVSW</FUNCTION>
			<FUNCTION>MOVSX</FUNCTION>
			<FUNCTION>MOVUPS</FUNCTION>
			<FUNCTION>MOVZX</FUNCTION>
			<FUNCTION>MUL</FUNCTION>
			<FUNCTION>MULPS</FUNCTION>
			<FUNCTION>MULSS</FUNCTION>
			<FUNCTION>NEG</FUNCTION>
			<FUNCTION>NOP</FUNCTION>
			<FUNCTION>NOT</FUNCTION>
			<FUNCTION>OR</FUNCTION>
			<FUNCTION>ORPS</FUNCTION>
			<FUNCTION>OUT</FUNCTION>
			<FUNCTION>OUTS</FUNCTION>
			<FUNCTION>OUTSB</FUNCTION>
			<FUNCTION>OUTSD</FUNCTION>
			<FUNCTION>OUTSW</FUNCTION>
			<FUNCTION>PACKSSDW</FUNCTION>
			<FUNCTION>PACKSSWB</FUNCTION>
			<FUNCTION>PACKUSWB</FUNCTION>
			<FUNCTION>PADDB</FUNCTION>
			<FUNCTION>PADDD</FUNCTION>
			<FUNCTION>PADDSB</FUNCTION>
			<FUNCTION>PADDSW</FUNCTION>
			<FUNCTION>PADDUSB</FUNCTION>
			<FUNCTION>PADDUSW</FUNCTION>
			<FUNCTION>PADDW</FUNCTION>
			<FUNCTION>PAND</FUNCTION>
			<FUNCTION>PANDN</FUNCTION>
			<FUNCTION>PAVGB</FUNCTION>
			<FUNCTION>PAVGW</FUNCTION>
			<FUNCTION>PCMPEQB</FUNCTION>
			<FUNCTION>PCMPEQD</FUNCTION>
			<FUNCTION>PCMPEQW</FUNCTION>
			<FUNCTION>PCMPGTB</FUNCTION>
			<FUNCTION>PCMPGTD</FUNCTION>
			<FUNCTION>PCMPGTW</FUNCTION>
			<FUNCTION>PEXTRW</FUNCTION>
			<FUNCTION>PINSRW</FUNCTION>
			<FUNCTION>PMADDWD</FUNCTION>
			<FUNCTION>PMAXSW</FUNCTION>
			<FUNCTION>PMAXUB</FUNCTION>
			<FUNCTION>PMINSW</FUNCTION>
			<FUNCTION>PMINUB</FUNCTION>
			<FUNCTION>PMOVMSKB</FUNCTION>
			<FUNCTION>PMULHUW</FUNCTION>
			<FUNCTION>PMULHW</FUNCTION>
			<FUNCTION>PMULLW</FUNCTION>
			<FUNCTION>POP</FUNCTION>
			<FUNCTION>POPA</FUNCTION>
			<FUNCTION>POPAD</FUNCTION>
			<FUNCTION>POPAW</FUNCTION>
			<FUNCTION>POPF</FUNCTION>
			<FUNCTION>POPFD</FUNCTION>
			<FUNCTION>POPFW</FUNCTION>
			<FUNCTION>POR</FUNCTION>
			<FUNCTION>PREFETCH</FUNCTION>
			<FUNCTION>PSADBW</FUNCTION>
			<FUNCTION>PSHUFW</FUNCTION>
			<FUNCTION>PSLLD</FUNCTION>
			<FUNCTION>PSLLQ</FUNCTION>
			<FUNCTION>PSLLW</FUNCTION>
			<FUNCTION>PSRAD</FUNCTION>
			<FUNCTION>PSRAW</FUNCTION>
			<FUNCTION>PSRLD</FUNCTION>
			<FUNCTION>PSRLQ</FUNCTION>
			<FUNCTION>PSRLW</FUNCTION>
			<FUNCTION>PSUBB</FUNCTION>
			<FUNCTION>PSUBD</FUNCTION>
			<FUNCTION>PSUBSB</FUNCTION>
			<FUNCTION>PSUBSW</FUNCTION>
			<FUNCTION>PSUBUSB</FUNCTION>
			<FUNCTION>PSUBUSW</FUNCTION>
			<FUNCTION>PSUBW</FUNCTION>
			<FUNCTION>PUNPCKHBW</FUNCTION>
			<FUNCTION>PUNPCKHDQ</FUNCTION>
			<FUNCTION>PUNPCKHWD</FUNCTION>
			<FUNCTION>PUNPCKLBW</FUNCTION>
			<FUNCTION>PUNPCKLDQ</FUNCTION>
			<FUNCTION>PUNPCKLWD</FUNCTION>
			<FUNCTION>PUSH</FUNCTION>
			<FUNCTION>PUSHA</FUNCTION>
			<FUNCTION>PUSHAD</FUNCTION>
			<FUNCTION>PUSHAW</FUNCTION>
			<FUNCTION>PUSHF</FUNCTION>
			<FUNCTION>PUSHFD</FUNCTION>
			<FUNCTION>PUSHFW</FUNCTION>
			<FUNCTION>PXOR</FUNCTION>
			<FUNCTION>RCL</FUNCTION>
			<FUNCTION>RCR</FUNCTION>
			<FUNCTION>RDMSR</FUNCTION>
			<FUNCTION>RDPMC</FUNCTION>
			<FUNCTION>RDTSC</FUNCTION>
			<FUNCTION>REP</FUNCTION>
			<FUNCTION>REPE</FUNCTION>
			<FUNCTION>REPNE</FUNCTION>
			<FUNCTION>REPNZ</FUNCTION>
			<FUNCTION>REPZ</FUNCTION>
			<FUNCTION>RET</FUNCTION>
			<FUNCTION>RETF</FUNCTION>
			<FUNCTION>RETN</FUNCTION>
			<FUNCTION>ROL</FUNCTION>
			<FUNCTION>ROR</FUNCTION>
			<FUNCTION>RSM</FUNCTION>
			<FUNCTION>SAHF</FUNCTION>
			<FUNCTION>SAL</FUNCTION>
			<FUNCTION>SAR</FUNCTION>
			<FUNCTION>SBB</FUNCTION>
			<FUNCTION>SCAS</FUNCTION>
			<FUNCTION>SCASB</FUNCTION>
			<FUNCTION>SCASD</FUNCTION>
			<FUNCTION>SCASW</FUNCTION>
			<FUNCTION>SETA</FUNCTION>
			<FUNCTION>SETAE</FUNCTION>
			<FUNCTION>SETB</FUNCTION>
			<FUNCTION>SETBE</FUNCTION>
			<FUNCTION>SETC</FUNCTION>
			<FUNCTION>SETE</FUNCTION>
			<FUNCTION>SETG</FUNCTION>
			<FUNCTION>SETGE</FUNCTION>
			<FUNCTION>SETL</FUNCTION>
			<FUNCTION>SETLE</FUNCTION>
			<FUNCTION>SETNA</FUNCTION>
			<FUNCTION>SETNAE</FUNCTION>
			<FUNCTION>SETNB</FUNCTION>
			<FUNCTION>SETNBE</FUNCTION>
			<FUNCTION>SETNC</FUNCTION>
			<FUNCTION>SETNE</FUNCTION>
			<FUNCTION>SETNG</FUNCTION>
			<FUNCTION>SETNGE</FUNCTION>
			<FUNCTION>SETNL</FUNCTION>
			<FUNCTION>SETNLE</FUNCTION>
			<FUNCTION>SETNO</FUNCTION>
			<FUNCTION>SETNP</FUNCTION>
			<FUNCTION>SETNS</FUNCTION>
			<FUNCTION>SETNZ</FUNCTION>
			<FUNCTION>SETO</FUNCTION>
			<FUNCTION>SETP</FUNCTION>
			<FUNCTION>SETPE</FUNCTION>
			<FUNCTION>SETPO</FUNCTION>
			<FUNCTION>SETS</FUNCTION>
			<FUNCTION>SETZ</FUNCTION>
			<FUNCTION>SFENCE</FUNCTION>
			<FUNCTION>SGDT</FUNCTION>
			<FUNCTION>SHL</FUNCTION>
			<FUNCTION>SHLD</FUNCTION>
			<FUNCTION>SHR</FUNCTION>
			<FUNCTION>SHRD</FUNCTION>
			<FUNCTION>SHUFPS</FUNCTION>
			<FUNCTION>SIDT</FUNCTION>
			<FUNCTION>SLDT</FUNCTION>
			<FUNCTION>SMSW</FUNCTION>
			<FUNCTION>SQRTPS</FUNCTION>
			<FUNCTION>SQRTSS</FUNCTION>
			<FUNCTION>STC</FUNCTION>
			<FUNCTION>STD</FUNCTION>
			<FUNCTION>STI</FUNCTION>
			<FUNCTION>STMXCSR</FUNCTION>
			<FUNCTION>STOS</FUNCTION>
			<FUNCTION>STOSB</FUNCTION>
			<FUNCTION>STOSD</FUNCTION>
			<FUNCTION>STOSW</FUNCTION>
			<FUNCTION>STR</FUNCTION>
			<FUNCTION>SUB</FUNCTION>
			<FUNCTION>SUBPS</FUNCTION>
			<FUNCTION>SUBSS</FUNCTION>
			<FUNCTION>SYSENTER</FUNCTION>
			<FUNCTION>SYSEXIT</FUNCTION>
			<FUNCTION>TEST</FUNCTION>
			<FUNCTION>UB2</FUNCTION>
			<FUNCTION>UCOMISS</FUNCTION>
			<FUNCTION>UNPCKHPS</FUNCTION>
			<FUNCTION>UNPCKLPS</FUNCTION>
			<FUNCTION>WAIT</FUNCTION>
			<FUNCTION>WBINVD</FUNCTION>
			<FUNCTION>VERR</FUNCTION>
			<FUNCTION>VERW</FUNCTION>
			<FUNCTION>WRMSR</FUNCTION>
			<FUNCTION>XADD</FUNCTION>
			<FUNCTION>XCHG</FUNCTION>
			<FUNCTION>XLAT</FUNCTION>
			<FUNCTION>XLATB</FUNCTION>
			<FUNCTION>XOR</FUNCTION>
			<FUNCTION>XORPS</FUNCTION>

			<!-- Instructions: 3DNow! -->
			<FUNCTION>FEMMS</FUNCTION>
			<FUNCTION>PAVGUSB</FUNCTION>
			<FUNCTION>PF2ID</FUNCTION>
			<FUNCTION>PFACC</FUNCTION>
			<FUNCTION>PFADD</FUNCTION>
			<FUNCTION>PFCMPEQ</FUNCTION>
			<FUNCTION>PFCMPGE</FUNCTION>
			<FUNCTION>PFCMPGT</FUNCTION>
			<FUNCTION>PFMAX</FUNCTION>
			<FUNCTION>PFMIN</FUNCTION>
			<FUNCTION>PFMUL</FUNCTION>
			<FUNCTION>PFRCP</FUNCTION>
			<FUNCTION>PFRCPIT1</FUNCTION>
			<FUNCTION>PFRCPIT2</FUNCTION>
			<FUNCTION>PFRSQIT1</FUNCTION>
			<FUNCTION>PFRSQRT</FUNCTION>
			<FUNCTION>PFSUB</FUNCTION>
			<FUNCTION>PFSUBR</FUNCTION>
			<FUNCTION>PI2FD</FUNCTION>
			<FUNCTION>PMULHRW</FUNCTION>
			<FUNCTION>PREFETCHW</FUNCTION>

			<!-- Instructions: 3DNow! (Athlon extensions) -->
			<FUNCTION>PF2IW</FUNCTION>
			<FUNCTION>PFNACC</FUNCTION>
			<FUNCTION>PFPNACC</FUNCTION>
			<FUNCTION>PI2FW</FUNCTION>
			<FUNCTION>PSWAPD</FUNCTION>

			<!-- Instructions: MMX (Athlon extensions) -->
			<FUNCTION>PREFETCHNTA</FUNCTION>
			<FUNCTION>PREFETCHT0</FUNCTION>
			<FUNCTION>PREFETCHT1</FUNCTION>
			<FUNCTION>PREFETCHT2</FUNCTION>

		</KEYWORDS>
	</RULES>
</MODE>
