aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/arm/setjmp.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2014-10-22 14:20:35 -0700
committerRoland McGrath <roland@hack.frob.com>2014-10-22 14:20:35 -0700
commit8c2b1ed8bbd20d35314c2a602b903159fa567ffb (patch)
tree4a9e06786fdb32c5558cdae218af3b4ff0b78af6 /sysdeps/arm/setjmp.S
parentb5af9297d51a43f96c5be1bafab032184690dd6f (diff)
downloadglibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.tar
glibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.tar.gz
glibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.tar.bz2
glibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.zip
ARM: Use movw/movt more when available
Diffstat (limited to 'sysdeps/arm/setjmp.S')
-rw-r--r--sysdeps/arm/setjmp.S35
1 files changed, 6 insertions, 29 deletions
diff --git a/sysdeps/arm/setjmp.S b/sysdeps/arm/setjmp.S
index 17a16c9b5d..6f54ab3b70 100644
--- a/sysdeps/arm/setjmp.S
+++ b/sysdeps/arm/setjmp.S
@@ -58,21 +58,15 @@ ENTRY (__sigsetjmp)
#ifdef NEED_HWCAP
/* Check if we have a VFP unit. */
# ifdef IS_IN_rtld
- ldr a3, 1f
- ldr a4, .Lrtld_local_ro
-0: add a3, pc, a3
- add a3, a3, a4
- ldr a3, [a3, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
+ LDST_PCREL (ldr, a3, a4, \
+ C_SYMBOL_NAME(_rtld_local_ro) \
+ + RTLD_GLOBAL_RO_DL_HWCAP_OFFSET)
# else
# ifdef PIC
- ldr a3, 1f
- ldr a4, .Lrtld_global_ro
-0: add a3, pc, a3
- ldr a3, [a3, a4]
- ldr a3, [a3, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
+ LDR_GLOBAL (a3, a4, C_SYMBOL_NAME(_rtld_global_ro), \
+ RTLD_GLOBAL_RO_DL_HWCAP_OFFSET)
# else
- ldr a3, .Lhwcap
- ldr a3, [a3, #0]
+ LDR_GLOBAL (a3, a4, C_SYMBOL_NAME(_dl_hwcap), 0)
# endif
# endif
#endif
@@ -114,23 +108,6 @@ ENTRY (__sigsetjmp)
/* Make a tail call to __sigjmp_save; it takes the same args. */
B PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
-#ifdef NEED_HWCAP
-# ifdef IS_IN_rtld
-1: .long _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS
-.Lrtld_local_ro:
- .long C_SYMBOL_NAME(_rtld_local_ro)(GOTOFF)
-# else
-# ifdef PIC
-1: .long _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS
-.Lrtld_global_ro:
- .long C_SYMBOL_NAME(_rtld_global_ro)(GOT)
-# else
-.Lhwcap:
- .long C_SYMBOL_NAME(_dl_hwcap)
-# endif
-# endif
-#endif
-
END (__sigsetjmp)
hidden_def (__sigsetjmp)