From 75f1011bbf5845fa7aa329d115e7a6685102be4e Mon Sep 17 00:00:00 2001
From: Michal Ludvig <mludvig@suse.cz>
Date: Fri, 12 Mar 2004 10:14:29 +0000
Subject: [PATCH] 2004-03-12  Michal Ludvig  <mludvig@suse.cz>

	* gas/config/tc-i386.c (output_insn): Handle PadLock instructions.
	* gas/config/tc-i386.h (CpuPadLock): New define.
	(CpuUnknownFlags): Added CpuPadLock.
	* include/opcode/i386.h (i386_optab): Added xstore/xcrypt insns.
	* opcodes/i386-dis.c (PADLOCK_SPECIAL, PADLOCK_0): New defines.
	(dis386_twobyte): Opcode 0xa7 is PADLOCK_0.
	(padlock_table): New struct with PadLock instructions.
	(print_insn): Handle PADLOCK_SPECIAL.
---
 include/opcode/ChangeLog | 4 ++++
 include/opcode/i386.h    | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 438c6d8ad..a0b33eff6 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,7 @@
+2004-03-12  Michal Ludvig  <mludvig@suse.cz>
+
+	* i386.h (i386_optab): Added xstore/xcrypt insns.
+
 2004-02-09  Anil Paranjpe  <anilp1@KPITCummins.com>
 
 	* h8300.h (32bit ldc/stc): Add relaxing support.
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
index cb3a99a4e..27ed76d0b 100644
--- a/include/opcode/i386.h
+++ b/include/opcode/i386.h
@@ -1361,6 +1361,13 @@ static const template i386_optab[] = {
 {"sysret",   0, 0x0f07,    X, CpuK6,	lq_Suf|DefaultSize,	{ 0, 0, 0} },
 {"swapgs",   0, 0x0f01, 0xf8, Cpu64,	NoSuf|ImmExt,		{ 0, 0, 0} },
 
+/* VIA PadLock extensions. */
+{"xstorerng", 0, 0x0fa7c0, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },
+{"xcryptecb", 0, 0xf30fa7c8, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },
+{"xcryptcbc", 0, 0xf30fa7d0, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },
+{"xcryptcfb", 0, 0xf30fa7e0, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },
+{"xcryptofb", 0, 0xf30fa7e8, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },
+
 /* sentinel */
 {NULL, 0, 0, 0, 0, 0, { 0, 0, 0} }
 };