Skip to content
Snippets Groups Projects
SMPDataFlowAnalysis.cpp 180 KiB
Newer Older
		case STARS_NN_call:                // Call Procedure
		case STARS_NN_callfi:              // Indirect Call Far Procedure
		case STARS_NN_callni:              // Indirect Call Near Procedure
		case STARS_NN_cbw:                 // AL -> AX (with sign)
		case STARS_NN_cwde:                // AX -> EAX (with sign)
		case STARS_NN_cdqe:                // EAX -> RAX (with sign)
		case STARS_NN_clc:                 // Clear Carry Flag
		case STARS_NN_cld:                 // Clear Direction Flag
		case STARS_NN_cli:                 // Clear Interrupt Flag
		case STARS_NN_clts:                // Clear Task-Switched Flag in CR0
		case STARS_NN_cmc:                 // Complement Carry Flag
		case STARS_NN_cmp:                 // Compare Two Operands
		case STARS_NN_cmps:                // Compare Strings
		case STARS_NN_cwd:                 // AX -> DX:AX (with sign)
		case STARS_NN_cdq:                 // EAX -> EDX:EAX (with sign)
		case STARS_NN_cqo:                 // RAX -> RDX:RAX (with sign)
		case STARS_NN_daa:                 // Decimal Adjust AL after Addition
		case STARS_NN_das:                 // Decimal Adjust AL after Subtraction
		case STARS_NN_dec:                 // Decrement by 1
		case STARS_NN_div:                 // Unsigned Divide
		case STARS_NN_enterw:              // Make Stack Frame for Procedure Parameters
		case STARS_NN_enter:               // Make Stack Frame for Procedure Parameters
		case STARS_NN_enterd:              // Make Stack Frame for Procedure Parameters
		case STARS_NN_enterq:              // Make Stack Frame for Procedure Parameters
		case STARS_NN_idiv:                // Signed Divide
		case STARS_NN_imul:                // Signed Multiply
		case STARS_NN_in:                  // Input from Port
		case STARS_NN_inc:                 // Increment by 1
		case STARS_NN_ins:                 // Input Byte(s) from Port to String
		case STARS_NN_int:                 // Call to Interrupt Procedure
		case STARS_NN_into:                // Call to Interrupt Procedure if Overflow Flag = 1
		case STARS_NN_int3:                // Trap to Debugger
		case STARS_NN_iretw:               // Interrupt Return
		case STARS_NN_iret:                // Interrupt Return
		case STARS_NN_iretd:               // Interrupt Return (use32)
		case STARS_NN_iretq:               // Interrupt Return (use64)
		case STARS_NN_ja:                  // Jump if Above (CF=0 & ZF=0)
		case STARS_NN_jae:                 // Jump if Above or Equal (CF=0)
		case STARS_NN_jb:                  // Jump if Below (CF=1)
		case STARS_NN_jbe:                 // Jump if Below or Equal (CF=1 | ZF=1)
		case STARS_NN_jc:                  // Jump if Carry (CF=1)
		case STARS_NN_jcxz:                // Jump if CX is 0
		case STARS_NN_jecxz:               // Jump if ECX is 0
		case STARS_NN_jrcxz:               // Jump if RCX is 0
		case STARS_NN_je:                  // Jump if Equal (ZF=1)
		case STARS_NN_jg:                  // Jump if Greater (ZF=0 & SF=OF)
		case STARS_NN_jge:                 // Jump if Greater or Equal (SF=OF)
		case STARS_NN_jl:                  // Jump if Less (SF!=OF)
		case STARS_NN_jle:                 // Jump if Less or Equal (ZF=1 | SF!=OF)
		case STARS_NN_jna:                 // Jump if Not Above (CF=1 | ZF=1)
		case STARS_NN_jnae:                // Jump if Not Above or Equal (CF=1)
		case STARS_NN_jnb:                 // Jump if Not Below (CF=0)
		case STARS_NN_jnbe:                // Jump if Not Below or Equal (CF=0 & ZF=0)
		case STARS_NN_jnc:                 // Jump if Not Carry (CF=0)
		case STARS_NN_jne:                 // Jump if Not Equal (ZF=0)
		case STARS_NN_jng:                 // Jump if Not Greater (ZF=1 | SF!=OF)
		case STARS_NN_jnge:                // Jump if Not Greater or Equal (ZF=1)
		case STARS_NN_jnl:                 // Jump if Not Less (SF=OF)
		case STARS_NN_jnle:                // Jump if Not Less or Equal (ZF=0 & SF=OF)
		case STARS_NN_jno:                 // Jump if Not Overflow (OF=0)
		case STARS_NN_jnp:                 // Jump if Not Parity (PF=0)
		case STARS_NN_jns:                 // Jump if Not Sign (SF=0)
		case STARS_NN_jnz:                 // Jump if Not Zero (ZF=0)
		case STARS_NN_jo:                  // Jump if Overflow (OF=1)
		case STARS_NN_jp:                  // Jump if Parity (PF=1)
		case STARS_NN_jpe:                 // Jump if Parity Even (PF=1)
		case STARS_NN_jpo:                 // Jump if Parity Odd  (PF=0)
		case STARS_NN_js:                  // Jump if Sign (SF=1)
		case STARS_NN_jz:                  // Jump if Zero (ZF=1)
		case STARS_NN_jmp:                 // Jump
		case STARS_NN_jmpfi:               // Indirect Far Jump
		case STARS_NN_jmpni:               // Indirect Near Jump
		case STARS_NN_jmpshort:            // Jump Short (not used)
		case STARS_NN_lahf:                // Load Flags into AH Register
		case STARS_NN_lar:                 // Load Access Right Byte
		case STARS_NN_lea:                 // Load Effective Address
		case STARS_NN_leavew:              // High Level Procedure Exit
		case STARS_NN_leave:               // High Level Procedure Exit
		case STARS_NN_leaved:              // High Level Procedure Exit
		case STARS_NN_leaveq:              // High Level Procedure Exit
		case STARS_NN_lgdt:                // Load Global Descriptor Table Register
		case STARS_NN_lidt:                // Load Interrupt Descriptor Table Register
		case STARS_NN_lgs:                 // Load Full Pointer to GS:xx
		case STARS_NN_lss:                 // Load Full Pointer to SS:xx
		case STARS_NN_lds:                 // Load Full Pointer to DS:xx
		case STARS_NN_les:                 // Load Full Pointer to ES:xx
		case STARS_NN_lfs:                 // Load Full Pointer to FS:xx
		case STARS_NN_lldt:                // Load Local Descriptor Table Register
		case STARS_NN_lmsw:                // Load Machine Status Word
		case STARS_NN_lock:                // Assert LOCK# Signal Prefix
		case STARS_NN_loopw:               // Loop while ECX != 0
		case STARS_NN_loop:                // Loop while CX != 0
		case STARS_NN_loopd:               // Loop while ECX != 0
		case STARS_NN_loopq:               // Loop while RCX != 0
		case STARS_NN_loopwe:              // Loop while CX != 0 and ZF=1
		case STARS_NN_loope:               // Loop while rCX != 0 and ZF=1
		case STARS_NN_loopde:              // Loop while ECX != 0 and ZF=1
		case STARS_NN_loopqe:              // Loop while RCX != 0 and ZF=1
		case STARS_NN_loopwne:             // Loop while CX != 0 and ZF=0
		case STARS_NN_loopne:              // Loop while rCX != 0 and ZF=0
		case STARS_NN_loopdne:             // Loop while ECX != 0 and ZF=0
		case STARS_NN_loopqne:             // Loop while RCX != 0 and ZF=0
		case STARS_NN_lsl:                 // Load Segment Limit
		case STARS_NN_ltr:                 // Load Task Register
		case STARS_NN_movsp:               // Move to/from Special Registers
		case STARS_NN_movs:                // Move Byte(s) from String to String
		case STARS_NN_movsx:               // Move with Sign-Extend
		case STARS_NN_movzx:               // Move with Zero-Extend
		case STARS_NN_mul:                 // Unsigned Multiplication of AL or AX
		case STARS_NN_neg:                 // Two's Complement Negation
		case STARS_NN_not:                 // One's Complement Negation
		case STARS_NN_or:                  // Logical Inclusive OR
		case STARS_NN_out:                 // Output to Port
		case STARS_NN_outs:                // Output Byte(s) to Port
		case STARS_NN_pop:                 // Pop a word from the Stack
		case STARS_NN_popaw:               // Pop all General Registers
		case STARS_NN_popa:                // Pop all General Registers
		case STARS_NN_popad:               // Pop all General Registers (use32)
		case STARS_NN_popaq:               // Pop all General Registers (use64)
		case STARS_NN_popfw:               // Pop Stack into Flags Register
		case STARS_NN_popf:                // Pop Stack into Flags Register
		case STARS_NN_popfd:               // Pop Stack into Eflags Register
		case STARS_NN_popfq:               // Pop Stack into Rflags Register
		case STARS_NN_push:                // Push Operand onto the Stack
		case STARS_NN_pushaw:              // Push all General Registers
		case STARS_NN_pusha:               // Push all General Registers
		case STARS_NN_pushad:              // Push all General Registers (use32)
		case STARS_NN_pushaq:              // Push all General Registers (use64)
		case STARS_NN_pushfw:              // Push Flags Register onto the Stack
		case STARS_NN_pushf:               // Push Flags Register onto the Stack
		case STARS_NN_pushfd:              // Push Flags Register onto the Stack (use32)
		case STARS_NN_pushfq:              // Push Flags Register onto the Stack (use64)
		case STARS_NN_rcl:                 // Rotate Through Carry Left
		case STARS_NN_rcr:                 // Rotate Through Carry Right
		case STARS_NN_rol:                 // Rotate Left
		case STARS_NN_ror:                 // Rotate Right
		case STARS_NN_rep:                 // Repeat String Operation
		case STARS_NN_repe:                // Repeat String Operation while ZF=1
		case STARS_NN_repne:               // Repeat String Operation while ZF=0
		case STARS_NN_retn:                // Return Near from Procedure
		case STARS_NN_retf:                // Return Far from Procedure
			SMP_fprintf(OutFile, "return");
			break;
		case STARS_NN_sahf:                // Store AH into Flags Register
		case STARS_NN_sal:                 // Shift Arithmetic Left
		case STARS_NN_sar:                 // Shift Arithmetic Right
		case STARS_NN_shl:                 // Shift Logical Left
		case STARS_NN_shr:                 // Shift Logical Right
		case STARS_NN_sbb:                 // Integer Subtraction with Borrow
		case STARS_NN_scas:                // Compare String
		case STARS_NN_seta:                // Set Byte if Above (CF=0 & ZF=0)
		case STARS_NN_setae:               // Set Byte if Above or Equal (CF=0)
		case STARS_NN_setb:                // Set Byte if Below (CF=1)
		case STARS_NN_setbe:               // Set Byte if Below or Equal (CF=1 | ZF=1)
		case STARS_NN_setc:                // Set Byte if Carry (CF=1)
		case STARS_NN_sete:                // Set Byte if Equal (ZF=1)
		case STARS_NN_setg:                // Set Byte if Greater (ZF=0 & SF=OF)
		case STARS_NN_setge:               // Set Byte if Greater or Equal (SF=OF)
		case STARS_NN_setl:                // Set Byte if Less (SF!=OF)
		case STARS_NN_setle:               // Set Byte if Less or Equal (ZF=1 | SF!=OF)
		case STARS_NN_setna:               // Set Byte if Not Above (CF=1 | ZF=1)
		case STARS_NN_setnae:              // Set Byte if Not Above or Equal (CF=1)
		case STARS_NN_setnb:               // Set Byte if Not Below (CF=0)
		case STARS_NN_setnbe:              // Set Byte if Not Below or Equal (CF=0 & ZF=0)
		case STARS_NN_setnc:               // Set Byte if Not Carry (CF=0)
		case STARS_NN_setne:               // Set Byte if Not Equal (ZF=0)
		case STARS_NN_setng:               // Set Byte if Not Greater (ZF=1 | SF!=OF)
		case STARS_NN_setnge:              // Set Byte if Not Greater or Equal (ZF=1)
		case STARS_NN_setnl:               // Set Byte if Not Less (SF=OF)
		case STARS_NN_setnle:              // Set Byte if Not Less or Equal (ZF=0 & SF=OF)
		case STARS_NN_setno:               // Set Byte if Not Overflow (OF=0)
		case STARS_NN_setnp:               // Set Byte if Not Parity (PF=0)
		case STARS_NN_setns:               // Set Byte if Not Sign (SF=0)
		case STARS_NN_setnz:               // Set Byte if Not Zero (ZF=0)
		case STARS_NN_seto:                // Set Byte if Overflow (OF=1)
		case STARS_NN_setp:                // Set Byte if Parity (PF=1)
		case STARS_NN_setpe:               // Set Byte if Parity Even (PF=1)
		case STARS_NN_setpo:               // Set Byte if Parity Odd  (PF=0)
		case STARS_NN_sets:                // Set Byte if Sign (SF=1)
		case STARS_NN_setz:                // Set Byte if Zero (ZF=1)
		case STARS_NN_sgdt:                // Store Global Descriptor Table Register
		case STARS_NN_sidt:                // Store Interrupt Descriptor Table Register
		case STARS_NN_shld:                // Double Precision Shift Left
		case STARS_NN_shrd:                // Double Precision Shift Right
		case STARS_NN_sldt:                // Store Local Descriptor Table Register
		case STARS_NN_smsw:                // Store Machine Status Word
		case STARS_NN_stc:                 // Set Carry Flag
		case STARS_NN_std:                 // Set Direction Flag
		case STARS_NN_sti:                 // Set Interrupt Flag
		case STARS_NN_stos:                // Store String
		case STARS_NN_str:                 // Store Task Register
		case STARS_NN_sub:                 // Integer Subtraction
		case STARS_NN_test:                // Logical Compare
		case STARS_NN_verr:                // Verify a Segment for Reading
		case STARS_NN_verw:                // Verify a Segment for Writing
		case STARS_NN_wait:                // Wait until BUSY# Pin is Inactive (HIGH)
		case STARS_NN_xchg:                // Exchange Register/Memory with Register
		case STARS_NN_xlat:                // Table Lookup Translation
		case STARS_NN_xor:                 // Logical Exclusive OR
		case STARS_NN_cmpxchg:             // Compare and Exchange
		case STARS_NN_bswap:               // Swap bits in EAX
		case STARS_NN_xadd:                // t<-dest; dest<-src+dest; src<-t
		case STARS_NN_invd:                // Invalidate Data Cache
		case STARS_NN_wbinvd:              // Invalidate Data Cache (write changes)
		case STARS_NN_invlpg:              // Invalidate TLB entry
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      Pentium instructions
//

		case STARS_NN_rdmsr:               // Read Machine Status Register
		case STARS_NN_wrmsr:               // Write Machine Status Register
		case STARS_NN_cpuid:               // Get CPU ID
		case STARS_NN_cmpxchg8b:           // Compare and Exchange Eight Bytes
		case STARS_NN_rdtsc:               // Read Time Stamp Counter
		case STARS_NN_rsm:                 // Resume from System Management Mode
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      Pentium Pro instructions
//

		case STARS_NN_cmova:               // Move if Above (CF=0 & ZF=0)
		case STARS_NN_cmovb:               // Move if Below (CF=1)
		case STARS_NN_cmovbe:              // Move if Below or Equal (CF=1 | ZF=1)
		case STARS_NN_cmovg:               // Move if Greater (ZF=0 & SF=OF)
		case STARS_NN_cmovge:              // Move if Greater or Equal (SF=OF)
		case STARS_NN_cmovl:               // Move if Less (SF!=OF)
		case STARS_NN_cmovle:              // Move if Less or Equal (ZF=1 | SF!=OF)
		case STARS_NN_cmovnb:              // Move if Not Below (CF=0)
		case STARS_NN_cmovno:              // Move if Not Overflow (OF=0)
		case STARS_NN_cmovnp:              // Move if Not Parity (PF=0)
		case STARS_NN_cmovns:              // Move if Not Sign (SF=0)
		case STARS_NN_cmovnz:              // Move if Not Zero (ZF=0)
		case STARS_NN_cmovo:               // Move if Overflow (OF=1)
		case STARS_NN_cmovp:               // Move if Parity (PF=1)
		case STARS_NN_cmovs:               // Move if Sign (SF=1)
		case STARS_NN_cmovz:               // Move if Zero (ZF=1)
		case STARS_NN_fcmovb:              // Floating Move if Below
		case STARS_NN_fcmove:              // Floating Move if Equal
		case STARS_NN_fcmovbe:             // Floating Move if Below or Equal
		case STARS_NN_fcmovu:              // Floating Move if Unordered
		case STARS_NN_fcmovnb:             // Floating Move if Not Below
		case STARS_NN_fcmovne:             // Floating Move if Not Equal
		case STARS_NN_fcmovnbe:            // Floating Move if Not Below or Equal
		case STARS_NN_fcmovnu:             // Floating Move if Not Unordered
		case STARS_NN_fcomi:               // FP Compare, result in EFLAGS
		case STARS_NN_fucomi:              // FP Unordered Compare, result in EFLAGS
		case STARS_NN_fcomip:              // FP Compare, result in EFLAGS, pop stack
		case STARS_NN_fucomip:             // FP Unordered Compare, result in EFLAGS, pop stack
		case STARS_NN_rdpmc:               // Read Performance Monitor Counter
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      FPP instructions
//

		case STARS_NN_fld:                 // Load Real
		case STARS_NN_fst:                 // Store Real
		case STARS_NN_fstp:                // Store Real and Pop
		case STARS_NN_fxch:                // Exchange Registers
		case STARS_NN_fild:                // Load Integer
		case STARS_NN_fist:                // Store Integer
		case STARS_NN_fistp:               // Store Integer and Pop
		case STARS_NN_fbld:                // Load BCD
		case STARS_NN_fbstp:               // Store BCD and Pop
		case STARS_NN_fadd:                // Add Real
		case STARS_NN_faddp:               // Add Real and Pop
		case STARS_NN_fiadd:               // Add Integer
		case STARS_NN_fsub:                // Subtract Real
		case STARS_NN_fsubp:               // Subtract Real and Pop
		case STARS_NN_fisub:               // Subtract Integer
		case STARS_NN_fsubr:               // Subtract Real Reversed
		case STARS_NN_fsubrp:              // Subtract Real Reversed and Pop
		case STARS_NN_fisubr:              // Subtract Integer Reversed
		case STARS_NN_fmul:                // Multiply Real
		case STARS_NN_fmulp:               // Multiply Real and Pop
		case STARS_NN_fimul:               // Multiply Integer
		case STARS_NN_fdiv:                // Divide Real
		case STARS_NN_fdivp:               // Divide Real and Pop
		case STARS_NN_fidiv:               // Divide Integer
		case STARS_NN_fdivr:               // Divide Real Reversed
		case STARS_NN_fdivrp:              // Divide Real Reversed and Pop
		case STARS_NN_fidivr:              // Divide Integer Reversed
		case STARS_NN_fsqrt:               // Square Root
		case STARS_NN_fscale:              // Scale:  st(0) <- st(0) * 2^st(1)
		case STARS_NN_fprem:               // Partial Remainder
		case STARS_NN_frndint:             // Round to Integer
		case STARS_NN_fxtract:             // Extract exponent and significand
		case STARS_NN_fabs:                // Absolute value
		case STARS_NN_fchs:                // Change Sign
		case STARS_NN_fcom:                // Compare Real
		case STARS_NN_fcomp:               // Compare Real and Pop
		case STARS_NN_fcompp:              // Compare Real and Pop Twice
		case STARS_NN_ficom:               // Compare Integer
		case STARS_NN_ficomp:              // Compare Integer and Pop
		case STARS_NN_ftst:                // Test
		case STARS_NN_fxam:                // Examine
		case STARS_NN_fptan:               // Partial tangent
		case STARS_NN_fpatan:              // Partial arctangent
		case STARS_NN_f2xm1:               // 2^x - 1
		case STARS_NN_fyl2x:               // Y * lg2(X)
		case STARS_NN_fyl2xp1:             // Y * lg2(X+1)
		case STARS_NN_fldz:                // Load +0.0
		case STARS_NN_fld1:                // Load +1.0
		case STARS_NN_fldpi:               // Load PI=3.14...
		case STARS_NN_fldl2t:              // Load lg2(10)
		case STARS_NN_fldl2e:              // Load lg2(e)
		case STARS_NN_fldlg2:              // Load lg10(2)
		case STARS_NN_fldln2:              // Load ln(2)
		case STARS_NN_finit:               // Initialize Processor
		case STARS_NN_fninit:              // Initialize Processor (no wait)
		case STARS_NN_fsetpm:              // Set Protected Mode
		case STARS_NN_fldcw:               // Load Control Word
		case STARS_NN_fstcw:               // Store Control Word
		case STARS_NN_fnstcw:              // Store Control Word (no wait)
		case STARS_NN_fstsw:               // Store Status Word
		case STARS_NN_fnstsw:              // Store Status Word (no wait)
		case STARS_NN_fclex:               // Clear Exceptions
		case STARS_NN_fnclex:              // Clear Exceptions (no wait)
		case STARS_NN_fstenv:              // Store Environment
		case STARS_NN_fnstenv:             // Store Environment (no wait)
		case STARS_NN_fldenv:              // Load Environment
		case STARS_NN_fsave:               // Save State
		case STARS_NN_fnsave:              // Save State (no wait)
		case STARS_NN_frstor:              // Restore State
		case STARS_NN_fincstp:             // Increment Stack Pointer
		case STARS_NN_fdecstp:             // Decrement Stack Pointer
		case STARS_NN_ffree:               // Free Register
		case STARS_NN_fnop:                // No Operation
		case STARS_NN_feni:                // (8087 only)
		case STARS_NN_fneni:               // (no wait) (8087 only)
		case STARS_NN_fdisi:               // (8087 only)
		case STARS_NN_fndisi:              // (no wait) (8087 only)
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      80387 instructions
//

		case STARS_NN_fprem1:              // Partial Remainder ( < half )
		case STARS_NN_fsincos:             // t<-cos(st); st<-sin(st); push t
		case STARS_NN_fsin:                // Sine
		case STARS_NN_fcos:                // Cosine
		case STARS_NN_fucom:               // Compare Unordered Real
		case STARS_NN_fucomp:              // Compare Unordered Real and Pop
		case STARS_NN_fucompp:             // Compare Unordered Real and Pop Twice
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      Instructions added 28.02.96
//

		case STARS_NN_setalc:              // Set AL to Carry Flag
		case STARS_NN_svdc:                // Save Register and Descriptor
		case STARS_NN_rsdc:                // Restore Register and Descriptor
		case STARS_NN_svldt:               // Save LDTR and Descriptor
		case STARS_NN_rsldt:               // Restore LDTR and Descriptor
		case STARS_NN_svts:                // Save TR and Descriptor
		case STARS_NN_rsts:                // Restore TR and Descriptor
		case STARS_NN_icebp:               // ICE Break Point
		case STARS_NN_loadall:             // Load the entire CPU state from ES:EDI
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      MMX instructions
//

		case STARS_NN_emms:                // Empty MMX state
		case STARS_NN_movd:                // Move 32 bits
		case STARS_NN_movq:                // Move 64 bits
		case STARS_NN_packsswb:            // Pack with Signed Saturation (Word->Byte)
		case STARS_NN_packssdw:            // Pack with Signed Saturation (Dword->Word)
		case STARS_NN_packuswb:            // Pack with Unsigned Saturation (Word->Byte)
		case STARS_NN_paddb:               // Packed Add Byte
		case STARS_NN_paddw:               // Packed Add Word
		case STARS_NN_paddd:               // Packed Add Dword
		case STARS_NN_paddsb:              // Packed Add with Saturation (Byte)
		case STARS_NN_paddsw:              // Packed Add with Saturation (Word)
		case STARS_NN_paddusb:             // Packed Add Unsigned with Saturation (Byte)
		case STARS_NN_paddusw:             // Packed Add Unsigned with Saturation (Word)
		case STARS_NN_pand:                // Bitwise Logical And
		case STARS_NN_pandn:               // Bitwise Logical And Not
		case STARS_NN_pcmpeqb:             // Packed Compare for Equal (Byte)
		case STARS_NN_pcmpeqw:             // Packed Compare for Equal (Word)
		case STARS_NN_pcmpeqd:             // Packed Compare for Equal (Dword)
		case STARS_NN_pcmpgtb:             // Packed Compare for Greater Than (Byte)
		case STARS_NN_pcmpgtw:             // Packed Compare for Greater Than (Word)
		case STARS_NN_pcmpgtd:             // Packed Compare for Greater Than (Dword)
		case STARS_NN_pmaddwd:             // Packed Multiply and Add
		case STARS_NN_pmulhw:              // Packed Multiply High
		case STARS_NN_pmullw:              // Packed Multiply Low
		case STARS_NN_por:                 // Bitwise Logical Or
		case STARS_NN_psllw:               // Packed Shift Left Logical (Word)
		case STARS_NN_pslld:               // Packed Shift Left Logical (Dword)
		case STARS_NN_psllq:               // Packed Shift Left Logical (Qword)
		case STARS_NN_psraw:               // Packed Shift Right Arithmetic (Word)
		case STARS_NN_psrad:               // Packed Shift Right Arithmetic (Dword)
		case STARS_NN_psrlw:               // Packed Shift Right Logical (Word)
		case STARS_NN_psrld:               // Packed Shift Right Logical (Dword)
		case STARS_NN_psrlq:               // Packed Shift Right Logical (Qword)
		case STARS_NN_psubb:               // Packed Subtract Byte
		case STARS_NN_psubw:               // Packed Subtract Word
		case STARS_NN_psubd:               // Packed Subtract Dword
		case STARS_NN_psubsb:              // Packed Subtract with Saturation (Byte)
		case STARS_NN_psubsw:              // Packed Subtract with Saturation (Word)
		case STARS_NN_psubusb:             // Packed Subtract Unsigned with Saturation (Byte)
		case STARS_NN_psubusw:             // Packed Subtract Unsigned with Saturation (Word)
		case STARS_NN_punpckhbw:           // Unpack High Packed Data (Byte->Word)
		case STARS_NN_punpckhwd:           // Unpack High Packed Data (Word->Dword)
		case STARS_NN_punpckhdq:           // Unpack High Packed Data (Dword->Qword)
		case STARS_NN_punpcklbw:           // Unpack Low Packed Data (Byte->Word)
		case STARS_NN_punpcklwd:           // Unpack Low Packed Data (Word->Dword)
		case STARS_NN_punpckldq:           // Unpack Low Packed Data (Dword->Qword)
		case STARS_NN_pxor:                // Bitwise Logical Exclusive Or
			SMP_fprintf(OutFile, "ERROR");
			break;

