aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-02-06 14:42:18 -0800
committerRoland McGrath <roland@hack.frob.com>2015-02-06 14:42:18 -0800
commitf8d1bb4c25849b528b9771cb5834b0cd17450ae3 (patch)
tree71cc313276543d43a03dbf86ce759b432c9429ba
parent022f481264c197e1b0f20faa58cc4c21ce099597 (diff)
downloadglibc-f8d1bb4c25849b528b9771cb5834b0cd17450ae3.zip
glibc-f8d1bb4c25849b528b9771cb5834b0cd17450ae3.tar.gz
glibc-f8d1bb4c25849b528b9771cb5834b0cd17450ae3.tar.bz2
ARM: Add missing sfi_breg in LDR_GLOBAL macro.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/arm/sysdep.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 85e3010..b2a1a09 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2015-02-06 Roland McGrath <roland@hack.frob.com>
+ * sysdeps/arm/sysdep.h [!PROF] [ARCH_HAS_T2 && !PIC] (LDR_GLOBAL):
+ Use sfi_breg on ldr.
+ [!PROF] [ARCH_HAS_T2 && PIC && ARM_PCREL_MOVW_OK] (LDR_GLOBAL):
+ Likewise.
+
* nptl/tst-cancel25.c (tf2): Test for SIGCANCEL being blocked only if
it's defined.
* nptl/tst-signal7.c (do_test): Test SIGCANCEL only if it's defined.
diff --git a/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h
index eaa4b94..9bbd009 100644
--- a/sysdeps/arm/sysdep.h
+++ b/sysdeps/arm/sysdep.h
@@ -198,7 +198,7 @@
# define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \
movw T, #:lower16:SYMBOL; \
movt T, #:upper16:SYMBOL; \
- ldr R, [T, $CONSTANT]
+ sfi_breg T, ldr R, [\B, $CONSTANT]
# elif defined (ARCH_HAS_T2) && defined (PIC) && ARM_PCREL_MOVW_OK
# define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \
movw R, #:lower16:_GLOBAL_OFFSET_TABLE_ - 97f - PC_OFS; \
@@ -212,7 +212,7 @@
97: add R, R, pc; \
98: LDST_PC_INDEXED (ldr, T, T, T); \
LDST_INDEXED (ldr, R, T, R, T); \
- ldr R, [R, $CONSTANT]
+ sfi_breg R, ldr R, [\B, $CONSTANT]
# else
# define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \
ldr T, 99f; \