[binutils-gdb] MIPS/GAS: Use a switch on relaxation type in microMIPS fixup creation

Maciej W.Rozycki macro@sourceware.org
Fri Jun 30 23:43:00 GMT 2017


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=834a65aadfda9755d8bd6ec76ba8b3a6d20a1beb

commit 834a65aadfda9755d8bd6ec76ba8b3a6d20a1beb
Author: Maciej W. Rozycki <macro@imgtec.com>
Date:   Sat Jul 1 00:42:19 2017 +0100

    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.

Diff:
---
 gas/ChangeLog        |  5 +++++
 gas/config/tc-mips.c | 25 +++++++++++++++----------
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 94a6a68..31de3e9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
 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'
 	calls in terms of `fix_new'.
 
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index a58c484..4eeb5ee 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -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;



More information about the Binutils-cvs mailing list