//
//      Undocumented Deschutes processor instructions
//

		case STARS_NN_fxsave:              // Fast save FP context
		case STARS_NN_fxrstor:             // Fast restore FP context
			SMP_fprintf(OutFile, "ERROR");
			break;

//      Pentium II instructions

		case STARS_NN_sysenter:            // Fast Transition to System Call Entry Point
		case STARS_NN_sysexit:             // Fast Transition from System Call Entry Point
			SMP_fprintf(OutFile, "ERROR");
			break;

//      3DNow! instructions

		case STARS_NN_pavgusb:             // Packed 8-bit Unsigned Integer Averaging
		case STARS_NN_pfadd:               // Packed Floating-Point Addition
		case STARS_NN_pfsub:               // Packed Floating-Point Subtraction
		case STARS_NN_pfsubr:              // Packed Floating-Point Reverse Subtraction
		case STARS_NN_pfacc:               // Packed Floating-Point Accumulate
		case STARS_NN_pfcmpge:             // Packed Floating-Point Comparison, Greater or Equal
		case STARS_NN_pfcmpgt:             // Packed Floating-Point Comparison, Greater
		case STARS_NN_pfcmpeq:             // Packed Floating-Point Comparison, Equal
		case STARS_NN_pfmin:               // Packed Floating-Point Minimum
		case STARS_NN_pfmax:               // Packed Floating-Point Maximum
		case STARS_NN_pi2fd:               // Packed 32-bit Integer to Floating-Point
		case STARS_NN_pf2id:               // Packed Floating-Point to 32-bit Integer
		case STARS_NN_pfrcp:               // Packed Floating-Point Reciprocal Approximation
		case STARS_NN_pfrsqrt:             // Packed Floating-Point Reciprocal Square Root Approximation
		case STARS_NN_pfmul:               // Packed Floating-Point Multiplication
		case STARS_NN_pfrcpit1:            // Packed Floating-Point Reciprocal First Iteration Step
		case STARS_NN_pfrsqit1:            // Packed Floating-Point Reciprocal Square Root First Iteration Step
		case STARS_NN_pfrcpit2:            // Packed Floating-Point Reciprocal Second Iteration Step
		case STARS_NN_pmulhrw:             // Packed Floating-Point 16-bit Integer Multiply with rounding
		case STARS_NN_femms:               // Faster entry/exit of the MMX or floating-point state
		case STARS_NN_prefetch:            // Prefetch at least a 32-byte line into L1 data cache
		case STARS_NN_prefetchw:           // Prefetch processor cache line into L1 data cache (mark as modified)
			SMP_fprintf(OutFile, "ERROR");
			break;


//      Pentium III instructions

		case STARS_NN_addps:               // Packed Single-FP Add
		case STARS_NN_addss:               // Scalar Single-FP Add
		case STARS_NN_andnps:              // Bitwise Logical And Not for Single-FP
		case STARS_NN_andps:               // Bitwise Logical And for Single-FP
		case STARS_NN_cmpps:               // Packed Single-FP Compare
		case STARS_NN_cmpss:               // Scalar Single-FP Compare
		case STARS_NN_comiss:              // Scalar Ordered Single-FP Compare and Set EFLAGS
		case STARS_NN_cvtpi2ps:            // Packed signed INT32 to Packed Single-FP conversion
		case STARS_NN_cvtps2pi:            // Packed Single-FP to Packed INT32 conversion
		case STARS_NN_cvtsi2ss:            // Scalar signed INT32 to Single-FP conversion
		case STARS_NN_cvtss2si:            // Scalar Single-FP to signed INT32 conversion
		case STARS_NN_cvttps2pi:           // Packed Single-FP to Packed INT32 conversion (truncate)
		case STARS_NN_cvttss2si:           // Scalar Single-FP to signed INT32 conversion (truncate)
		case STARS_NN_divps:               // Packed Single-FP Divide
		case STARS_NN_divss:               // Scalar Single-FP Divide
		case STARS_NN_ldmxcsr:             // Load Streaming SIMD Extensions Technology Control/Status Register
		case STARS_NN_maxps:               // Packed Single-FP Maximum
		case STARS_NN_maxss:               // Scalar Single-FP Maximum
		case STARS_NN_minps:               // Packed Single-FP Minimum
		case STARS_NN_minss:               // Scalar Single-FP Minimum
		case STARS_NN_movaps:              // Move Aligned Four Packed Single-FP
		case STARS_NN_movhlps:             // Move High to Low Packed Single-FP
		case STARS_NN_movhps:              // Move High Packed Single-FP
		case STARS_NN_movlhps:             // Move Low to High Packed Single-FP
		case STARS_NN_movlps:              // Move Low Packed Single-FP
		case STARS_NN_movmskps:            // Move Mask to Register
		case STARS_NN_movss:               // Move Scalar Single-FP
		case STARS_NN_movups:              // Move Unaligned Four Packed Single-FP
		case STARS_NN_mulps:               // Packed Single-FP Multiply
		case STARS_NN_mulss:               // Scalar Single-FP Multiply
		case STARS_NN_orps:                // Bitwise Logical OR for Single-FP Data
		case STARS_NN_rcpps:               // Packed Single-FP Reciprocal
		case STARS_NN_rcpss:               // Scalar Single-FP Reciprocal
		case STARS_NN_rsqrtps:             // Packed Single-FP Square Root Reciprocal
		case STARS_NN_rsqrtss:             // Scalar Single-FP Square Root Reciprocal
		case STARS_NN_shufps:              // Shuffle Single-FP
		case STARS_NN_sqrtps:              // Packed Single-FP Square Root
		case STARS_NN_sqrtss:              // Scalar Single-FP Square Root
		case STARS_NN_stmxcsr:             // Store Streaming SIMD Extensions Technology Control/Status Register
		case STARS_NN_subps:               // Packed Single-FP Subtract
		case STARS_NN_subss:               // Scalar Single-FP Subtract
		case STARS_NN_ucomiss:             // Scalar Unordered Single-FP Compare and Set EFLAGS
		case STARS_NN_unpckhps:            // Unpack High Packed Single-FP Data
		case STARS_NN_unpcklps:            // Unpack Low Packed Single-FP Data
		case STARS_NN_xorps:               // Bitwise Logical XOR for Single-FP Data
		case STARS_NN_pavgb:               // Packed Average (Byte)
		case STARS_NN_pavgw:               // Packed Average (Word)
		case STARS_NN_pextrw:              // Extract Word
		case STARS_NN_pinsrw:              // Insert Word
		case STARS_NN_pmaxsw:              // Packed Signed Integer Word Maximum
		case STARS_NN_pmaxub:              // Packed Unsigned Integer Byte Maximum
		case STARS_NN_pminsw:              // Packed Signed Integer Word Minimum
		case STARS_NN_pminub:              // Packed Unsigned Integer Byte Minimum
		case STARS_NN_pmovmskb:            // Move Byte Mask to Integer
		case STARS_NN_pmulhuw:             // Packed Multiply High Unsigned
		case STARS_NN_psadbw:              // Packed Sum of Absolute Differences
		case STARS_NN_pshufw:              // Packed Shuffle Word
		case STARS_NN_maskmovq:            // Byte Mask write
		case STARS_NN_movntps:             // Move Aligned Four Packed Single-FP Non Temporal
		case STARS_NN_movntq:              // Move 64 Bits Non Temporal
		case STARS_NN_prefetcht0:          // Prefetch to all cache levels
		case STARS_NN_prefetcht1:          // Prefetch to all cache levels
		case STARS_NN_prefetcht2:          // Prefetch to L2 cache
		case STARS_NN_prefetchnta:         // Prefetch to L1 cache
		case STARS_NN_sfence:              // Store Fence
			SMP_fprintf(OutFile, "ERROR");
			break;

