| Index: src/nonsfi/irt/irt_interfaces.c
|
| diff --git a/src/nonsfi/irt/irt_interfaces.c b/src/nonsfi/irt/irt_interfaces.c
|
| index d1561c5979a65c908cf6348202e261452461fa17..1f363610826239d0628d6782b280a5be48b8fd03 100644
|
| --- a/src/nonsfi/irt/irt_interfaces.c
|
| +++ b/src/nonsfi/irt/irt_interfaces.c
|
| @@ -362,6 +362,27 @@ void *__nacl_read_tp(void) {
|
| }
|
| #endif
|
|
|
| +#if defined(__arm_nonsfi_linux__)
|
| +
|
| +__asm__(".pushsection .text, \"ax\", %progbits\n"
|
| + ".global __aeabi_read_tp\n"
|
| + ".type __aeabi_read_tp, %function\n"
|
| + ".arm\n"
|
| + "__aeabi_read_tp:\n"
|
| + "push {r1-r3, lr}\n"
|
| + "vpush {d0-d7}\n"
|
| + "blx aeabi_read_tp_impl\n"
|
| + "vpop {d0-d7}\n"
|
| + "pop {r1-r3, pc}\n"
|
| + ".popsection\n");
|
| +
|
| +void *aeabi_read_tp_impl(void) {
|
| + return g_tls_value;
|
| +}
|
| +
|
| +#endif
|
| +
|
| +
|
| struct thread_args {
|
| void (*start_func)(void);
|
| void *thread_ptr;
|
|
|