[6/8] x86: re-number PREFIX_0X<nn>

Message ID 67c381fe-2030-7750-d258-6257174100c3@suse.com
State New
Headers show
Series
  • x86: work towards further opcode table compaction
Related show

Commit Message

Alan Modra via Binutils March 22, 2021, 4:45 p.m.
In preparation to use PREFIX_0X<nn> attributes also in VEX/XOP/EVEX
encoding templates, renumber the pseudo-enumerators such that their
values can then also be used directly in the respective prefix bit
fields.

gas/
2021-03-XX  Jan Beulich  <jbeulich@suse.com>

	* config/tc-i386.c (pte): Re-order opc_pfx[] entries.

opcodes/
2021-03-XX  Jan Beulich  <jbeulich@suse.com>

	* i386-opc.h (PREFIX_0XF2, PREFIX_0XF3): Excahnge values. Extend
	comment.
	* i386-tbl.h: Re-generate.

Comments

Alan Modra via Binutils March 22, 2021, 6:03 p.m. | #1
On Mon, Mar 22, 2021 at 05:45:30PM +0100, Jan Beulich wrote:
> In preparation to use PREFIX_0X<nn> attributes also in VEX/XOP/EVEX

> encoding templates, renumber the pseudo-enumerators such that their

> values can then also be used directly in the respective prefix bit

> fields.

> 

> gas/

> 2021-03-XX  Jan Beulich  <jbeulich@suse.com>

> 

> 	* config/tc-i386.c (pte): Re-order opc_pfx[] entries.

> 

> opcodes/

> 2021-03-XX  Jan Beulich  <jbeulich@suse.com>

> 

> 	* i386-opc.h (PREFIX_0XF2, PREFIX_0XF3): Excahnge values. Extend

> 	comment.

> 	* i386-tbl.h: Re-generate.

> 


OK.  Thanks.

H.J.

Patch

--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3239,7 +3239,7 @@  pi (const char *line, i386_insn *x)
 static void
 pte (insn_template *t)
 {
-  static const unsigned char opc_pfx[] = { 0, 0x66, 0xf2, 0xf3 };
+  static const unsigned char opc_pfx[] = { 0, 0x66, 0xf3, 0xf2 };
   static const char *const opc_spc[] = {
     NULL, "0f", "0f38", "0f3a", NULL, NULL, NULL, NULL,
     "XOP08", "XOP09", "XOP0A",
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -593,16 +593,17 @@  enum
 #define SPACE_XOP09	9
 #define SPACE_XOP0A	0xA
   OpcodeSpace,
-  /* Opcode prefix:
+  /* Opcode prefix (values chosen to be usable directly in
+     VEX/XOP/EVEX pp fields):
      0: None
      1: Add 0x66 opcode prefix.
-     2: Add 0xf2 opcode prefix.
-     3: Add 0xf3 opcode prefix.
+     2: Add 0xf3 opcode prefix.
+     3: Add 0xf2 opcode prefix.
    */
 #define PREFIX_NONE	0
 #define PREFIX_0X66	1
-#define PREFIX_0XF2	2
-#define PREFIX_0XF3	3
+#define PREFIX_0XF3	2
+#define PREFIX_0XF2	3
   OpcodePrefix,
   /* number of VEX source operands:
      0: <= 2 source operands.