+ * config/tc-mips.c (md_apply_fix): Accept BFD_RELOC_16, for
+
* config/tc-mips.c (macro): Handle M_U{L,S}D[_A] (unaligned double
loads and stores).
unsigned char *buf;
long insn, value;
- assert (fixP->fx_size == 4);
+ assert (fixP->fx_size == 4 || fixP->fx_r_type == BFD_RELOC_16);
value = *valueP;
fixP->fx_addnumber = value; /* Remember value for tc_gen_reloc */
value, 4);
break;
+ case BFD_RELOC_16:
+ /* If we are deleting this reloc entry, we must fill in the
+ value now. */
+ assert (fixP->fx_size == 2);
+ if (fixP->fx_done)
+ md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
+ value, 2);
+ break;
+
case BFD_RELOC_LO16:
/* When handling an embedded PIC switch statement, we can wind
up deleting a LO16 reloc. See the 'o' case in mips_ip. */