public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Indu Bhagat <indu.bhagat@oracle.com>
To: binutils@sourceware.org
Cc: Indu Bhagat <indu.bhagat@oracle.com>
Subject: [PATCH] opcodes: gas: i386: use Rex2 as attribute not constraint
Date: Mon,  8 Jan 2024 17:12:29 -0800	[thread overview]
Message-ID: <20240109011229.4191052-2-indu.bhagat@oracle.com> (raw)
In-Reply-To: <20240109011229.4191052-1-indu.bhagat@oracle.com>

It seems to fit better if Rex2 is an attribute for now rather than a
constraint.

PS: Removed the opcodes/i386-tbl.h diffs from patch to keep the message
size within limits.

ChangeLog:
        * gas/config/tc-i386.c (is_apx_rex2_encoding): Update the check.
        * opcodes/i386-gen.c: Add a new BITFIELD for Rex2.
        * opcodes/i386-opc.h (REX2_REQUIRED): Remove.
        * opcodes/i386-opc.tbl: Remove Rex2 operand constraint.
        * opcodes/i386-tbl.h: Regenerated.
---
 gas/config/tc-i386.c |     2 +-
 opcodes/i386-gen.c   |     1 +
 opcodes/i386-opc.h   |     6 +-
 opcodes/i386-opc.tbl |     1 -
 opcodes/i386-tbl.h   | 11659 +++++++++++++++++++++++++++--------------
 5 files changed, 7778 insertions(+), 3891 deletions(-)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 27d0742c6c8..b25cc517240 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3929,7 +3929,7 @@ static INLINE bool
 is_apx_rex2_encoding (void)
 {
   return i.rex2 || i.rex2_encoding
-	|| i.tm.opcode_modifier.operandconstraint == REX2_REQUIRED;
+	|| i.tm.opcode_modifier.rex2;
 }
 
 static unsigned int
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index e8b92e32f45..21331216486 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -490,6 +490,7 @@ static bitfield opcode_modifiers[] =
   BITFIELD (ISA64),
   BITFIELD (NoEgpr),
   BITFIELD (NF),
+  BITFIELD (Rex2),
 };
 
 #define CLASS(n) #n, n
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 38661ffe70c..eaebfaa9ba8 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -579,8 +579,6 @@ enum
   /* Instrucion requires that destination must be distinct from source
      registers.  */
 #define DISTINCT_DEST 9
-  /* Instrucion requires REX2 prefix.  */
-#define REX2_REQUIRED 10
   OperandConstraint,
   /* instruction ignores operand size prefix and in Intel mode ignores
      mnemonic size suffix check.  */
@@ -750,6 +748,9 @@ enum
   /* No CSPAZO flags update indication.  */
   NF,
 
+  /* Instrucion requires REX2 prefix.  */
+  Rex2,
+
   /* The last bitfield in i386_opcode_modifier.  */
   Opcode_Modifier_Num
 };
@@ -796,6 +797,7 @@ typedef struct i386_opcode_modifier
   unsigned int isa64:2;
   unsigned int noegpr:1;
   unsigned int nf:1;
+  unsigned int rex2:1;
 } i386_opcode_modifier;
 
 /* Operand classes.  */
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 1751eff8bd2..ada5c06e501 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -85,7 +85,6 @@
 #define RegKludge         OperandConstraint=REG_KLUDGE
 #define SwapSources       OperandConstraint=SWAP_SOURCES
 #define Ugh               OperandConstraint=UGH
-#define Rex2              OperandConstraint=REX2_REQUIRED
 
 #define ATTSyntax         Dialect=ATT_SYNTAX
 #define ATTMnemonic       Dialect=ATT_MNEMONIC
-- 
2.41.0


  reply	other threads:[~2024-01-09  1:12 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-09  1:12 [PATCH] opcodes: i386: fix dw2_regnum data type in reg_entry Indu Bhagat
2024-01-09  1:12 ` Indu Bhagat [this message]
2024-01-09  8:14   ` [PATCH] opcodes: gas: i386: use Rex2 as attribute not constraint Jan Beulich
2024-01-09  8:24 ` [PATCH] opcodes: i386: fix dw2_regnum data type in reg_entry Jan Beulich
2024-01-11  1:35   ` Kong, Lingling
2024-01-11  7:43     ` Jan Beulich
2024-01-11  7:59       ` Kong, Lingling
2024-01-11  8:05         ` Jan Beulich
2024-01-11 13:27           ` H.J. Lu
2024-01-11 14:05             ` Jan Beulich
2024-01-20  0:45               ` Indu Bhagat
2024-01-22  7:49                 ` Jan Beulich

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=20240109011229.4191052-2-indu.bhagat@oracle.com \
    --to=indu.bhagat@oracle.com \
    --cc=binutils@sourceware.org \
    /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).