gas/testsuite:
authorJoseph Myers <joseph@codesourcery.com>
Mon, 30 Mar 2009 14:41:31 +0000 (14:41 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 30 Mar 2009 14:41:31 +0000 (14:41 +0000)
* gas/arm/mapsecs.d, gas/arm/mapsecs.s: New.

opcodes:
* arm-dis.c (print_insn): Also check section matches in backwards
search for mapping symbol.

gas/testsuite/ChangeLog
gas/testsuite/gas/arm/mapsecs.d [new file with mode: 0644]
gas/testsuite/gas/arm/mapsecs.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/arm-dis.c

index 5495eea4c76f53f1541c0a0713d5e0fee878906a..b881c61482eff6dea0b026985a6db6cf958f1ba4 100644 (file)
@@ -1,3 +1,7 @@
+2009-03-30  Joseph Myers  <joseph@codesourcery.com>
+
+       * gas/arm/mapsecs.d, gas/arm/mapsecs.s: New.
+
 2009-03-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
        * gas/arm/wince_inst.d: Convert to unified syntax.
diff --git a/gas/testsuite/gas/arm/mapsecs.d b/gas/testsuite/gas/arm/mapsecs.d
new file mode 100644 (file)
index 0000000..52bca8c
--- /dev/null
@@ -0,0 +1,45 @@
+#as: -EL
+#objdump: --syms --special-syms -d
+#name: ARM Mapping Symbols with multiple sections
+# This test is only valid on EABI based ports.
+#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf
+#source: mapsecs.s
+
+
+.*: +file format .*arm.*
+
+SYMBOL TABLE:
+0+00 l    d  .text     00000000 .text
+0+00 l    d  .data     00000000 .data
+0+00 l    d  .bss      00000000 .bss
+0+00 l    d  .text.f1  00000000 .text.f1
+0+00 l     F .text.f1  00000000 f1
+0+00 l       .text.f1  00000000 \$a
+0+08 l       .text.f1  00000000 f1a
+0+00 l    d  .text.f2  00000000 .text.f2
+0+00 l     F .text.f2  00000000 f2
+0+00 l       .text.f2  00000000 \$a
+0+04 l       .text.f2  00000000 \$d
+0+08 l       .text.f2  00000000 f2a
+0+08 l       .text.f2  00000000 \$a
+0+00 l    d  .ARM.attributes   00000000 .ARM.attributes
+
+
+
+Disassembly of section .text.f1:
+
+00000000 <f1>:
+   0:  e1a00000        nop                     \(mov r0,r0\)
+   4:  e1a00000        nop                     \(mov r0,r0\)
+
+00000008 <f1a>:
+   8:  e1a00000        nop                     \(mov r0,r0\)
+
+Disassembly of section .text.f2:
+
+00000000 <f2>:
+   0:  e1a00000        nop                     \(mov r0,r0\)
+   4:  00000001        .word   0x00000001
+
+00000008 <f2a>:
+   8:  e1a00000        nop                     \(mov r0,r0\)
diff --git a/gas/testsuite/gas/arm/mapsecs.s b/gas/testsuite/gas/arm/mapsecs.s
new file mode 100644 (file)
index 0000000..005c339
--- /dev/null
@@ -0,0 +1,15 @@
+       .text
+       .section .text.f1,"ax",%progbits
+       .type f1, %function
+f1:
+       nop
+       nop
+f1a:
+       nop
+       .section .text.f2,"ax",%progbits
+       .type f2, %function
+f2:
+       nop
+       .word 1
+f2a:
+       nop
index fb917ce7c2916fb7831579bb06f0ac1be819aad5..a98f288452a515fe12705f495a315e27ea0ccf40 100644 (file)
@@ -1,3 +1,8 @@
+2009-03-30  Joseph Myers  <joseph@codesourcery.com>
+
+       * arm-dis.c (print_insn): Also check section matches in backwards
+       search for mapping symbol.
+
 2009-03-26  H.J. Lu  <hongjiu.lu@intel.com>
 
        * i386-dis.c (get_valid_dis386): Abort on unhandled table.
index aedc9f2278f5d9ec6c4ace503f188d219d4880a2..3360b8292d6a707f9b4c697bf7e4e8fdc40a6c51 100644 (file)
@@ -4041,7 +4041,9 @@ print_insn (bfd_vma pc, struct disassemble_info *info, bfd_boolean little)
             for a preceeding one.  */
          for (; n >= 0; n--)
            {
-             if (get_sym_code_type (info, n, &type))
+             if ((info->section == NULL
+                  || info->section == info->symtab[n]->section)
+                 && get_sym_code_type (info, n, &type))
                {
                  last_sym = n;
                  found = TRUE;