MIPS/GAS: Use a switch on relaxation type in microMIPS fixup creation
Use a switch on the relaxation type rather than a chain of conditionals in microMIPS fixup creation, improving source code structure and aiding the compiler with code generation. gas/ * config/tc-mips.c (md_convert_frag): Use a switch on the microMIPS relaxation type rather than a chain of conditionals.
This commit is contained in:
parent
bbd27b7684
commit
834a65aadf
|
@ -1,3 +1,8 @@
|
|||
2017-06-30 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* config/tc-mips.c (md_convert_frag): Use a switch on the
|
||||
microMIPS relaxation type rather than a chain of conditionals.
|
||||
|
||||
2017-06-30 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* config/tc-mips.c (md_convert_frag): Rewrite `fix_new_exp'
|
||||
|
|
|
@ -18342,16 +18342,21 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT asec, fragS *fragp)
|
|||
/* We generate a fixup instead of applying it right now,
|
||||
because if there is linker relaxation, we're going to
|
||||
need the relocations. */
|
||||
if (type == 'D')
|
||||
fixp = fix_new (fragp, buf - fragp->fr_literal, 2,
|
||||
fragp->fr_symbol, fragp->fr_offset,
|
||||
TRUE, BFD_RELOC_MICROMIPS_10_PCREL_S1);
|
||||
else if (type == 'E')
|
||||
fixp = fix_new (fragp, buf - fragp->fr_literal, 2,
|
||||
fragp->fr_symbol, fragp->fr_offset,
|
||||
TRUE, BFD_RELOC_MICROMIPS_7_PCREL_S1);
|
||||
else
|
||||
abort ();
|
||||
switch (type)
|
||||
{
|
||||
case 'D':
|
||||
fixp = fix_new (fragp, buf - fragp->fr_literal, 2,
|
||||
fragp->fr_symbol, fragp->fr_offset,
|
||||
TRUE, BFD_RELOC_MICROMIPS_10_PCREL_S1);
|
||||
break;
|
||||
case 'E':
|
||||
fixp = fix_new (fragp, buf - fragp->fr_literal, 2,
|
||||
fragp->fr_symbol, fragp->fr_offset,
|
||||
TRUE, BFD_RELOC_MICROMIPS_7_PCREL_S1);
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
|
||||
fixp->fx_file = fragp->fr_file;
|
||||
fixp->fx_line = fragp->fr_line;
|
||||
|
|
Loading…
Reference in New Issue