// Pentium III Pseudo instructions

		case STARS_NN_cmpeqps:             // Packed Single-FP Compare EQ
		case STARS_NN_cmpltps:             // Packed Single-FP Compare LT
		case STARS_NN_cmpleps:             // Packed Single-FP Compare LE
		case STARS_NN_cmpunordps:          // Packed Single-FP Compare UNORD
		case STARS_NN_cmpneqps:            // Packed Single-FP Compare NOT EQ
		case STARS_NN_cmpnltps:            // Packed Single-FP Compare NOT LT
		case STARS_NN_cmpnleps:            // Packed Single-FP Compare NOT LE
		case STARS_NN_cmpordps:            // Packed Single-FP Compare ORDERED
		case STARS_NN_cmpeqss:             // Scalar Single-FP Compare EQ
		case STARS_NN_cmpltss:             // Scalar Single-FP Compare LT
		case STARS_NN_cmpless:             // Scalar Single-FP Compare LE
		case STARS_NN_cmpunordss:          // Scalar Single-FP Compare UNORD
		case STARS_NN_cmpneqss:            // Scalar Single-FP Compare NOT EQ
		case STARS_NN_cmpnltss:            // Scalar Single-FP Compare NOT LT
		case STARS_NN_cmpnless:            // Scalar Single-FP Compare NOT LE
		case STARS_NN_cmpordss:            // Scalar Single-FP Compare ORDERED
			SMP_fprintf(OutFile, "ERROR");
			break;

