]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in thumb mode.
authorPaul Brook <paul@codesourcery.com>
Sat, 30 Apr 2005 19:40:53 +0000 (19:40 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Sat, 30 Apr 2005 19:40:53 +0000 (19:40 +0000)
2005-04-30  Paul Brook  <paul@codesourcery.com>

* config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
thumb mode.
* config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
* config/arm/ieee754-sf.S: Ditto.
* config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
(FUNC_ALIAS): Use .thumb_set for thumb routines.

From-SVN: r99043

gcc/ChangeLog
gcc/config/arm/bpabi.h
gcc/config/arm/ieee754-df.S
gcc/config/arm/ieee754-sf.S
gcc/config/arm/lib1funcs.asm

index 26d528bc95427fcd2bc895f0f19bfdd5b20fd558..dea40744c2e9932a4fa805c874672e831d1295f2 100644 (file)
@@ -1,3 +1,12 @@
+2005-04-30  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
+       thumb mode.
+       * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
+       * config/arm/ieee754-sf.S: Ditto.
+       * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
+       (FUNC_ALIAS): Use .thumb_set for thumb routines.
+
 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-ssanames.c: Fix a comment typo.
index 037b26de145147f1c338d65f530d06bac43d3f3e..ddf55d963191c7b787a0659129148b8297f4a505 100644 (file)
@@ -46,7 +46,7 @@
   "%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} "       \
   "-X"
 
-#if defined (__thumb__) && !defined (__THUMB_INTERWORK__) 
+#if defined (__thumb__)
 #define RENAME_LIBRARY_SET ".thumb_set"
 #else
 #define RENAME_LIBRARY_SET ".set"
index bce74e53b967d7abc71c866ec274f2ede4347670..570e77f0a5101b6dbbc6c31643f59ef071add29e 100644 (file)
@@ -81,7 +81,7 @@ ARM_FUNC_START subdf3
 ARM_FUNC_ALIAS aeabi_dsub subdf3
 
        eor     yh, yh, #0x80000000     @ flip sign bit of second arg
-#if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
+#if defined(__INTERWORKING_STUBS__)
        b       1f                      @ Skip Thumb-code prologue
 #endif
 
index 101a70bf511023efe486d6710a9480fb4802dca7..19fb03f7bbfd5a123fc6384acd4006ac6582d9b0 100644 (file)
@@ -62,7 +62,7 @@ ARM_FUNC_START subsf3
 ARM_FUNC_ALIAS aeabi_fsub subsf3
 
        eor     r1, r1, #0x80000000     @ flip sign bit of second arg
-#if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
+#if defined(__INTERWORKING_STUBS__)
        b       1f                      @ Skip Thumb-code prologue
 #endif
 
index b8df889d600f0c938841ba69d98f05fac804c98b..4e3c8a3317d0cc53c42a856ed6fd3f459d8bc76a 100644 (file)
@@ -94,10 +94,20 @@ Boston, MA 02111-1307, USA.  */
 # define RET           bx      lr
 # define RETc(x)       bx##x   lr
 
-# if (__ARM_ARCH__ == 4) \
-       && (defined(__thumb__) || defined(__THUMB_INTERWORK__))
-#  define __INTERWORKING__
-# endif
+/* Special precautions for interworking on armv4t.  */
+# if (__ARM_ARCH__ == 4)
+
+/* Always use bx, not ldr pc.  */
+#  if (defined(__thumb__) || defined(__THUMB_INTERWORK__))
+#    define __INTERWORKING__
+#   endif /* __THUMB__ || __THUMB_INTERWORK__ */
+
+/* Include thumb stub before arm mode code.  */
+#  if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
+#   define __INTERWORKING_STUBS__
+#  endif /* __thumb__ && !__THUMB_INTERWORK__ */
+
+#endif /* __ARM_ARCH == 4 */
 
 #else
 
@@ -192,7 +202,7 @@ SYM (__\name):
 /* Special function that will always be coded in ARM assembly, even if
    in Thumb-only compilation.  */
 
-#if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
+#if defined(__INTERWORKING_STUBS__)
 .macro ARM_FUNC_START name
        FUNC_START \name
        bx      pc
@@ -225,13 +235,17 @@ SYM (__\name):
 
 .macro FUNC_ALIAS new old
        .globl  SYM (__\new)
-       EQUIV   SYM (__\new), SYM (__\old)
+#if defined (__thumb__)
+       .thumb_set      SYM (__\new), SYM (__\old)
+#else
+       .set    SYM (__\new), SYM (__\old)
+#endif
 .endm
 
 .macro ARM_FUNC_ALIAS new old
        .globl  SYM (__\new)
        EQUIV   SYM (__\new), SYM (__\old)
-#ifdef __thumb__
+#if defined(__INTERWORKING_STUBS__)
        .set    SYM (_L__\new), SYM (_L__\old)
 #endif
 .endm