cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

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