// AMD K7 instructions

		case STARS_NN_pf2iw:               // Packed Floating-Point to Integer with Sign Extend
		case STARS_NN_pfnacc:              // Packed Floating-Point Negative Accumulate
		case STARS_NN_pfpnacc:             // Packed Floating-Point Mixed Positive-Negative Accumulate
		case STARS_NN_pi2fw:               // Packed 16-bit Integer to Floating-Point
		case STARS_NN_pswapd:              // Packed Swap Double Word
			SMP_fprintf(OutFile, "ERROR");
			break;

// Undocumented FP instructions (thanks to norbert.juffa@adm.com)

		case STARS_NN_fstp1:               // Alias of Store Real and Pop
		case STARS_NN_fcom2:               // Alias of Compare Real
		case STARS_NN_fcomp3:              // Alias of Compare Real and Pop
		case STARS_NN_fxch4:               // Alias of Exchange Registers
		case STARS_NN_fcomp5:              // Alias of Compare Real and Pop
		case STARS_NN_ffreep:              // Free Register and Pop
		case STARS_NN_fxch7:               // Alias of Exchange Registers
		case STARS_NN_fstp8:               // Alias of Store Real and Pop
		case STARS_NN_fstp9:               // Alias of Store Real and Pop
			SMP_fprintf(OutFile, "ERROR");
			break;

