From 4d283f685fa9b707c8d751f86baf40345b8e2522 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Sat, 22 Sep 2007 19:20:56 -0700 Subject: [PATCH] Implement Centaur's XCRYPT instructions Implement Centaur's XCRYPT instruction (RFE 825529) --- insns.dat | 20 +++++++++++++------- insns.pl | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/insns.dat b/insns.dat index 24bc003..f32ef7d 100644 --- a/insns.dat +++ b/insns.dat @@ -272,12 +272,12 @@ CMPXCHG mem,reg32 \321\300\2\x0F\xB1\101 PENT,SM CMPXCHG reg32,reg32 \321\2\x0F\xB1\101 PENT CMPXCHG mem,reg64 \324\300\2\x0F\xB1\101 X64,SM CMPXCHG reg64,reg64 \324\2\x0F\xB1\101 X64 -CMPXCHG486 mem,reg8 \300\2\x0F\xA6\101 486,SM,UNDOC -CMPXCHG486 reg8,reg8 \2\x0F\xA6\101 486,UNDOC -CMPXCHG486 mem,reg16 \320\300\2\x0F\xA7\101 486,SM,UNDOC -CMPXCHG486 reg16,reg16 \320\2\x0F\xA7\101 486,UNDOC -CMPXCHG486 mem,reg32 \321\300\2\x0F\xA7\101 486,SM,UNDOC -CMPXCHG486 reg32,reg32 \321\2\x0F\xA7\101 486,UNDOC +CMPXCHG486 mem,reg8 \300\2\x0F\xA6\101 486,SM,UNDOC,ND +CMPXCHG486 reg8,reg8 \2\x0F\xA6\101 486,UNDOC,ND +CMPXCHG486 mem,reg16 \320\300\2\x0F\xA7\101 486,SM,UNDOC,ND +CMPXCHG486 reg16,reg16 \320\2\x0F\xA7\101 486,UNDOC,ND +CMPXCHG486 mem,reg32 \321\300\2\x0F\xA7\101 486,SM,UNDOC,ND +CMPXCHG486 reg32,reg32 \321\2\x0F\xA7\101 486,UNDOC,ND CMPXCHG8B mem \300\2\x0F\xC7\201 PENT CMPXCHG16B mem \324\300\2\x0F\xC7\201 X64 CPUID void \2\x0F\xA2 PENT @@ -1377,7 +1377,6 @@ XOR rm64,imm \324\300\155\1\x81\206\151 X64,SM XOR mem,imm8 \300\1\x80\206\21 8086,SM XOR mem,imm16 \320\300\145\1\x81\206\141 8086,SM XOR mem,imm32 \321\300\155\1\x81\206\151 386,SM -XSTORE void \3\x0F\xA7\xC0 P6,CYRIX CMOVcc reg16,mem \320\301\1\x0F\330\x40\110 P6,SM CMOVcc reg16,reg16 \320\1\x0F\330\x40\110 P6 CMOVcc reg32,mem \321\301\1\x0F\330\x40\110 P6,SM @@ -2217,3 +2216,10 @@ GETSEC void \2\x0F\x37 KATMAI ; Geode (Cyrix) 3DNow! additions PFRCP mmxreg,mmxrm \301\2\x0F\x0F\110\1\x86 PENT,3DNOW,SM,CYRIX PFRSQRT mmxreg,mmxrm \301\2\x0F\x0F\110\1\x87 PENT,3DNOW,SM,CYRIX + +; VIA (Centaur) security instructions +XSTORE void \3\x0F\xA7\xC0 PENT,CYRIX +XCRYPTECB void \333\3\x0F\xA7\xC8 PENT,CYRIX +XCRYPTCBC void \333\3\x0F\xA7\xD0 PENT,CYRIX +XCRYPTCFB void \333\3\x0F\xA7\xE0 PENT,CYRIX +XCRYPTOFB void \333\3\x0F\xA7\xE8 PENT,CYRIX diff --git a/insns.pl b/insns.pl index 356c183..dc21239 100644 --- a/insns.pl +++ b/insns.pl @@ -9,7 +9,7 @@ # Opcode prefixes which need their own opcode tables # LONGER PREFIXES FIRST! -@disasm_prefixes = qw(0F0F 0F24 0F25 0F38 0F3A 0F7A 0F); +@disasm_prefixes = qw(0F0F 0F24 0F25 0F38 0F3A 0F7A 0FA7 0F); print STDERR "Reading insns.dat...\n"; -- 2.7.4