| 1 | /* |
| 2 | * arm cpu related code |
| 3 | * |
| 4 | * Copyright (c) 2013 Stacey D. Son |
| 5 | * |
| 6 | * SPDX-License-Identifier: GPL-2.0-or-later |
| 7 | */ |
| 8 | #include "qemu/osdep.h" |
| 9 | #include "target_arch.h" |
| 10 | |
| 11 | void target_cpu_set_tls(CPUARMState *env, target_ulong newtls) |
| 12 | { |
| 13 | if (access_secure_reg(env)) { |
| 14 | env->cp15.tpidrurw_s = newtls; |
| 15 | env->cp15.tpidruro_s = newtls; |
| 16 | return; |
| 17 | } |
| 18 | |
| 19 | env->cp15.tpidr_el[0] = newtls; |
| 20 | env->cp15.tpidrro_el[0] = newtls; |
| 21 | } |
| 22 | |
| 23 | target_ulong target_cpu_get_tls(CPUARMState *env) |
| 24 | { |
| 25 | if (access_secure_reg(env)) { |
| 26 | return env->cp15.tpidruro_s; |
| 27 | } |
| 28 | return env->cp15.tpidrro_el[0]; |
| 29 | } |