⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppc_fpu.h

📁 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具
💻 H
字号:
/* *	PearPC *	ppc_fpu.h * *	Copyright (C) 2003, 2004 Sebastian Biallas (sb@biallas.net) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *	GNU General Public License for more details. * *	You should have received a copy of the GNU General Public License *	along with this program; if not, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __PPC_FPU_H__#define __PPC_FPU_H__#include "types.h"#define FPU_SIGN_BIT (0x8000000000000000ULL)#define FPD_SIGN(v) (((v)&FPU_SIGN_BIT)?1:0)#define FPD_EXP(v) ((v)>>52)#define FPD_FRAC(v) ((v)&0x000fffffffffffffULL)#define FPS_SIGN(v) ((v)&0x80000000)#define FPS_EXP(v) ((v)>>23)#define FPS_FRAC(v) ((v)&0x007fffff)// m must be uint64#define FPD_PACK_VAR(f, s, e, m) (f) = ((s)?FPU_SIGN_BIT:0ULL)|((((uint64)(e))&0x7ff)<<52)|((m)&((1ULL<<52)-1))#define FPD_UNPACK_VAR(f, s, e, m) {(s)=FPD_SIGN(f);(e)=FPD_EXP(f)&0x7ff;(m)=FPD_FRAC(f);}#define FPS_PACK_VAR(f, s, e, m) (f) = ((s)?0x80000000:0)|((e)<<23)|((m)&0x7fffff)#define FPS_UNPACK_VAR(f, s, e, m) {(s)=FPS_SIGN(f);(e)=FPS_EXP(f)&0xff;(m)=FPS_FRAC(f);}#define FPD_UNPACK(freg, fvar) FPD_UNPACK(freg, fvar.s, fvar.e, fvar.m)void ppc_fpu_test();typedef enum {	ppc_fpr_norm,	ppc_fpr_zero,	ppc_fpr_NaN,	ppc_fpr_Inf,}ppc_fpr_type;typedef struct ppc_quadro_s {	ppc_fpr_type type;	int s;	int e;	uint64 m0;	// most  significant	uint64 m1;	// least significant}ppc_quadro;typedef struct ppc_double_s {	ppc_fpr_type type;	int s;	int e;	uint64 m;}ppc_double;typedef struct ppc_single_s {	ppc_fpr_type type;	int s;	int e;	uint m;}ppc_single;double ppc_fpu_get_uint64(uint64 d);double ppc_fpu_get_double(ppc_double *d);void ppc_opc_fabsx();void ppc_opc_faddx();void ppc_opc_faddsx();void ppc_opc_fcmpo();void ppc_opc_fcmpu();void ppc_opc_fctiwx();void ppc_opc_fctiwzx();void ppc_opc_fdivx();void ppc_opc_fdivsx();void ppc_opc_fmaddx();void ppc_opc_fmaddsx();void ppc_opc_fmrx();void ppc_opc_fmsubx();void ppc_opc_fmsubsx();void ppc_opc_fmulx();void ppc_opc_fmulsx();void ppc_opc_fnabsx();void ppc_opc_fnegx();void ppc_opc_fnmaddx();void ppc_opc_fnmaddsx();void ppc_opc_fnmsubx();void ppc_opc_fnmsubsx();void ppc_opc_fresx();void ppc_opc_frspx();void ppc_opc_frsqrtex();void ppc_opc_fselx();void ppc_opc_fsqrtx();void ppc_opc_fsqrtsx();void ppc_opc_fsubx();void ppc_opc_fsubsx();#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -