diff options
author | Roland McGrath <roland@hack.frob.com> | 2014-10-22 14:20:35 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2014-10-22 14:20:35 -0700 |
commit | 8c2b1ed8bbd20d35314c2a602b903159fa567ffb (patch) | |
tree | 4a9e06786fdb32c5558cdae218af3b4ff0b78af6 /sysdeps/arm/__longjmp.S | |
parent | b5af9297d51a43f96c5be1bafab032184690dd6f (diff) | |
download | glibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.tar.gz glibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.tar.xz glibc-8c2b1ed8bbd20d35314c2a602b903159fa567ffb.zip |
ARM: Use movw/movt more when available
Diffstat (limited to 'sysdeps/arm/__longjmp.S')
-rw-r--r-- | sysdeps/arm/__longjmp.S | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S index 27d1b713de..a98395797a 100644 --- a/sysdeps/arm/__longjmp.S +++ b/sysdeps/arm/__longjmp.S @@ -77,21 +77,15 @@ ENTRY (__longjmp) #ifdef NEED_HWCAP # ifdef IS_IN_rtld - ldr a4, 1f - ldr a3, .Lrtld_local_ro -0: add a4, pc, a4 - add a4, a4, a3 - ldr a4, [a4, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] + LDST_PCREL (ldr, a4, a3, \ + C_SYMBOL_NAME(_rtld_local_ro) \ + + RTLD_GLOBAL_RO_DL_HWCAP_OFFSET) # else # ifdef PIC - ldr a4, 1f - ldr a3, .Lrtld_global_ro -0: add a4, pc, a4 - ldr a4, [a4, a3] - ldr a4, [a4, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] + LDR_GLOBAL (a4, a3, C_SYMBOL_NAME(_rtld_global_ro), \ + RTLD_GLOBAL_RO_DL_HWCAP_OFFSET) # else - ldr a4, .Lhwcap - ldr a4, [a4, #0] + LDR_GLOBAL (a4, a3, C_SYMBOL_NAME(_dl_hwcap), 0) # endif # endif #endif @@ -138,21 +132,4 @@ ENTRY (__longjmp) DO_RET(lr) -#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 (__longjmp) |