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

📄 fpaversion.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
#define CS_SINCOS 0xE0000980#define CD_SINCOS 0xE0000984#define CS_CPY 0xE0000880#define CD_CPY 0xE0000884#define CS_PIV1 0xE0000888#define CD_PIV1 0xE000088C#define CS_PIV2 0xE0000890#define CD_PIV2 0xE0000894#define CS_PIV3 0xE0000898#define CD_PIV3 0xE000089C#define CS_PIV4 0xE00008A0#define CD_PIV4 0xE00008A4#define CS_PIV5 0xE00008A8#define CD_PIV5 0xE00008AC#define CS_PIV6 0xE00008B0#define CD_PIV6 0xE00008B4#define CS_ALU00 0xE0000A00#define CD_ALU00 0xE0000A04#define CS_ALU01 0xE0000A10#define CD_ALU01 0xE0000A14#define CS_ALU02 0xE0000A20#define CD_ALU02 0xE0000A24#define CS_ALU03 0xE0000A30#define CD_ALU03 0xE0000A34#define CS_ALU04 0xE0000A40#define CD_ALU04 0xE0000A44#define CS_ALU05 0xE0000A50#define CD_ALU05 0xE0000A54#define CS_ALU06 0xE0000A60#define CD_ALU06 0xE0000A64#define CS_ALU07 0xE0000A70#define CD_ALU07 0xE0000A74#define CS_ALU08 0xE0000A80#define CD_ALU08 0xE0000A84#define CS_ALU09 0xE0000A90#define CD_ALU09 0xE0000A94#define CS_ALU0A 0xE0000AA0#define CD_ALU0A 0xE0000AA4#define CS_ALU0B 0xE0000AB0#define CD_ALU0B 0xE0000AB4#define CS_ALU0C 0xE0000AC0#define CD_ALU0C 0xE0000AC4#define CS_ALU0D 0xE0000AD0#define CD_ALU0D 0xE0000AD4#define CS_ALU0E 0xE0000AE0#define CD_ALU0E 0xE0000AE4#define CS_ALU0F 0xE0000AF0#define CD_ALU0F 0xE0000AF4#define CS_ALU10 0xE0000B00#define CD_ALU10 0xE0000B04#define CS_ALU11 0xE0000B10#define CD_ALU11 0xE0000B14#define CS_ALU12 0xE0000B20#define CD_ALU12 0xE0000B24#define CS_ALU13 0xE0000B30#define CD_ALU13 0xE0000B34#define CS_ALU14 0xE0000B40#define CD_ALU14 0xE0000B44#define CS_ALU15 0xE0000B50#define CD_ALU15 0xE0000B54#define CS_ALU16 0xE0000B60#define CD_ALU16 0xE0000B64#define CS_ALU17 0xE0000B70#define CD_ALU17 0xE0000B74#define CS_ALU18 0xE0000B80#define CD_ALU18 0xE0000B84#define CS_ALU19 0xE0000B90#define CD_ALU19 0xE0000B94#define CS_ALU1A 0xE0000BA0#define CD_ALU1A 0xE0000BA4#define CS_ALU1B 0xE0000BB0#define CD_ALU1B 0xE0000BB4#define CS_ALU1C 0xE0000BC0#define CD_ALU1C 0xE0000BC4#define CS_ALU1D 0xE0000BD0#define CD_ALU1D 0xE0000BD4#define CS_ALU1E 0xE0000BE0#define CD_ALU1E 0xE0000BE4#define CS_ALU1F 0xE0000BF0#define CD_ALU1F 0xE0000BF4#define CS_2DOT 0xE00008B8#define CD_2DOT 0xE00008BC#define CS_3DOT 0xE00008C0#define CD_3DOT 0xE00008C4#define CS_4DOT 0xE00008C8#define CD_4DOT 0xE00008CC#define CS_2MOV 0xE0000988#define CD_2MOV 0xE000098C#define CS_3MOV 0xE0000990#define CD_3MOV 0xE0000994#define CS_4MOV 0xE0000998#define CD_4MOV 0xE000099C#define CS_2TRN 0xE00009A0#define CD_2TRN 0xE00009A4#define CS_3TRN 0xE00009A8#define CD_3TRN 0xE00009AC#define CS_4TRN 0xE00009B0#define CD_4TRN 0xE00009B4/*	status codes */#define ST_DONTCARE -1#define ST_EQUAL (0x0 << FPA_STATUS_SHIFT)#define ST_LESSTHAN (0x1 << FPA_STATUS_SHIFT)#define ST_GREATERTHAN (0x2 << FPA_STATUS_SHIFT)#define ST_UNORDERED (0x3 << FPA_STATUS_SHIFT)#define ST_ZERO (0x0 << FPA_STATUS_SHIFT)#define ST_INFINITY (0x1 << FPA_STATUS_SHIFT)#define ST_FINITEEXACT (0x2 << FPA_STATUS_SHIFT)#define ST_FINITEINEXACT (0x3 << FPA_STATUS_SHIFT)#define ST_OUTOFBOUNDS (0x4 << FPA_STATUS_SHIFT)#define ST_OVERFLOWINEXACT (0x5 << FPA_STATUS_SHIFT)#define ST_UNDERFLOW (0x6 << FPA_STATUS_SHIFT)#define ST_UNDERFLOWINEXACT (0x7 << FPA_STATUS_SHIFT)#define ST_ADNRM (0x8 << FPA_STATUS_SHIFT)#define ST_BDNRM (0x9 << FPA_STATUS_SHIFT)#define ST_ABDNRM (0xA << FPA_STATUS_SHIFT)#define ST_DIVBY0 (0xB << FPA_STATUS_SHIFT)#define ST_ANAN (0xC << FPA_STATUS_SHIFT)#define ST_BNAN (0xD << FPA_STATUS_SHIFT)#define ST_ABNAN (0xE << FPA_STATUS_SHIFT)#define ST_INVALIDOP (0xF << FPA_STATUS_SHIFT)struct op1_table{	char *name;	long r1;	long data;	long result;	int op;	long status;};struct op1_table sp_table[] ={	"nop", 0x0, 0x0, 0x0, SP_NOP, ST_DONTCARE,	"nop", ssnan, 0x0, ssnan, SP_NOP, ST_DONTCARE,	"negate", 0x0, sone, smone, SP_NEG, ST_FINITEEXACT,	"negate", 0x0, smone, sone, SP_NEG, ST_FINITEEXACT,	"negate", 0x0, ssnan, sone, SP_NEG, ST_ANAN,	"absolute value", 0x0, smone, sone, SP_ABS, ST_FINITEEXACT,	"absolute value", 0x0, sone, sone, SP_ABS, ST_FINITEEXACT,	"absolute value", 0x0, ssnan, sone, SP_ABS, ST_ANAN,	"float", 0x0, 1, sone, SP_FLT, ST_FINITEEXACT,	"float", 0x0, -1, smone, SP_FLT, ST_FINITEEXACT,	"float", 0x0, 4, sfour, SP_FLT, ST_FINITEEXACT,	"fix", 0x0, sone, 1, SP_FIX, ST_FINITEEXACT,	"fix", 0x0, smone, -1, SP_FIX, ST_FINITEEXACT,	"fix", 0x0, seight, 8, SP_FIX, ST_FINITEEXACT,	"fix", 0x0, spio2, 1, SP_FIX, ST_FINITEINEXACT,	"fix", 0x0, ssnan, 2, SP_FIX, ST_ANAN,	"square", 0x0, smone, sone, SP_SQR, ST_FINITEEXACT,	"square", 0x0, sone, sone, SP_SQR, ST_FINITEEXACT,	"square", 0x0, stwo, sfour, SP_SQR, ST_FINITEEXACT,	"square", 0x0, s1e2, s1e4, SP_SQR, ST_FINITEEXACT,	"square", 0x0, ssqrt2, 0x3fffffff, SP_SQR, ST_FINITEINEXACT,	"square", 0x0, ssnan, stwo, SP_SQR, ST_ABNAN,	"add", shalf, shalf, sone, SP_ADD, ST_FINITEEXACT,	"add", sone, sone, stwo, SP_ADD, ST_FINITEEXACT,	"add", sone, smone, szero, SP_ADD, ST_ZERO,	"add", smone, stwo, sone, SP_ADD, ST_FINITEEXACT,	"add", spio2, spio2, spi, SP_ADD, ST_FINITEEXACT,	"add", sone, sminnorm, sone, SP_ADD, ST_FINITEINEXACT,	"add", ssnan, spio2, spi, SP_ADD, ST_ANAN,	"add", spio2, ssnan, spi, SP_ADD, ST_BNAN,	"add", ssnan, ssnan, spi, SP_ADD, ST_ABNAN,	"subtract", sone, shalf, shalf, SP_SUB, ST_FINITEEXACT,	"subtract", ssnan, shalf, shalf, SP_SUB, ST_ANAN,	"multiply", sone, shalf, shalf, SP_MUL, ST_FINITEEXACT,	"multiply", 0x3FD3B200, 0xBD5BB555, 0xBDB5AF39, SP_MUL, ST_FINITEINEXACT,	"multiply", 0xBD5BB555, 0x3FD3B200, 0xBDB5AF39, SP_MUL, ST_FINITEINEXACT,	"multiply", sone, szero, szero, SP_MUL, ST_ZERO,	"multiply", sfour, shalf, stwo, SP_MUL, ST_FINITEEXACT,	"multiply", ssqrt2, ssqrt2, 0x3fffffff, SP_MUL, ST_FINITEINEXACT,	"multiply", ssnan, stwo, spi, SP_MUL, ST_BNAN,	"divide", shalf, sone, shalf, SP_DIV, ST_FINITEEXACT,	"divide", shalf, sfour, s1o8, SP_DIV, ST_FINITEEXACT,	"divide", spi, stwo, spio2, SP_DIV, ST_FINITEEXACT,	"divide", stwo, ssqrt2, ssqrt2, SP_DIV, ST_FINITEINEXACT,	"divide", ssnan, stwo, spio2, SP_DIV, ST_ANAN,	"backwards subtract", shalf, sone, shalf, SP_BSUB, ST_FINITEEXACT,	"backwards subtract", smone, smone, szero, SP_BSUB, ST_ZERO,	"backwards subtract", smone, ssnan, szero, SP_BSUB, ST_ANAN,	"backwards divide", stwo, spi, spio2, SP_BDIV, ST_FINITEEXACT,	"backwards divide", ssqrt2, stwo, ssqrt2, SP_BDIV, ST_FINITEINEXACT,	"backwards divide", stwo, ssnan, spio2, SP_BDIV, ST_ANAN,	"compare with 0", sone, shalf, sone, SP_CMP0, ST_GREATERTHAN,	"compare with 0", ssnan, ssnan, ssnan, SP_CMP0, ST_INVALIDOP,	"compare with R", sone, shalf, sone, SP_CMPR, ST_GREATERTHAN,	"compare with R", sone, stwo, sone, SP_CMPR, ST_LESSTHAN,	"compare with R", stwo, sone, stwo, SP_CMPR, ST_GREATERTHAN,	"compare with R", ssnan, sone, stwo, SP_CMPR, ST_INVALIDOP,	"compare with Mag R", sone, shalf, sone, SP_CMPM, ST_GREATERTHAN,	"compare with Mag R", ssnan, shalf, sone, SP_CMPM, ST_INVALIDOP,	0, 0, 0, 0, 0, 0};struct op1_table spp_table[] ={	"nop", 0x0, 0x0, 0x0, SP_NOP, ST_DONTCARE,	"nop", ssnan, 0x0, ssnan, SP_NOP, ST_DONTCARE,	"negate", 0x0, sone, smone, SP_NEG, ST_INFINITY,	"negate", 0x0, smone, sone, SP_NEG, ST_INFINITY,	"negate", 0x0, ssnan, sone, SP_NEG, ST_ANAN,	"absolute value", 0x0, smone, sone, SP_ABS, ST_INFINITY,	"absolute value", 0x0, sone, sone, SP_ABS, ST_INFINITY,	"absolute value", 0x0, ssnan, sone, SP_ABS, ST_ANAN,	"float", 0x0, 1, sone, SP_FLT, ST_INFINITY,	"float", 0x0, -1, smone, SP_FLT, ST_INFINITY,	"float", 0x0, 4, sfour, SP_FLT, ST_INFINITY,	"fix", 0x0, sone, 1, SP_FIX, ST_INFINITY,	"fix", 0x0, smone, -1, SP_FIX, ST_INFINITY,	"fix", 0x0, seight, 8, SP_FIX, ST_INFINITY,

⌨️ 快捷键说明

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