diff options
author | Richard Henderson <rth@twiddle.net> | 2013-02-14 09:46:56 -0800 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2013-03-06 07:44:25 -0800 |
commit | 3ae44082ab30918a6f5aa135620dda08e62593d5 (patch) | |
tree | 659127296546c56218bfe4dd8ede95a389dd3b62 /ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h | |
parent | cd24e113c38e81c15a72536a99062373d5701389 (diff) | |
download | glibc-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.h | 3 |
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); \ |