[binutils-gdb] MIPS/opcodes: Reorder ELF file header flag handling in disassembler

Maciej W.Rozycki macro@sourceware.org
Wed Dec 14 22:23:00 GMT 2016


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

commit 8184783a4069e04deb2e43b4ad0d66d80f1ad2df
Author: Maciej W. Rozycki <macro@imgtec.com>
Date:   Wed Dec 14 21:27:00 2016 +0000

    MIPS/opcodes: Reorder ELF file header flag handling in disassembler
    
    Move ELF file header flag interpretation code, used to set disassembler
    options, beyond architecture setup.  No functional change as the effects
    of both code sections are disjoint from each other, but this provides
    for a further expansion of ELF file header flag interpretation.
    
    	opcodes/
    	* mips-dis.c (set_default_mips_dis_options): Reorder ELF file
    	header flag interpretation code.

Diff:
---
 opcodes/ChangeLog  |  5 +++++
 opcodes/mips-dis.c | 26 +++++++++++++-------------
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0138a9e..3f74c26 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
 2016-12-14  Maciej W. Rozycki  <macro@imgtec.com>
 
+	* mips-dis.c (set_default_mips_dis_options): Reorder ELF file
+	header flag interpretation code.
+
+2016-12-14  Maciej W. Rozycki  <macro@imgtec.com>
+
 	* mips16-opc.c (mips16_opcodes): Set RD_SP rather than RD_PC in
 	`pinfo2' with SP-relative "sd" entries.
 
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index b3daacd..380a675 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -785,19 +785,6 @@ set_default_mips_dis_options (struct disassemble_info *info)
   mips_hwr_names = mips_hwr_names_numeric;
   no_aliases = 0;
 
-  /* Update settings according to the ELF file header flags.  */
-  if (info->flavour == bfd_target_elf_flavour && info->section != NULL)
-    {
-      Elf_Internal_Ehdr *header;
-
-      header = elf_elfheader (info->section->owner);
-      /* If an ELF "newabi" binary, use the n32/(n)64 GPR names.  */
-      if (is_newabi (header))
-	mips_gpr_names = mips_gpr_names_newabi;
-      /* If a microMIPS binary, then don't use MIPS16 bindings.  */
-      micromips_ase = is_micromips (header);
-    }
-
   /* Set ISA, architecture, and cp0 register names as best we can.  */
 #if ! SYMTAB_AVAILABLE
   /* This is running out on a target machine, not in a host tool.
@@ -819,6 +806,19 @@ set_default_mips_dis_options (struct disassemble_info *info)
       mips_hwr_names = chosen_arch->hwr_names;
     }
 #endif
+
+  /* Update settings according to the ELF file header flags.  */
+  if (info->flavour == bfd_target_elf_flavour && info->section != NULL)
+    {
+      Elf_Internal_Ehdr *header;
+
+      header = elf_elfheader (info->section->owner);
+      /* If an ELF "newabi" binary, use the n32/(n)64 GPR names.  */
+      if (is_newabi (header))
+	mips_gpr_names = mips_gpr_names_newabi;
+      /* If a microMIPS binary, then don't use MIPS16 bindings.  */
+      micromips_ase = is_micromips (header);
+    }
 }
 
 static void



More information about the Binutils-cvs mailing list