Fix detection of thumb-elf function symbols
authorNick Clifton <nickc@redhat.com>
Sat, 5 Sep 1998 02:47:40 +0000 (02:47 +0000)
committerNick Clifton <nickc@redhat.com>
Sat, 5 Sep 1998 02:47:40 +0000 (02:47 +0000)
opcodes/ChangeLog
opcodes/arm-dis.c

index f9420c921c8f17b81912230f9830aad918be780e..3fa0a019a3771aa5a7f7e2046517c5ab97a531c7 100644 (file)
@@ -1,3 +1,10 @@
+Fri Sep  4 19:42:59 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * arm-dis.c (print_insn_big_arm): Detect Thumb symbols in elf
+       object files.
+       (print_insn_little_arm): Detect Thumb symbols in elf object
+       files. 
+
 Sat Aug 29 22:24:09 1998  Richard Henderson  <rth@cygnus.com>
 
        * alpha-dis.c (print_insn_alpha): Use the machine type to
index 23da5892d9e57a30e7f1428ca1dd1419faf05de2..3e4e002f1c2465e63bb7a006439eb6abc0a08a8f 100644 (file)
@@ -741,11 +741,8 @@ print_insn_big_arm (pc, info)
     else if (bfd_asymbol_flavour (*info->symbols) == bfd_target_elf_flavour)
      {
        es = *(elf_symbol_type **)(info->symbols);
-       is_thumb = (es->internal_elf_sym.st_other == C_THUMBEXT
-                   || es->internal_elf_sym.st_other == C_THUMBSTAT
-                   || es->internal_elf_sym.st_other == C_THUMBLABEL
-                   || es->internal_elf_sym.st_other == C_THUMBEXTFUNC
-                   || es->internal_elf_sym.st_other == C_THUMBSTATFUNC);
+       is_thumb = ELF_ST_TYPE (es->internal_elf_sym.st_info) ==
+        STT_ARM_TFUNC;
       }
    }
 
@@ -826,14 +823,10 @@ print_insn_little_arm (pc, info)
     else if (bfd_asymbol_flavour (*info->symbols) == bfd_target_elf_flavour)
      {
        es = *(elf_symbol_type **)(info->symbols);
-       is_thumb = (es->internal_elf_sym.st_other == C_THUMBEXT
-                   || es->internal_elf_sym.st_other == C_THUMBSTAT
-                   || es->internal_elf_sym.st_other == C_THUMBLABEL
-                   || es->internal_elf_sym.st_other == C_THUMBEXTFUNC
-                   || es->internal_elf_sym.st_other == C_THUMBSTATFUNC);
+       is_thumb = ELF_ST_TYPE (es->internal_elf_sym.st_info) ==
+        STT_ARM_TFUNC;
       }
    }
-  
 
   info->bytes_per_chunk = 4;
   info->display_endian = BFD_ENDIAN_LITTLE;