summaryrefslogtreecommitdiff
path: root/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2013-02-14 09:46:56 -0800
committerRichard Henderson <rth@twiddle.net>2013-03-06 07:44:25 -0800
commit3ae44082ab30918a6f5aa135620dda08e62593d5 (patch)
tree659127296546c56218bfe4dd8ede95a389dd3b62 /ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
parentcd24e113c38e81c15a72536a99062373d5701389 (diff)
downloadglibc-3ae44082ab30918a6f5aa135620dda08e62593d5.tar.gz
arm: Introduce and use NEGOFF series of macros
There are several places in which we access negative offsets from the thread-pointer, but thumb2 only supports positive offsets in memory references. Avoid duplicating the rather large macros in which these references are embedded by abstracting out the operation.
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h')
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
index 8889369ae3..9157d03270 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
@@ -217,7 +217,8 @@ extern int __local_multiple_threads attribute_hidden;
cfi_adjust_cfa_offset (8); \
cfi_rel_offset (lr, 4); \
bl __aeabi_read_tp; \
- ldr ip, [r0, #MULTIPLE_THREADS_OFFSET]; \
+ NEGOFF_ADJ_BASE (r0, MULTIPLE_THREADS_OFFSET); \
+ ldr ip, NEGOFF_OFF1 (r0, MULTIPLE_THREADS_OFFSET); \
ldmfd sp!, {r0, lr}; \
cfi_adjust_cfa_offset (-8); \
cfi_restore (lr); \