From 5ff5dfe748c0585bb43e9d16fea9d89dc3bf2b9b Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 14 Feb 2013 10:32:04 -0800 Subject: arm: Enable thumb2 mode in assembly files The preceeding patches have allowed for the few incompatibilities between arm and thumb2 mode, or have marked the file as not wanting to use thumb2 mode. --- ports/ChangeLog.arm | 3 +++ ports/sysdeps/arm/sysdep.h | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'ports') diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 3ad5704..6458a75 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,5 +1,8 @@ 2013-03-06 Richard Henderson + * sysdeps/arm/sysdep.h [__ASSEMBLER__]: Enable thumb2 if __thumb2__. + (PC_OFS): Respect __thumb__ if __ASSEMBLER__. + * sysdeps/arm/sysdep.h (GET_TLS): New macro. * sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_undefweak): Use it. (_dl_tlsdesc_dynamic): Likewise. diff --git a/ports/sysdeps/arm/sysdep.h b/ports/sysdeps/arm/sysdep.h index c525d5b..d855ceb 100644 --- a/ports/sysdeps/arm/sysdep.h +++ b/ports/sysdeps/arm/sysdep.h @@ -117,6 +117,16 @@ the caller. */ .eabi_attribute 24, 1 +/* The thumb2 encoding is reasonably complete. Unless suppressed, use it. */ + .syntax unified +# if defined(__thumb2__) && !defined(NO_THUMB) + .thumb +#else +# undef __thumb__ +# undef __thumb2__ + .arm +# endif + /* Load or store to/from a pc-relative EXPR into/from R, using T. */ # ifdef __thumb2__ # define LDST_PCREL(OP, R, T, EXPR) \ @@ -172,8 +182,7 @@ #endif /* __ASSEMBLER__ */ /* This number is the offset from the pc at the current location. */ -/* ??? At the moment we're not turning on thumb mode in assembly. */ -#if defined(__thumb__) && !defined(__ASSEMBLER__) +#ifdef __thumb__ # define PC_OFS 4 #else # define PC_OFS 8 -- cgit v1.1