diff options
Diffstat (limited to 'ports')
-rw-r--r-- | ports/ChangeLog.arm | 3 | ||||
-rw-r--r-- | ports/sysdeps/arm/sysdep.h | 13 |
2 files changed, 14 insertions, 2 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 3ad5704e2f..6458a75154 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,5 +1,8 @@ 2013-03-06 Richard Henderson <rth@redhat.com> + * 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 c525d5b977..d855ceb3c3 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 |