blob: 0c77bafd66f7696d51f96478d21ea438a7590008 [file] [log] [blame]
Max Filippovba7651f2017-01-25 10:54:11 -08001/*
2 * Xtensa-specific CPU ABI and functions for linux-user
3 */
4#ifndef XTENSA_TARGET_CPU_H
5#define XTENSA_TARGET_CPU_H
6
Richard Henderson608999d2019-11-06 12:33:15 +01007static inline void cpu_clone_regs_child(CPUXtensaState *env,
8 target_ulong newsp,
9 unsigned flags)
Max Filippovba7651f2017-01-25 10:54:11 -080010{
11 if (newsp) {
12 env->regs[1] = newsp;
13 env->sregs[WINDOW_BASE] = 0;
14 env->sregs[WINDOW_START] = 0x1;
15 }
16 env->regs[2] = 0;
17}
18
Richard Henderson07a6ecf2019-11-06 12:33:16 +010019static inline void cpu_clone_regs_parent(CPUXtensaState *env, unsigned flags)
20{
21}
22
Max Filippovba7651f2017-01-25 10:54:11 -080023static inline void cpu_set_tls(CPUXtensaState *env, target_ulong newtls)
24{
25 env->uregs[THREADPTR] = newtls;
26}
27
Laurent Vivier9850f9f2018-05-29 21:42:00 +020028static inline abi_ulong get_sp_from_cpustate(CPUXtensaState *state)
29{
30 return state->regs[1];
31}
Max Filippovba7651f2017-01-25 10:54:11 -080032#endif