From b818b220e40a0b5aa281e50272f6f6af2f759c86 Mon Sep 17 00:00:00 2001
From: Jan Beulich <jbeulich@suse.com>
Date: Tue, 16 Feb 2021 11:27:40 +0100
Subject: [PATCH] x86: have preprocessor expand macros

There's no point having i386-gen's set_bitfield() to handle any aliases,
now that we pass the opcode table through the C preprocessor anyway.
---
 opcodes/ChangeLog    |  6 ++++++
 opcodes/i386-gen.c   | 11 -----------
 opcodes/i386-opc.tbl |  5 +++++
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index f94d0f439bf..d8302d0dae1 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2021-02-16  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (set_bitfield): Don't look for CpuFP, Mmword, nor
+	Oword.
+	* i386-opc.tbl (CpuFP, Mmword, Oword): Define.
+
 2021-02-15  Andreas Krebbel  <krebbel@linux.ibm.com>
 
 	* s390-mkopc.c (main): Accept arch14 as cpu string.
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 44cdc661985..d7bd56dae32 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -971,17 +971,6 @@ set_bitfield (char *f, bitfield *array, int value,
   if (*f == '\0')
     return;
 
-  if (strcmp (f, "CpuFP") == 0)
-    {
-      set_bitfield("Cpu387", array, value, size, lineno);
-      set_bitfield("Cpu287", array, value, size, lineno);
-      f = "Cpu8087";
-    }
-  else if (strcmp (f, "Mmword") == 0)
-    f= "Qword";
-  else if (strcmp (f, "Oword") == 0)
-    f= "Xmmword";
-
   for (i = 0; i < size; i++)
     if (strcasecmp (array[i].name, f) == 0)
       {
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 04e2a090eba..3b29dd5853d 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -58,6 +58,9 @@
 
 #define RegBND Class=RegBND
 
+#define Mmword Qword
+#define Oword  Xmmword
+
 #define JumpByte         Jump=JUMP_BYTE
 #define JumpDword        Jump=JUMP_DWORD
 #define JumpAbsolute     Jump=JUMP_ABSOLUTE
@@ -106,6 +109,8 @@
 // operands may allow to switch from 3-byte to 2-byte VEX encoding.
 #define C StaticRounding
 
+#define CpuFP Cpu387|Cpu287|Cpu8087
+
 ### MARKER ###
 
 // Move instructions.