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:
Maciej W. Rozycki 2017-07-01 00:42:19 +01:00
parent bbd27b7684
commit 834a65aadf
2 changed files with 20 additions and 10 deletions

View File

@ -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'

View File

@ -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;