kvm_fpu.h (2199B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * 4 * Copyright Novell Inc. 2010 5 * 6 * Authors: Alexander Graf <agraf@suse.de> 7 */ 8 9#ifndef __ASM_KVM_FPU_H__ 10#define __ASM_KVM_FPU_H__ 11 12#include <linux/types.h> 13 14extern void fps_fres(u64 *fpscr, u32 *dst, u32 *src1); 15extern void fps_frsqrte(u64 *fpscr, u32 *dst, u32 *src1); 16extern void fps_fsqrts(u64 *fpscr, u32 *dst, u32 *src1); 17 18extern void fps_fadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2); 19extern void fps_fdivs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2); 20extern void fps_fmuls(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2); 21extern void fps_fsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2); 22 23extern void fps_fmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2, 24 u32 *src3); 25extern void fps_fmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2, 26 u32 *src3); 27extern void fps_fnmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2, 28 u32 *src3); 29extern void fps_fnmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2, 30 u32 *src3); 31extern void fps_fsel(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2, 32 u32 *src3); 33 34#define FPD_ONE_IN(name) extern void fpd_ ## name(u64 *fpscr, u32 *cr, \ 35 u64 *dst, u64 *src1); 36#define FPD_TWO_IN(name) extern void fpd_ ## name(u64 *fpscr, u32 *cr, \ 37 u64 *dst, u64 *src1, u64 *src2); 38#define FPD_THREE_IN(name) extern void fpd_ ## name(u64 *fpscr, u32 *cr, \ 39 u64 *dst, u64 *src1, u64 *src2, u64 *src3); 40 41extern void fpd_fcmpu(u64 *fpscr, u32 *cr, u64 *src1, u64 *src2); 42extern void fpd_fcmpo(u64 *fpscr, u32 *cr, u64 *src1, u64 *src2); 43 44FPD_ONE_IN(fsqrts) 45FPD_ONE_IN(frsqrtes) 46FPD_ONE_IN(fres) 47FPD_ONE_IN(frsp) 48FPD_ONE_IN(fctiw) 49FPD_ONE_IN(fctiwz) 50FPD_ONE_IN(fsqrt) 51FPD_ONE_IN(fre) 52FPD_ONE_IN(frsqrte) 53FPD_ONE_IN(fneg) 54FPD_ONE_IN(fabs) 55FPD_TWO_IN(fadds) 56FPD_TWO_IN(fsubs) 57FPD_TWO_IN(fdivs) 58FPD_TWO_IN(fmuls) 59FPD_TWO_IN(fcpsgn) 60FPD_TWO_IN(fdiv) 61FPD_TWO_IN(fadd) 62FPD_TWO_IN(fmul) 63FPD_TWO_IN(fsub) 64FPD_THREE_IN(fmsubs) 65FPD_THREE_IN(fmadds) 66FPD_THREE_IN(fnmsubs) 67FPD_THREE_IN(fnmadds) 68FPD_THREE_IN(fsel) 69FPD_THREE_IN(fmsub) 70FPD_THREE_IN(fmadd) 71FPD_THREE_IN(fnmsub) 72FPD_THREE_IN(fnmadd) 73 74extern void kvm_cvt_fd(u32 *from, u64 *to); 75extern void kvm_cvt_df(u64 *from, u32 *to); 76 77#endif