// Pentium 4 instructions

		case STARS_NN_addpd:               // Add Packed Double-Precision Floating-Point Values
		case STARS_NN_addsd:               // Add Scalar Double-Precision Floating-Point Values
		case STARS_NN_andnpd:              // Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values
		case STARS_NN_andpd:               // Bitwise Logical AND of Packed Double-Precision Floating-Point Values
		case STARS_NN_clflush:             // Flush Cache Line
		case STARS_NN_cmppd:               // Compare Packed Double-Precision Floating-Point Values
		case STARS_NN_cmpsd:               // Compare Scalar Double-Precision Floating-Point Values
		case STARS_NN_comisd:              // Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
		case STARS_NN_cvtdq2pd:            // Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values
		case STARS_NN_cvtdq2ps:            // Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
		case STARS_NN_cvtpd2dq:            // Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
		case STARS_NN_cvtpd2pi:            // Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
		case STARS_NN_cvtpd2ps:            // Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values
		case STARS_NN_cvtpi2pd:            // Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
		case STARS_NN_cvtps2dq:            // Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
		case STARS_NN_cvtps2pd:            // Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values
		case STARS_NN_cvtsd2si:            // Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer
		case STARS_NN_cvtsd2ss:            // Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value
		case STARS_NN_cvtsi2sd:            // Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value
		case STARS_NN_cvtss2sd:            // Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value
		case STARS_NN_cvttpd2dq:           // Convert With Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
		case STARS_NN_cvttpd2pi:           // Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
		case STARS_NN_cvttps2dq:           // Convert With Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
		case STARS_NN_cvttsd2si:           // Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer
		case STARS_NN_divpd:               // Divide Packed Double-Precision Floating-Point Values
		case STARS_NN_divsd:               // Divide Scalar Double-Precision Floating-Point Values
		case STARS_NN_lfence:              // Load Fence
		case STARS_NN_maskmovdqu:          // Store Selected Bytes of Double Quadword
		case STARS_NN_maxpd:               // Return Maximum Packed Double-Precision Floating-Point Values
		case STARS_NN_maxsd:               // Return Maximum Scalar Double-Precision Floating-Point Value
		case STARS_NN_mfence:              // Memory Fence
		case STARS_NN_minpd:               // Return Minimum Packed Double-Precision Floating-Point Values
		case STARS_NN_minsd:               // Return Minimum Scalar Double-Precision Floating-Point Value
		case STARS_NN_movapd:              // Move Aligned Packed Double-Precision Floating-Point Values
		case STARS_NN_movdq2q:             // Move Quadword from XMM to MMX Register
		case STARS_NN_movdqa:              // Move Aligned Double Quadword
		case STARS_NN_movdqu:              // Move Unaligned Double Quadword
		case STARS_NN_movhpd:              // Move High Packed Double-Precision Floating-Point Values
		case STARS_NN_movlpd:              // Move Low Packed Double-Precision Floating-Point Values
		case STARS_NN_movmskpd:            // Extract Packed Double-Precision Floating-Point Sign Mask
		case STARS_NN_movntdq:             // Store Double Quadword Using Non-Temporal Hint
		case STARS_NN_movnti:              // Store Doubleword Using Non-Temporal Hint
		case STARS_NN_movntpd:             // Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint
		case STARS_NN_movq2dq:             // Move Quadword from MMX to XMM Register
		case STARS_NN_movsd:               // Move Scalar Double-Precision Floating-Point Values
		case STARS_NN_movupd:              // Move Unaligned Packed Double-Precision Floating-Point Values
		case STARS_NN_mulpd:               // Multiply Packed Double-Precision Floating-Point Values
		case STARS_NN_mulsd:               // Multiply Scalar Double-Precision Floating-Point Values
		case STARS_NN_orpd:                // Bitwise Logical OR of Double-Precision Floating-Point Values
		case STARS_NN_paddq:               // Add Packed Quadword Integers
		case STARS_NN_pause:               // Spin Loop Hint
		case STARS_NN_pmuludq:             // Multiply Packed Unsigned Doubleword Integers
		case STARS_NN_pshufd:              // Shuffle Packed Doublewords
		case STARS_NN_pshufhw:             // Shuffle Packed High Words
		case STARS_NN_pshuflw:             // Shuffle Packed Low Words
		case STARS_NN_pslldq:              // Shift Double Quadword Left Logical
		case STARS_NN_psrldq:              // Shift Double Quadword Right Logical
		case STARS_NN_psubq:               // Subtract Packed Quadword Integers
		case STARS_NN_punpckhqdq:          // Unpack High Data
		case STARS_NN_punpcklqdq:          // Unpack Low Data
		case STARS_NN_shufpd:              // Shuffle Packed Double-Precision Floating-Point Values
		case STARS_NN_sqrtpd:              // Compute Square Roots of Packed Double-Precision Floating-Point Values
		case STARS_NN_sqrtsd:              // Compute Square Rootof Scalar Double-Precision Floating-Point Value
		case STARS_NN_subpd:               // Subtract Packed Double-Precision Floating-Point Values
		case STARS_NN_subsd:               // Subtract Scalar Double-Precision Floating-Point Values
		case STARS_NN_ucomisd:             // Unordered Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
		case STARS_NN_unpckhpd:            // Unpack and Interleave High Packed Double-Precision Floating-Point Values
		case STARS_NN_unpcklpd:            // Unpack and Interleave Low Packed Double-Precision Floating-Point Values
		case STARS_NN_xorpd:               // Bitwise Logical OR of Double-Precision Floating-Point Values
			SMP_fprintf(OutFile, "ERROR");
			break;

