root/arch/powerpc/include/asm/kvm_fpu.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  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

/* [<][>][^][v][top][bottom][index][help] */