| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * LoongArch specific CPU ABI and functions for linux-user |
| * |
| * Copyright (c) 2021 Loongson Technology Corporation Limited |
| */ |
| |
| #ifndef LOONGARCH_TARGET_CPU_H |
| #define LOONGARCH_TARGET_CPU_H |
| |
| static inline void cpu_clone_regs_child(CPULoongArchState *env, |
| target_ulong newsp, unsigned flags) |
| { |
| if (newsp) { |
| env->gpr[3] = newsp; |
| } |
| env->gpr[4] = 0; |
| } |
| |
| static inline void cpu_clone_regs_parent(CPULoongArchState *env, |
| unsigned flags) |
| { |
| } |
| |
| static inline void cpu_set_tls(CPULoongArchState *env, target_ulong newtls) |
| { |
| env->gpr[2] = newtls; |
| } |
| |
| static inline abi_ulong get_sp_from_cpustate(CPULoongArchState *state) |
| { |
| return state->gpr[3]; |
| } |
| #endif |