// AMD syscall/sysret instructions

		case STARS_NN_syscall:             // Low latency system call
		case STARS_NN_sysret:              // Return from system call
			SMP_fprintf(OutFile, "ERROR");
			break;

// AMD64 instructions

		case STARS_NN_swapgs:              // Exchange GS base with KernelGSBase MSR
			SMP_fprintf(OutFile, "ERROR");
			break;

// New Pentium instructions (SSE3)

		case STARS_NN_movddup:             // Move One Double-FP and Duplicate
		case STARS_NN_movshdup:            // Move Packed Single-FP High and Duplicate
		case STARS_NN_movsldup:            // Move Packed Single-FP Low and Duplicate
			SMP_fprintf(OutFile, "ERROR");
			break;

// Missing AMD64 instructions

		case STARS_NN_movsxd:              // Move with Sign-Extend Doubleword
		case STARS_NN_cmpxchg16b:          // Compare and Exchange 16 Bytes
			SMP_fprintf(OutFile, "ERROR");
			break;

// SSE3 instructions

		case STARS_NN_addsubpd:            // Add /Sub packed DP FP numbers
		case STARS_NN_addsubps:            // Add /Sub packed SP FP numbers
		case STARS_NN_haddpd:              // Add horizontally packed DP FP numbers
		case STARS_NN_haddps:              // Add horizontally packed SP FP numbers
		case STARS_NN_hsubpd:              // Sub horizontally packed DP FP numbers
		case STARS_NN_hsubps:              // Sub horizontally packed SP FP numbers
		case STARS_NN_monitor:             // Set up a linear address range to be monitored by hardware
		case STARS_NN_mwait:               // Wait until write-back store performed within the range specified by the MONITOR instruction
		case STARS_NN_fisttp:              // Store ST in intXX (chop) and pop
		case STARS_NN_lddqu:               // Load unaligned integer 128-bit
			SMP_fprintf(OutFile, "ERROR");
			break;

// SSSE3 instructions

		case STARS_NN_psignb:              // Packed SIGN Byte
		case STARS_NN_psignw:              // Packed SIGN Word
		case STARS_NN_psignd:              // Packed SIGN Doubleword
		case STARS_NN_pshufb:              // Packed Shuffle Bytes
		case STARS_NN_pmulhrsw:            // Packed Multiply High with Round and Scale
		case STARS_NN_pmaddubsw:           // Multiply and Add Packed Signed and Unsigned Bytes
		case STARS_NN_phsubsw:             // Packed Horizontal Subtract and Saturate
		case STARS_NN_phaddsw:             // Packed Horizontal Add and Saturate
		case STARS_NN_phaddw:              // Packed Horizontal Add Word
		case STARS_NN_phaddd:              // Packed Horizontal Add Doubleword
		case STARS_NN_phsubw:              // Packed Horizontal Subtract Word
		case STARS_NN_phsubd:              // Packed Horizontal Subtract Doubleword
		case STARS_NN_palignr:             // Packed Align Right
		case STARS_NN_pabsb:               // Packed Absolute Value Byte
		case STARS_NN_pabsw:               // Packed Absolute Value Word
		case STARS_NN_pabsd:               // Packed Absolute Value Doubleword
			SMP_fprintf(OutFile, "ERROR");
			break;

// VMX instructions

		case STARS_NN_vmcall:              // Call to VM Monitor
		case STARS_NN_vmclear:             // Clear Virtual Machine Control Structure
		case STARS_NN_vmlaunch:            // Launch Virtual Machine
		case STARS_NN_vmresume:            // Resume Virtual Machine
		case STARS_NN_vmptrld:             // Load Pointer to Virtual Machine Control Structure
		case STARS_NN_vmptrst:             // Store Pointer to Virtual Machine Control Structure
		case STARS_NN_vmread:              // Read Field from Virtual Machine Control Structure
		case STARS_NN_vmwrite:             // Write Field from Virtual Machine Control Structure
		case STARS_NN_vmxoff:              // Leave VMX Operation
		case STARS_NN_vmxon:               // Enter VMX Operation
			SMP_fprintf(OutFile, "ERROR");
			break;

// Undefined Instruction

		case STARS_NN_ud2:                 // Undefined Instruction
			SMP_fprintf(OutFile, "ERROR");
			break;

// Added with x86-64

		case STARS_NN_rdtscp:              // Read Time-Stamp Counter and Processor ID
			SMP_fprintf(OutFile, "ERROR");
			break;

// Geode LX 3DNow! extensions

		case STARS_NN_pfrcpv:              // Reciprocal Approximation for a Pair of 32-bit Floats
		case STARS_NN_pfrsqrtv:            // Reciprocal Square Root Approximation for a Pair of 32-bit Floats
			SMP_fprintf(OutFile, "ERROR");
			break;

// SSE2 pseudoinstructions

		case STARS_NN_cmpeqpd:             // Packed Double-FP Compare EQ
		case STARS_NN_cmpltpd:             // Packed Double-FP Compare LT
		case STARS_NN_cmplepd:             // Packed Double-FP Compare LE
		case STARS_NN_cmpunordpd:          // Packed Double-FP Compare UNORD
		case STARS_NN_cmpneqpd:            // Packed Double-FP Compare NOT EQ
		case STARS_NN_cmpnltpd:            // Packed Double-FP Compare NOT LT
		case STARS_NN_cmpnlepd:            // Packed Double-FP Compare NOT LE
		case STARS_NN_cmpordpd:            // Packed Double-FP Compare ORDERED
		case STARS_NN_cmpeqsd:             // Scalar Double-FP Compare EQ
		case STARS_NN_cmpltsd:             // Scalar Double-FP Compare LT
		case STARS_NN_cmplesd:             // Scalar Double-FP Compare LE
		case STARS_NN_cmpunordsd:          // Scalar Double-FP Compare UNORD
		case STARS_NN_cmpneqsd:            // Scalar Double-FP Compare NOT EQ
		case STARS_NN_cmpnltsd:            // Scalar Double-FP Compare NOT LT
		case STARS_NN_cmpnlesd:            // Scalar Double-FP Compare NOT LE
		case STARS_NN_cmpordsd:            // Scalar Double-FP Compare ORDERED
			SMP_fprintf(OutFile, "ERROR");
			break;

