1
2
3
4
5
6
7
8
9 #ifndef __ASM_KVM_FPU_H__
10 #define __ASM_KVM_FPU_H__
11
12 #include <linux/types.h>
13
14 extern void fps_fres(u64 *fpscr, u32 *dst, u32 *src1);
15 extern void fps_frsqrte(u64 *fpscr, u32 *dst, u32 *src1);
16 extern void fps_fsqrts(u64 *fpscr, u32 *dst, u32 *src1);
17
18 extern void fps_fadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
19 extern void fps_fdivs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
20 extern void fps_fmuls(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
21 extern void fps_fsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
22
23 extern void fps_fmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
24 u32 *src3);
25 extern void fps_fmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
26 u32 *src3);
27 extern void fps_fnmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
28 u32 *src3);
29 extern void fps_fnmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
30 u32 *src3);
31 extern 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
41 extern void fpd_fcmpu(u64 *fpscr, u32 *cr, u64 *src1, u64 *src2);
42 extern void fpd_fcmpo(u64 *fpscr, u32 *cr, u64 *src1, u64 *src2);
43
44 FPD_ONE_IN(fsqrts)
45 FPD_ONE_IN(frsqrtes)
46 FPD_ONE_IN(fres)
47 FPD_ONE_IN(frsp)
48 FPD_ONE_IN(fctiw)
49 FPD_ONE_IN(fctiwz)
50 FPD_ONE_IN(fsqrt)
51 FPD_ONE_IN(fre)
52 FPD_ONE_IN(frsqrte)
53 FPD_ONE_IN(fneg)
54 FPD_ONE_IN(fabs)
55 FPD_TWO_IN(fadds)
56 FPD_TWO_IN(fsubs)
57 FPD_TWO_IN(fdivs)
58 FPD_TWO_IN(fmuls)
59 FPD_TWO_IN(fcpsgn)
60 FPD_TWO_IN(fdiv)
61 FPD_TWO_IN(fadd)
62 FPD_TWO_IN(fmul)
63 FPD_TWO_IN(fsub)
64 FPD_THREE_IN(fmsubs)
65 FPD_THREE_IN(fmadds)
66 FPD_THREE_IN(fnmsubs)
67 FPD_THREE_IN(fnmadds)
68 FPD_THREE_IN(fsel)
69 FPD_THREE_IN(fmsub)
70 FPD_THREE_IN(fmadd)
71 FPD_THREE_IN(fnmsub)
72 FPD_THREE_IN(fnmadd)
73
74 extern void kvm_cvt_fd(u32 *from, u64 *to);
75 extern void kvm_cvt_df(u64 *from, u32 *to);
76
77 #endif