OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. | |
3 * Use of this source code is governed by a BSD-style license that can be | |
4 * found in the LICENSE file. | |
5 */ | |
6 | |
7 #include "native_client/src/trusted/service_runtime/nacl_config.h" | |
8 | |
9 /* | |
10 * The IRT uses its own private TLS, leaving [r9, #0] for the | |
11 * application. We must define __aeabi_read_tp to get the private one | |
12 * instead of the standard one. The EABI requires that this function | |
13 * preserve all registers except r0 (the return value register). A | |
14 * normal function is permitted to clobber r1, r2, and r3 as well. | |
15 */ | |
16 | |
17 .globl __aeabi_read_tp | |
18 .type __aeabi_read_tp,%function | |
19 .p2align NACL_BLOCK_SHIFT | |
20 __aeabi_read_tp: | |
21 ldr r0, [r9, #4] | |
22 bic lr, lr, #NACL_CONTROL_FLOW_MASK | |
23 bx lr | |
OLD | NEW |