public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: binutils@sourceware.org
Cc: mludvig@suse.cz
Subject: [RFC/RFA] Proper mnemonics for VIA PadLock (i386) instructions
Date: Tue, 12 Apr 2005 19:15:00 -0000	[thread overview]
Message-ID: <200504121915.j3CJFO0P017574@elgar.sibelius.xs4all.nl> (raw)

This one is a bit nasty.  The OpenBSD in-tree gas has had support for
the VIA PadLock instructions for a while.  Unfortunately that support
was never submitted for inclusion into the FSF tree.  A little over a
year ago Michal Ludvig committed support for these instructions.
Unfortunately he used mnemonics that differ from the instruction names
as used in the VIA documentation; the VIA names include a hyphen that
Michal left out.  I presume Michal did this because gas doesn't accept
hyphens in mnemonics.  That can be fixed though.  This patch does
that, and adds back the missing hyphen.  It also adds a missing
instruction that's going to be in the VIA cpu.

This patch keeps hyphen-less aliases for the instructions.  The gas
testsuite still passes with this patch applied.

OK?

Mark


Index: gas/ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* config/tc-i386.c (md_begin): Allow hyphens in mnemonics.

Index: include/opcode/ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* i386.h: Insert hyphens into selected VIA PadLock extensions.
	Add xcrypt-ctr.  Provide aliases without hyphens.

Index: opcodes/ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* i386-dis.c: Insert hyphens into selected VIA PadLock extensions.
	Add xcrypt-ctr.

Index: gas/config/tc-i386.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-i386.c,v
retrieving revision 1.173
diff -u -p -r1.173 tc-i386.c
--- gas/config/tc-i386.c 12 Apr 2005 17:12:33 -0000 1.173
+++ gas/config/tc-i386.c 12 Apr 2005 19:01:12 -0000
@@ -1008,6 +1008,7 @@ md_begin ()
     operand_chars['?'] = '?';
 #endif
     digit_chars['-'] = '-';
+    mnemonic_chars['-'] = '-';
     identifier_chars['_'] = '_';
     identifier_chars['.'] = '.';
Index: include/opcode/i386.h
===================================================================
RCS file: /cvs/src/src/include/opcode/i386.h,v
retrieving revision 1.56
diff -u -p -r1.56 i386.h
--- include/opcode/i386.h 12 Apr 2005 17:12:30 -0000 1.56
+++ include/opcode/i386.h 12 Apr 2005 19:01:16 -0000
@@ -1378,15 +1378,23 @@ static const template i386_optab[] =
 {"rdtscp",   0, 0x0f01, 0xf9, CpuSledgehammer,NoSuf|ImmExt,	{ 0, 0, 0} },
 
 /* VIA PadLock extensions.  */
+{"xstore-rng",0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xcrypt-ecb",0, 0xf30fa7, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xcrypt-cbc",0, 0xf30fa7, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xcrypt-ctr",0, 0xf30fa7, 0xd8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xcrypt-cfb",0, 0xf30fa7, 0xe0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xcrypt-ofb",0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"montmul",   0, 0xf30fa6, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xsha1",     0, 0xf30fa6, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xsha256",   0, 0xf30fa6, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+/* Aliases without hyphens.  */
 {"xstorerng", 0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
 {"xcryptecb", 0, 0xf30fa7, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
 {"xcryptcbc", 0, 0xf30fa7, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
+{"xcryptctr", 0, 0xf30fa7, 0xd8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
 {"xcryptcfb", 0, 0xf30fa7, 0xe0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
 {"xcryptofb", 0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"montmul",   0, 0xf30fa6, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xsha1",     0, 0xf30fa6, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xsha256",   0, 0xf30fa6, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-/* Alias for xstorerng.  */
+/* Alias for xstore-rng.  */
 {"xstore",    0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
 
 /* sentinel */
Index: opcodes/i386-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/i386-dis.c,v
retrieving revision 1.58
diff -u -p -r1.58 i386-dis.c
--- opcodes/i386-dis.c 1 Apr 2005 16:06:40 -0000 1.58
+++ opcodes/i386-dis.c 12 Apr 2005 19:01:19 -0000
@@ -1469,14 +1469,14 @@ static const struct dis386 grps[][8] = {
   },
   /* GRPPADLCK1 */
   {
-    { "xstorerng", OP_0f07, 0, XX, XX },
-    { "xcryptecb", OP_0f07, 0, XX, XX },
-    { "xcryptcbc", OP_0f07, 0, XX, XX },
-    { "(bad)",	   OP_0f07, 0, XX, XX },
-    { "xcryptcfb", OP_0f07, 0, XX, XX },
-    { "xcryptofb", OP_0f07, 0, XX, XX },
-    { "(bad)",	   OP_0f07, 0, XX, XX },
-    { "(bad)",	   OP_0f07, 0, XX, XX },
+    { "xstore-rng", OP_0f07, 0, XX, XX },
+    { "xcrypt-ecb", OP_0f07, 0, XX, XX },
+    { "xcrypt-cbc", OP_0f07, 0, XX, XX },
+    { "xcrypt-ctr", OP_0f07, 0, XX, XX },
+    { "xcrypt-cfb", OP_0f07, 0, XX, XX },
+    { "xcrypt-ofb", OP_0f07, 0, XX, XX },
+    { "(bad)",	OP_0f07, 0, XX, XX },
+    { "(bad)",	OP_0f07, 0, XX, XX },
   },
   /* GRPPADLCK2 */
   {

             reply	other threads:[~2005-04-12 19:15 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-12 19:15 Mark Kettenis [this message]
2005-04-12 20:32 ` Michal Ludvig
2005-04-12 20:43   ` Mark Kettenis
2005-04-13  0:38     ` Alan Modra
2005-04-13 10:43       ` Thorsten Glaser
2005-04-13 18:55       ` Mark Kettenis
2005-04-13 19:29         ` H. J. Lu
2005-04-13 19:51           ` Mark Kettenis
2005-04-13 12:29 Jan Beulich
     [not found] <s25d1e96.084@emea1-mh.id2.novell.com>
2005-04-13 15:20 ` Thorsten Glaser
2005-04-14  1:26   ` Alan Modra
2005-04-16 11:40     ` Mark Kettenis
2005-04-18  4:44       ` Alan Modra
2005-04-18 21:01         ` Mark Kettenis
2005-04-13 23:35 Marc Espie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200504121915.j3CJFO0P017574@elgar.sibelius.xs4all.nl \
    --to=mark.kettenis@xs4all.nl \
    --cc=binutils@sourceware.org \
    --cc=mludvig@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).