1925ccf32SRichard Henderson /* 2925ccf32SRichard Henderson * HPPA specific CPU ABI and functions for linux-user 3925ccf32SRichard Henderson * 4925ccf32SRichard Henderson * Copyright (c) 2016 Richard Henderson 5925ccf32SRichard Henderson * 6925ccf32SRichard Henderson * This library is free software; you can redistribute it and/or 7925ccf32SRichard Henderson * modify it under the terms of the GNU Lesser General Public 8925ccf32SRichard Henderson * License as published by the Free Software Foundation; either 9925ccf32SRichard Henderson * version 2 of the License, or (at your option) any later version. 10925ccf32SRichard Henderson * 11925ccf32SRichard Henderson * This library is distributed in the hope that it will be useful, 12925ccf32SRichard Henderson * but WITHOUT ANY WARRANTY; without even the implied warranty of 13925ccf32SRichard Henderson * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14925ccf32SRichard Henderson * Lesser General Public License for more details. 15925ccf32SRichard Henderson * 16925ccf32SRichard Henderson * You should have received a copy of the GNU Lesser General Public 17925ccf32SRichard Henderson * License along with this library; if not, see <http://www.gnu.org/licenses/>. 18925ccf32SRichard Henderson */ 19925ccf32SRichard Henderson #ifndef ALPHA_TARGET_CPU_H 20925ccf32SRichard Henderson #define ALPHA_TARGET_CPU_H 21925ccf32SRichard Henderson 22925ccf32SRichard Henderson static inline void cpu_clone_regs(CPUHPPAState *env, target_ulong newsp) 23925ccf32SRichard Henderson { 24925ccf32SRichard Henderson if (newsp) { 25925ccf32SRichard Henderson env->gr[30] = newsp; 26925ccf32SRichard Henderson } 27*fc37dcfeSRichard Henderson /* Indicate child in return value. */ 28925ccf32SRichard Henderson env->gr[28] = 0; 29*fc37dcfeSRichard Henderson /* Return from the syscall. */ 30*fc37dcfeSRichard Henderson env->iaoq_f = env->gr[31]; 31*fc37dcfeSRichard Henderson env->iaoq_b = env->gr[31] + 4; 32925ccf32SRichard Henderson } 33925ccf32SRichard Henderson 34925ccf32SRichard Henderson static inline void cpu_set_tls(CPUHPPAState *env, target_ulong newtls) 35925ccf32SRichard Henderson { 36925ccf32SRichard Henderson env->cr27 = newtls; 37925ccf32SRichard Henderson } 38925ccf32SRichard Henderson 39925ccf32SRichard Henderson #endif 40