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.
/* 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;
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;