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

📄 soft-fp.h

📁 移植到2410开发板上的源代码
💻 H
字号:
/* * BK Id: SCCS/s.soft-fp.h 1.5 05/17/01 18:14:23 cort */#ifndef SOFT_FP_H#define SOFT_FP_H#include "sfp-machine.h"#define _FP_WORKBITS		3#define _FP_WORK_LSB		((_FP_W_TYPE)1 << 3)#define _FP_WORK_ROUND		((_FP_W_TYPE)1 << 2)#define _FP_WORK_GUARD		((_FP_W_TYPE)1 << 1)#define _FP_WORK_STICKY		((_FP_W_TYPE)1 << 0)#ifndef FP_RND_NEAREST# define FP_RND_NEAREST		0# define FP_RND_ZERO		1# define FP_RND_PINF		2# define FP_RND_MINF		3#ifndef FP_ROUNDMODE# define FP_ROUNDMODE		FP_RND_NEAREST#endif#endif#define _FP_ROUND_NEAREST(wc, X)			\({  int __ret = 0;					\    int __frac = _FP_FRAC_LOW_##wc(X) & 15;		\    if (__frac & 7) {					\      __ret = EFLAG_INEXACT;				\      if ((__frac & 7) != _FP_WORK_ROUND)		\        _FP_FRAC_ADDI_##wc(X, _FP_WORK_ROUND);		\      else if (__frac & _FP_WORK_LSB)			\        _FP_FRAC_ADDI_##wc(X, _FP_WORK_ROUND);		\    }							\    __ret;						\})#define _FP_ROUND_ZERO(wc, X)				\({  int __ret = 0;					\    if (_FP_FRAC_LOW_##wc(X) & 7)			\      __ret = EFLAG_INEXACT;				\    __ret;						\})#define _FP_ROUND_PINF(wc, X)				\({  int __ret = EFLAG_INEXACT;				\    if (!X##_s && (_FP_FRAC_LOW_##wc(X) & 7))		\      _FP_FRAC_ADDI_##wc(X, _FP_WORK_LSB);		\    else __ret = 0;					\    __ret;						\})#define _FP_ROUND_MINF(wc, X)				\({  int __ret = EFLAG_INEXACT;				\    if (X##_s && (_FP_FRAC_LOW_##wc(X) & 7))		\      _FP_FRAC_ADDI_##wc(X, _FP_WORK_LSB);		\    else __ret = 0;					\    __ret;						\})#define _FP_ROUND(wc, X)			\({	int __ret = 0;				\	switch (FP_ROUNDMODE)			\	{					\	  case FP_RND_NEAREST:			\	    __ret |= _FP_ROUND_NEAREST(wc,X);	\	    break;				\	  case FP_RND_ZERO:			\	    __ret |= _FP_ROUND_ZERO(wc,X);	\	    break;				\	  case FP_RND_PINF:			\	    __ret |= _FP_ROUND_PINF(wc,X);	\	    break;				\	  case FP_RND_MINF:			\	    __ret |= _FP_ROUND_MINF(wc,X);	\	    break;				\	};					\	__ret;					\})#define FP_CLS_NORMAL		0#define FP_CLS_ZERO		1#define FP_CLS_INF		2#define FP_CLS_NAN		3#define _FP_CLS_COMBINE(x,y)	(((x) << 2) | (y))#include "op-1.h"#include "op-2.h"#include "op-4.h"#include "op-common.h"/* Sigh.  Silly things longlong.h needs.  */#define UWtype		_FP_W_TYPE#define W_TYPE_SIZE	_FP_W_TYPE_SIZEtypedef int SItype __attribute__((mode(SI)));typedef int DItype __attribute__((mode(DI)));typedef unsigned int USItype __attribute__((mode(SI)));typedef unsigned int UDItype __attribute__((mode(DI)));#if _FP_W_TYPE_SIZE == 32typedef unsigned int UHWtype __attribute__((mode(HI)));#elif _FP_W_TYPE_SIZE == 64typedef USItype UHWtype;#endif#endif

⌨️ 快捷键说明

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