mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 00:15:04 +07:00
9322961205
The existing floating point emulations is only available for floating instruction that possibly issue denormalized input and underflow exceptions. These existing FPU emulations are not sufficient when IEx Trap is enabled because some floating point instructions only issue inexact exception. This patch adds the emulations of such floating point instructions. Signed-off-by: Vincent Chen <vincentc@andestech.com> Acked-by: Greentime Hu <greentime@andestech.com> Signed-off-by: Greentime Hu <greentime@andestech.com>
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (C) 2005-2018 Andes Technology Corporation */
|
|
|
|
#ifndef __ARCH_NDS32_FPUEMU_H
|
|
#define __ARCH_NDS32_FPUEMU_H
|
|
|
|
/*
|
|
* single precision
|
|
*/
|
|
|
|
void fadds(void *ft, void *fa, void *fb);
|
|
void fsubs(void *ft, void *fa, void *fb);
|
|
void fmuls(void *ft, void *fa, void *fb);
|
|
void fdivs(void *ft, void *fa, void *fb);
|
|
void fs2d(void *ft, void *fa);
|
|
void fs2si(void *ft, void *fa);
|
|
void fs2si_z(void *ft, void *fa);
|
|
void fs2ui(void *ft, void *fa);
|
|
void fs2ui_z(void *ft, void *fa);
|
|
void fsi2s(void *ft, void *fa);
|
|
void fui2s(void *ft, void *fa);
|
|
void fsqrts(void *ft, void *fa);
|
|
void fnegs(void *ft, void *fa);
|
|
int fcmps(void *ft, void *fa, void *fb, int cop);
|
|
|
|
/*
|
|
* double precision
|
|
*/
|
|
void faddd(void *ft, void *fa, void *fb);
|
|
void fsubd(void *ft, void *fa, void *fb);
|
|
void fmuld(void *ft, void *fa, void *fb);
|
|
void fdivd(void *ft, void *fa, void *fb);
|
|
void fsqrtd(void *ft, void *fa);
|
|
void fd2s(void *ft, void *fa);
|
|
void fd2si(void *ft, void *fa);
|
|
void fd2si_z(void *ft, void *fa);
|
|
void fd2ui(void *ft, void *fa);
|
|
void fd2ui_z(void *ft, void *fa);
|
|
void fsi2d(void *ft, void *fa);
|
|
void fui2d(void *ft, void *fa);
|
|
void fnegd(void *ft, void *fa);
|
|
int fcmpd(void *ft, void *fa, void *fb, int cop);
|
|
|
|
#endif /* __ARCH_NDS32_FPUEMU_H */
|