]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - arch/powerpc/include/asm/kvm_fpu.h
UBUNTU: Ubuntu-5.4.0-117.132
[mirror_ubuntu-focal-kernel.git] / arch / powerpc / include / asm / kvm_fpu.h
CommitLineData
d94d71cb 1/* SPDX-License-Identifier: GPL-2.0-only */
963cf3dc 2/*
963cf3dc
AG
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
49f6be8e
AS
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);
963cf3dc 17
49f6be8e
AS
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);
963cf3dc 22
49f6be8e 23extern void fps_fmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
963cf3dc 24 u32 *src3);
49f6be8e 25extern void fps_fmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
963cf3dc 26 u32 *src3);
49f6be8e 27extern void fps_fnmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
963cf3dc 28 u32 *src3);
49f6be8e 29extern void fps_fnmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
963cf3dc 30 u32 *src3);
49f6be8e 31extern void fps_fsel(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
963cf3dc
AG
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
05d77ac9
AS
74extern void kvm_cvt_fd(u32 *from, u64 *to);
75extern void kvm_cvt_df(u64 *from, u32 *to);
49f6be8e 76
963cf3dc 77#endif