[07/11] x86: don't record full i386_cpu_flags in struct i386_tc_frag_data

Message ID a2094e46-7176-c139-7d1f-8659032b0829@suse.com
State New
Headers
Series x86: NOP emission adjustments |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Testing passed

Commit Message

Jan Beulich Sept. 27, 2023, 3:51 p.m. UTC
  We only use a single bit of this ever growing structure.
  

Patch

--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1470,7 +1470,7 @@  i386_generate_nops (fragS *fragP, char *
 	    case PROCESSOR_UNKNOWN:
 	      /* We use cpu_arch_isa_flags to check if we SHOULD
 		 optimize with nops.  */
-	      if (fragP->tc_frag_data.isa_flags.bitfield.cpunop)
+	      if (fragP->tc_frag_data.isanop)
 		patt = alt_patt;
 	      break;
 
@@ -1516,7 +1516,7 @@  i386_generate_nops (fragS *fragP, char *
 	    default:
 	      /* We use cpu_arch_isa_flags to check if we CAN optimize
 		 with nops.  */
-	      if (fragP->tc_frag_data.isa_flags.bitfield.cpunop)
+	      if (fragP->tc_frag_data.isanop)
 		patt = alt_patt;
 	      break;
 
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -284,7 +284,6 @@  struct i386_tc_frag_data
     } u;
   addressT padding_address;
   enum processor_type isa;
-  i386_cpu_flags isa_flags;
   enum processor_type tune;
   enum i386_flag_code code;
   unsigned int max_bytes;
@@ -298,6 +297,7 @@  struct i386_tc_frag_data
   unsigned int classified : 1;
   unsigned int branch_type : 3;
   unsigned int cpunop : 1;
+  unsigned int isanop : 1;
 };
 
 /* We need to emit the right NOP pattern in .align frags.  This is
@@ -311,9 +311,9 @@  struct i386_tc_frag_data
      (FRAGP)->tc_frag_data.u.padding_fragP = NULL;		\
      (FRAGP)->tc_frag_data.padding_address = 0;			\
      (FRAGP)->tc_frag_data.isa = cpu_arch_isa;			\
-     (FRAGP)->tc_frag_data.isa_flags = cpu_arch_isa_flags;	\
      (FRAGP)->tc_frag_data.tune = cpu_arch_tune;		\
      (FRAGP)->tc_frag_data.cpunop = cpu_arch_flags.bitfield.cpunop; \
+     (FRAGP)->tc_frag_data.isanop = cpu_arch_isa_flags.bitfield.cpunop; \
      (FRAGP)->tc_frag_data.code = i386_flag_code;		\
      (FRAGP)->tc_frag_data.max_bytes = (MAX_BYTES);		\
      (FRAGP)->tc_frag_data.length = 0;				\