[prev in list] [next in list] [prev in thread] [next in thread] 

List:       binutils
Subject:    Fix farcalls on ARM v6-M
From:       Daniel Jacobowitz <dan () codesourcery ! com>
Date:       2010-03-29 20:44:03
Message-ID: 20100329204402.GW9310 () caradoc ! them ! org
[Download RAW message or body]

ARM v7-M isn't the only platform where we can't use ARM mode; there's
also ARM v6-M (Cortex-M1, et cetera).

I've checked in this obvious patch.  Tested on arm-none-eabi.

-- 
Daniel Jacobowitz
CodeSourcery

2010-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (using_thumb_only): Handle v6-M.

2010-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* ld-arm/arm-elf.exp (armeabitests): Add v6-M farcall test.

Index: bfd/elf32-arm.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-arm.c,v
retrieving revision 1.230
diff -u -p -r1.230 elf32-arm.c
--- bfd/elf32-arm.c	19 Mar 2010 17:04:17 -0000	1.230
+++ bfd/elf32-arm.c	29 Mar 2010 20:41:16 -0000
@@ -2985,6 +2985,9 @@ using_thumb_only (struct elf32_arm_link_
 				       Tag_CPU_arch);
   int profile;
 
+  if (arch == TAG_CPU_ARCH_V6_M || arch == TAG_CPU_ARCH_V6S_M)
+    return TRUE;
+
   if (arch != TAG_CPU_ARCH_V7 && arch != TAG_CPU_ARCH_V7E_M)
     return FALSE;
 
Index: ld/testsuite/ld-arm/arm-elf.exp
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/arm-elf.exp,v
retrieving revision 1.74
diff -u -p -r1.74 arm-elf.exp
--- ld/testsuite/ld-arm/arm-elf.exp	2 Mar 2010 11:40:23 -0000	1.74
+++ ld/testsuite/ld-arm/arm-elf.exp	29 Mar 2010 20:41:16 -0000
@@ -371,16 +371,19 @@ set armeabitests {
     {"Thumb-Thumb farcall with BLX" "-Ttext 0x1000 --section-start .foo=0x2001014" \
"-march=armv5t" {farcall-thumb-thumb.s}  {{objdump -d farcall-thumb-thumb-blx.d}}
      "farcall-thumb-thumb-blx"}
-    {"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" \
"-march=armv7m" {farcall-thumb-thumb.s} +    {"Thumb-Thumb farcall M profile" "-Ttext \
0x1000 --section-start .foo=0x2001014" "-march=armv7-m" {farcall-thumb-thumb.s}  \
{{objdump -d farcall-thumb-thumb-m.d}}  "farcall-thumb-thumb-m"}
+    {"Thumb-Thumb farcall v6-M" "-Ttext 0x1000 --section-start .foo=0x2001014" \
"-march=armv6-m" {farcall-thumb-thumb.s} +     {{objdump -d farcall-thumb-thumb-m.d}}
+     "farcall-thumb-thumb-v6-m"}
     {"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" \
"-march=armv4t" {farcall-thumb-thumb.s}  {{objdump -d farcall-thumb-thumb.d}}
      "farcall-thumb-thumb"}
     {"Thumb-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start \
.foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s}  {{objdump -d \
farcall-thumb-thumb-blx-pic-veneer.d}}  "farcall-thumb-thumb-blx-pic-veneer"}
-    {"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start \
.foo=0x2001014 --pic-veneer" "-march=armv7m" {farcall-thumb-thumb.s} +    \
{"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start \
.foo=0x2001014 --pic-veneer" "-march=armv7-m" {farcall-thumb-thumb.s}  {{objdump -d \
farcall-thumb-thumb-m-pic-veneer.d}}  "farcall-thumb-thumb-m-pic-veneer"}
     {"Thumb-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start \
.foo=0x2001014 --pic-veneer" "-march=armv4t" {farcall-thumb-thumb.s}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic