mirror of https://github.com/xqemu/xqemu.git
linux-user: Add ARM get_tls syscall support
Co-Authored-By: Mickaël Guêné <mickael.guene@st.com> Signed-off-by: Christophe Lyon <christophe.lyon@st.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20180416091845.7315-1-christophe.lyon@st.com> [lv: moved the change to linux-user/arm/cpu_loop.c] Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
de6e89b81f
commit
62aaa51464
|
@ -347,6 +347,9 @@ void cpu_loop(CPUARMState *env)
|
||||||
case ARM_NR_breakpoint:
|
case ARM_NR_breakpoint:
|
||||||
env->regs[15] -= env->thumb ? 2 : 4;
|
env->regs[15] -= env->thumb ? 2 : 4;
|
||||||
goto excp_debug;
|
goto excp_debug;
|
||||||
|
case ARM_NR_get_tls:
|
||||||
|
env->regs[0] = cpu_get_tls(env);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
gemu_log("qemu: Unsupported ARM syscall: 0x%x\n",
|
gemu_log("qemu: Unsupported ARM syscall: 0x%x\n",
|
||||||
n);
|
n);
|
||||||
|
|
|
@ -16,6 +16,7 @@ struct target_pt_regs {
|
||||||
#define ARM_NR_breakpoint (ARM_NR_BASE + 1)
|
#define ARM_NR_breakpoint (ARM_NR_BASE + 1)
|
||||||
#define ARM_NR_cacheflush (ARM_NR_BASE + 2)
|
#define ARM_NR_cacheflush (ARM_NR_BASE + 2)
|
||||||
#define ARM_NR_set_tls (ARM_NR_BASE + 5)
|
#define ARM_NR_set_tls (ARM_NR_BASE + 5)
|
||||||
|
#define ARM_NR_get_tls (ARM_NR_BASE + 6)
|
||||||
|
|
||||||
#define ARM_NR_semihosting 0x123456
|
#define ARM_NR_semihosting 0x123456
|
||||||
#define ARM_NR_thumb_semihosting 0xAB
|
#define ARM_NR_thumb_semihosting 0xAB
|
||||||
|
|
Loading…
Reference in New Issue