xref: /openbmc/qemu/linux-user/xtensa/target_cpu.h (revision ba7651fb)
1*ba7651fbSMax Filippov /*
2*ba7651fbSMax Filippov  * Xtensa-specific CPU ABI and functions for linux-user
3*ba7651fbSMax Filippov  */
4*ba7651fbSMax Filippov #ifndef XTENSA_TARGET_CPU_H
5*ba7651fbSMax Filippov #define XTENSA_TARGET_CPU_H
6*ba7651fbSMax Filippov 
7*ba7651fbSMax Filippov static inline void cpu_clone_regs(CPUXtensaState *env, target_ulong newsp)
8*ba7651fbSMax Filippov {
9*ba7651fbSMax Filippov     if (newsp) {
10*ba7651fbSMax Filippov         env->regs[1] = newsp;
11*ba7651fbSMax Filippov         env->sregs[WINDOW_BASE] = 0;
12*ba7651fbSMax Filippov         env->sregs[WINDOW_START] = 0x1;
13*ba7651fbSMax Filippov     }
14*ba7651fbSMax Filippov     env->regs[2] = 0;
15*ba7651fbSMax Filippov }
16*ba7651fbSMax Filippov 
17*ba7651fbSMax Filippov static inline void cpu_set_tls(CPUXtensaState *env, target_ulong newtls)
18*ba7651fbSMax Filippov {
19*ba7651fbSMax Filippov     env->uregs[THREADPTR] = newtls;
20*ba7651fbSMax Filippov }
21*ba7651fbSMax Filippov 
22*ba7651fbSMax Filippov #endif
23