ARM: Add missing sfi_breg in LDR_GLOBAL macro.

This commit is contained in:
Roland McGrath 2015-02-06 14:42:18 -08:00
parent 022f481264
commit f8d1bb4c25
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,10 @@
2015-02-06 Roland McGrath <roland@hack.frob.com> 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 * nptl/tst-cancel25.c (tf2): Test for SIGCANCEL being blocked only if
it's defined. it's defined.
* nptl/tst-signal7.c (do_test): Test SIGCANCEL only if it's defined. * nptl/tst-signal7.c (do_test): Test SIGCANCEL only if it's defined.

View File

@ -198,7 +198,7 @@
# define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \ # define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \
movw T, #:lower16:SYMBOL; \ movw T, #:lower16:SYMBOL; \
movt T, #:upper16: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 # elif defined (ARCH_HAS_T2) && defined (PIC) && ARM_PCREL_MOVW_OK
# define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \ # define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \
movw R, #:lower16:_GLOBAL_OFFSET_TABLE_ - 97f - PC_OFS; \ movw R, #:lower16:_GLOBAL_OFFSET_TABLE_ - 97f - PC_OFS; \
@ -212,7 +212,7 @@
97: add R, R, pc; \ 97: add R, R, pc; \
98: LDST_PC_INDEXED (ldr, T, T, T); \ 98: LDST_PC_INDEXED (ldr, T, T, T); \
LDST_INDEXED (ldr, R, T, R, T); \ LDST_INDEXED (ldr, R, T, R, T); \
ldr R, [R, $CONSTANT] sfi_breg R, ldr R, [\B, $CONSTANT]
# else # else
# define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \ # define LDR_GLOBAL(R, T, SYMBOL, CONSTANT) \
ldr T, 99f; \ ldr T, 99f; \