gas/write: extend fx_pcrel_adjust to 16 bits fx_pcrel_adjust
authorDmitry Selyutin <ghostmansd@gmail.com>
Wed, 11 May 2022 17:12:24 +0000 (17:12 +0000)
committerDmitry Selyutin <ghostmansd@gmail.com>
Sat, 14 May 2022 10:28:18 +0000 (10:28 +0000)
PowerPC code stores operand index into fx_pcrel_adjust field of fix
struct. Once count of PowerPC operands exceeds an 8-bit integer, the
code won't be able to store operand index anymore.
This patch extends the aforementioned field to 16 bits, exactly like
the ppc_opindex_t type; the missing 8 bits are taken from the fx_unused
field.

gas/write.h

index 501bdd828fc96e423a689141ab425743f484da3c..5469dce4452a7c4ff0e987274dd3ffa930963bd5 100644 (file)
@@ -52,6 +52,12 @@ struct fix
   /* These small fields are grouped together for compactness of
      this structure, and efficiency of access on some architectures.  */
 
+  /* pc-relative offset adjust (only used by some CPU specific code) */
+  int fx_pcrel_adjust : 16;
+
+  /* How many bytes are involved? */
+  unsigned fx_size : 8;
+
   /* Is this a pc-relative relocation?  */
   unsigned fx_pcrel : 1;
 
@@ -73,13 +79,7 @@ struct fix
   unsigned fx_tcbit2 : 1;
 
   /* Spare bits.  */
-  unsigned fx_unused : 10;
-
-  /* pc-relative offset adjust (only used by some CPU specific code) */
-  int fx_pcrel_adjust : 8;
-
-  /* How many bytes are involved? */
-  unsigned fx_size : 8;
+  unsigned fx_unused : 2;
 
   bfd_reloc_code_real_type fx_r_type;