// SSSE4.1 instructions

		case STARS_NN_blendpd:              // Blend Packed Double Precision Floating-Point Values
		case STARS_NN_blendps:              // Blend Packed Single Precision Floating-Point Values
		case STARS_NN_blendvpd:             // Variable Blend Packed Double Precision Floating-Point Values
		case STARS_NN_blendvps:             // Variable Blend Packed Single Precision Floating-Point Values
		case STARS_NN_dppd:                 // Dot Product of Packed Double Precision Floating-Point Values
		case STARS_NN_dpps:                 // Dot Product of Packed Single Precision Floating-Point Values
		case STARS_NN_extractps:            // Extract Packed Single Precision Floating-Point Value
		case STARS_NN_insertps:             // Insert Packed Single Precision Floating-Point Value
		case STARS_NN_movntdqa:             // Load Double Quadword Non-Temporal Aligned Hint
		case STARS_NN_mpsadbw:              // Compute Multiple Packed Sums of Absolute Difference
		case STARS_NN_packusdw:             // Pack with Unsigned Saturation
		case STARS_NN_pblendvb:             // Variable Blend Packed Bytes
		case STARS_NN_pblendw:              // Blend Packed Words
		case STARS_NN_pcmpeqq:              // Compare Packed Qword Data for Equal
		case STARS_NN_pextrb:               // Extract Byte
		case STARS_NN_pextrd:               // Extract Dword
		case STARS_NN_pextrq:               // Extract Qword
		case STARS_NN_phminposuw:           // Packed Horizontal Word Minimum
		case STARS_NN_pinsrb:               // Insert Byte
		case STARS_NN_pinsrd:               // Insert Dword
		case STARS_NN_pinsrq:               // Insert Qword
		case STARS_NN_pmaxsb:               // Maximum of Packed Signed Byte Integers
		case STARS_NN_pmaxsd:               // Maximum of Packed Signed Dword Integers
		case STARS_NN_pmaxud:               // Maximum of Packed Unsigned Dword Integers
		case STARS_NN_pmaxuw:               // Maximum of Packed Word Integers
		case STARS_NN_pminsb:               // Minimum of Packed Signed Byte Integers
		case STARS_NN_pminsd:               // Minimum of Packed Signed Dword Integers
		case STARS_NN_pminud:               // Minimum of Packed Unsigned Dword Integers
		case STARS_NN_pminuw:               // Minimum of Packed Word Integers
		case STARS_NN_pmovsxbw:             // Packed Move with Sign Extend
		case STARS_NN_pmovsxbd:             // Packed Move with Sign Extend
		case STARS_NN_pmovsxbq:             // Packed Move with Sign Extend
		case STARS_NN_pmovsxwd:             // Packed Move with Sign Extend
		case STARS_NN_pmovsxwq:             // Packed Move with Sign Extend
		case STARS_NN_pmovsxdq:             // Packed Move with Sign Extend
		case STARS_NN_pmovzxbw:             // Packed Move with Zero Extend
		case STARS_NN_pmovzxbd:             // Packed Move with Zero Extend
		case STARS_NN_pmovzxbq:             // Packed Move with Zero Extend
		case STARS_NN_pmovzxwd:             // Packed Move with Zero Extend
		case STARS_NN_pmovzxwq:             // Packed Move with Zero Extend
		case STARS_NN_pmovzxdq:             // Packed Move with Zero Extend
		case STARS_NN_pmuldq:               // Multiply Packed Signed Dword Integers
		case STARS_NN_pmulld:               // Multiply Packed Signed Dword Integers and Store Low Result
		case STARS_NN_ptest:                // Logical Compare
		case STARS_NN_roundpd:              // Round Packed Double Precision Floating-Point Values
		case STARS_NN_roundps:              // Round Packed Single Precision Floating-Point Values
		case STARS_NN_roundsd:              // Round Scalar Double Precision Floating-Point Values
		case STARS_NN_roundss:              // Round Scalar Single Precision Floating-Point Values
			SMP_fprintf(OutFile, "ERROR");
			break;

// SSSE4.2 instructions

		case STARS_NN_crc32:                // Accumulate CRC32 Value
		case STARS_NN_pcmpestri:            // Packed Compare Explicit Length Strings: Return Index
		case STARS_NN_pcmpestrm:            // Packed Compare Explicit Length Strings: Return Mask
		case STARS_NN_pcmpistri:            // Packed Compare Implicit Length Strings: Return Index
		case STARS_NN_pcmpistrm:            // Packed Compare Implicit Length Strings: Return Mask
		case STARS_NN_pcmpgtq:              // Compare Packed Data for Greater Than
		case STARS_NN_popcnt:               // Return the Count of Number of Bits Set to 1
			SMP_fprintf(OutFile, "ERROR");
			break;

// AMD SSE4a instructions

		case STARS_NN_extrq:                // Extract Field From Register
		case STARS_NN_insertq:              // Insert Field
		case STARS_NN_movntsd:              // Move Non-Temporal Scalar Double-Precision Floating-Point
		case STARS_NN_movntss:              // Move Non-Temporal Scalar Single-Precision Floating-Point
		case STARS_NN_lzcnt:                // Leading Zero Count
			SMP_fprintf(OutFile, "ERROR");
			break;

// xsave/xrstor instructions

		case STARS_NN_xgetbv:               // Get Value of Extended Control Register
		case STARS_NN_xrstor:               // Restore Processor Extended States
		case STARS_NN_xsave:                // Save Processor Extended States
		case STARS_NN_xsetbv:               // Set Value of Extended Control Register
			SMP_fprintf(OutFile, "ERROR");
			break;

// Intel Safer Mode Extensions (SMX)

		case STARS_NN_getsec:               // Safer Mode Extensions (SMX) Instruction
			SMP_fprintf(OutFile, "ERROR");
			break;

// AMD-V Virtualization ISA Extension

		case STARS_NN_clgi:                 // Clear Global Interrupt Flag
		case STARS_NN_invlpga:              // Invalidate TLB Entry in a Specified ASID
		case STARS_NN_skinit:               // Secure Init and Jump with Attestation
		case STARS_NN_stgi:                 // Set Global Interrupt Flag
		case STARS_NN_vmexit:               // Stop Executing Guest: Begin Executing Host
		case STARS_NN_vmload:               // Load State from VMCB
		case STARS_NN_vmmcall:              // Call VMM
		case STARS_NN_vmrun:                // Run Virtual Machine
		case STARS_NN_vmsave:               // Save State to VMCB