EXTRA_DIST += modules/arch/x86/tests/cmpxchg.hex
EXTRA_DIST += modules/arch/x86/tests/cpubasic-err.asm
EXTRA_DIST += modules/arch/x86/tests/cpubasic-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/cyrix.asm
+EXTRA_DIST += modules/arch/x86/tests/cyrix.hex
EXTRA_DIST += modules/arch/x86/tests/div-err.asm
EXTRA_DIST += modules/arch/x86/tests/div-err.errwarn
EXTRA_DIST += modules/arch/x86/tests/ea-nonzero.asm
--- /dev/null
+[bits 32]
+ svdc tword [2*eax+esi+12345678h],cs
+ svdc tword [2*eax+esi+12345678h],ds
+ svdc [2*eax+esi+12345678h],es
+
+ rsdc cs,tword [2*eax+esi+12345678h]
+ rsdc ds,tword [2*eax+esi+12345678h]
+ rsdc es,[2*eax+esi+12345678h]
+
+ wrshr eax
+ wrshr dword [4*edx+esi+12345678h]
+ wrshr [4*edx+esi+12345678h]
+
+ rdshr eax
+ rdshr dword [4*edx+esi+12345678h]
+ rdshr [4*edx+esi+12345678h]
+
};
/* Cyrix extensions */
+static const x86_insn_info rdwrshr_insn[] = {
+ { CPU_486|CPU_Cyrix|CPU_SMM, MOD_Op1Add, 0, 0, 0, 2, {0x0F, 0x36, 0}, 0, 1,
+ {OPT_RM|OPS_32|OPS_Relaxed|OPA_EA, 0} }
+};
static const x86_insn_info rsdc_insn[] = {
{ CPU_486|CPU_Cyrix|CPU_SMM, 0, 0, 0, 0, 2, {0x0F, 0x79, 0}, 0, 2,
- {OPT_SegReg|OPS_16|OPA_Spare, OPT_Mem|OPS_80|OPS_Relaxed|OPA_EA, 0} }
+ {OPT_SegReg|OPS_16|OPS_Relaxed|OPA_Spare,
+ OPT_Mem|OPS_80|OPS_Relaxed|OPA_EA, 0} }
};
static const x86_insn_info cyrixsmm_insn[] = {
{ CPU_486|CPU_Cyrix|CPU_SMM, MOD_Op1Add, 0, 0, 0, 2, {0x0F, 0x00, 0}, 0, 1,
};
static const x86_insn_info svdc_insn[] = {
{ CPU_486|CPU_Cyrix|CPU_SMM, 0, 0, 0, 0, 2, {0x0F, 0x78, 0}, 0, 2,
- {OPT_Mem|OPS_80|OPS_Relaxed|OPA_EA, OPT_SegReg|OPS_16|OPA_Spare, 0} }
+ {OPT_Mem|OPS_80|OPS_Relaxed|OPA_EA,
+ OPT_SegReg|OPS_16|OPS_Relaxed|OPA_Spare, 0} }
};
/* Obsolete/undocumented instructions */
INSN - pmvzb NONE cyrixmmx 0x58 CPU_Cyrix|CPU_MMX
INSN - psubsiw NONE cyrixmmx 0x55 CPU_Cyrix|CPU_MMX
# Cyrix extensions
-INSN - rdshr NONE twobyte 0x0F36 CPU_686|CPU_Cyrix|CPU_SMM
+INSN - rdshr NONE rdwrshr 0x00 CPU_686|CPU_Cyrix|CPU_SMM
INSN - rsdc NONE rsdc 0 CPU_486|CPU_Cyrix|CPU_SMM
INSN - rsldt NONE cyrixsmm 0x7B CPU_486|CPU_Cyrix|CPU_SMM
INSN - rsts NONE cyrixsmm 0x7D CPU_486|CPU_Cyrix|CPU_SMM
INSN - svts NONE cyrixsmm 0x7C CPU_486|CPU_Cyrix|CPU_SMM
INSN - smint NONE twobyte 0x0F38 CPU_686|CPU_Cyrix
INSN - smintold NONE twobyte 0x0F7E CPU_486|CPU_Cyrix|CPU_Obs
-INSN - wrshr NONE twobyte 0x0F37 CPU_686|CPU_Cyrix|CPU_SMM
+INSN - wrshr NONE rdwrshr 0x01 CPU_686|CPU_Cyrix|CPU_SMM
# Obsolete/undocumented instructions
INSN - fsetpm NONE twobyte 0xDBE4 CPU_286|CPU_FPU|CPU_Obs
INSN - ibts NONE ibts 0 CPU_386|CPU_Undoc|CPU_Obs