bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in thumb mode.

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
This commit is contained in:
Paul Brook 2005-04-30 19:40:53 +00:00 committed by Paul Brook
parent f6c7d65b66
commit 4c5f989813
5 changed files with 33 additions and 10 deletions

View 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.

View 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"

View 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

View 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

View 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