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

📄 fpaversion.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
	"fix", 0x0, spio2, 1, SP_FIX, ST_FINITEINEXACT,	"fix", 0x0, ssnan, 2, SP_FIX, ST_ANAN,	"square", 0x0, smone, sone, SP_SQR, ST_INFINITY,	"square", 0x0, sone, sone, SP_SQR, ST_INFINITY,	"square", 0x0, stwo, sfour, SP_SQR, ST_INFINITY,	"square", 0x0, s1e2, s1e4, SP_SQR, ST_INFINITY,	"square", 0x0, ssqrt2, 0x3fffffff, SP_SQR, ST_FINITEINEXACT,	"square", 0x0, ssnan, stwo, SP_SQR, ST_ABNAN,	"add", shalf, shalf, sone, SP_ADD, ST_INFINITY,	"add", sone, sone, stwo, SP_ADD, ST_INFINITY,	"add", sone, smone, szero, SP_ADD, ST_ZERO,	"add", smone, stwo, sone, SP_ADD, ST_INFINITY,	"add", spio2, spio2, spi, SP_ADD, ST_INFINITY,	"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_INFINITY,	"subtract", ssnan, shalf, shalf, SP_SUB, ST_ANAN,	"multiply", sone, shalf, shalf, SP_MUL, ST_INFINITY,	"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_INFINITY,	"multiply", ssqrt2, ssqrt2, 0x3fffffff, SP_MUL, ST_FINITEINEXACT,	"multiply", ssnan, stwo, spi, SP_MUL, ST_BNAN,	"divide", shalf, sone, shalf, SP_DIV, ST_INFINITY,	"divide", shalf, sfour, s1o8, SP_DIV, ST_INFINITY,	"divide", spi, stwo, spio2, SP_DIV, ST_INFINITY,	"divide", stwo, ssqrt2, ssqrt2, SP_DIV, ST_FINITEINEXACT,	"divide", ssnan, stwo, spio2, SP_DIV, ST_ANAN,	"backwards subtract", shalf, sone, shalf, SP_BSUB, ST_INFINITY,	"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_INFINITY,	"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 op2_table{	char *name;	long r1_ms, r1_ls;	long data_ms, data_ls;	long result_ms, result_ls;	int op1, op2;	long status;};/*	Note that some entries in the following structure are actually	two entries!!! */struct op2_table dp_table[] ={	"nop", dzero, dzero, dzero, DP_NOP, ST_DONTCARE,	"negate", dzero, done, dmone, DP_NEG, ST_FINITEEXACT,	"negate", dzero, dmone, done, DP_NEG, ST_FINITEEXACT,	"abs value", dzero, dmone, done, DP_ABS, ST_FINITEEXACT,	"abs value", dzero, done, done, DP_ABS, ST_FINITEEXACT,	"float", dzero, 2, 0, dtwo, DP_FLT, ST_FINITEEXACT,	"float", dzero, -1, 0, dmone, DP_FLT, ST_FINITEEXACT,	"fix", 0x33333333, 0xaaaaaaaa, dfour, 4, 0xaaaaaaaa, DP_FIX, ST_FINITEEXACT,	"fix", 0x33333333, 0xaaaaaaaa, done, 1, 0xaaaaaaaa, DP_FIX, ST_FINITEEXACT,	"fix", 0x33333333, 0xaaaaaaaa, dmone, -1, 0xaaaaaaaa, DP_FIX, ST_FINITEEXACT,	"convert", 0, 0x55555555, deight, seight, 0x55555555, DP_CNV, ST_FINITEEXACT,	"square", dzero, dtwo, dfour, DP_SQR, ST_FINITEEXACT,	"square", dzero, d1e2, d1e4, DP_SQR, ST_FINITEEXACT,	"square", dzero, dsqrt2, 0x40000000, 0x00000001, DP_SQR, ST_FINITEINEXACT,	"square", dzero, dsnan, dtwo, DP_SQR, ST_ABNAN,	"add", dhalf, dhalf, done, DP_ADD, ST_FINITEEXACT,/* an example of where the Weitek chips didn't meet IEEE !!! */	"add", 0x3ff3fdcd, 0xc41c154c, 0xbf71a36a, 0x1b0a4aa0, 0x3ff3ec2a, 0x5a010b01, DP_ADD, ST_FINITEINEXACT,	"add", 0xbf71a36a, 0x1b0a4aa0, 0x3ff3fdcd, 0xc41c154c, 0x3ff3ec2a, 0x5a010b01, DP_ADD, ST_FINITEINEXACT,/* an example of where the Weitek chips didn't meet IEEE !!! */	"add", done, dmone, dzero, DP_ADD, ST_ZERO,	"subtract", done, dhalf, dhalf, DP_SUB, ST_FINITEEXACT,	"multiply", 0x3fe02061, 0x02c794b9, 0xbfdd3b00, 0x0, 0xbfcd7627, 0x3ac3fd84, DP_MUL, ST_FINITEINEXACT,	"multiply", done, dhalf, dhalf, DP_MUL, ST_FINITEEXACT,	"multiply", dfour, dhalf, dtwo, DP_MUL, ST_FINITEEXACT,	"divide", dhalf, done, dhalf, DP_DIV, ST_FINITEEXACT,	"divide", dhalf, dfour, d1o8, DP_DIV, ST_FINITEEXACT,	"bw subtract", dhalf, done, dhalf, DP_BSUB, ST_FINITEEXACT,	"bw divide", done, dhalf, dhalf, DP_BDIV, ST_FINITEEXACT,	"compare with 0", done, dhalf, done, DP_CMP0, ST_GREATERTHAN,	"compare with R", done, dhalf, done, DP_CMPR, ST_GREATERTHAN,	"compare with R", done, dtwo, done, DP_CMPR, ST_LESSTHAN,	"compare with R", dtwo, done, dtwo, DP_CMPR, ST_GREATERTHAN,	"compare with Mag R", done, dhalf, done, DP_CMPM, ST_GREATERTHAN,	0, 0, 0, 0, 0, 0, 0, 0, 0, 0};struct op2_table dpp_table[] ={	"nop", dzero, dzero, dzero, DP_NOP, ST_DONTCARE,	"negate", dzero, done, dmone, DP_NEG, ST_INFINITY,	"negate", dzero, dmone, done, DP_NEG, ST_INFINITY,	"abs value", dzero, dmone, done, DP_ABS, ST_INFINITY,	"abs value", dzero, done, done, DP_ABS, ST_INFINITY,	"float", dzero, 2, 0, dtwo, DP_FLT, ST_INFINITY,	"float", dzero, -1, 0, dmone, DP_FLT, ST_INFINITY,	"fix", 0x33333333, 0xaaaaaaaa, dfour, 4, 0xaaaaaaaa, DP_FIX, ST_INFINITY,	"fix", 0x33333333, 0xaaaaaaaa, done, 1, 0xaaaaaaaa, DP_FIX, ST_INFINITY,	"fix", 0x33333333, 0xaaaaaaaa, dmone, -1, 0xaaaaaaaa, DP_FIX, ST_INFINITY,	"convert", 0, 0x55555555, deight, seight, 0x55555555, DP_CNV, ST_INFINITY,	"square", dzero, dtwo, dfour, DP_SQR, ST_INFINITY,	"square", dzero, d1e2, d1e4, DP_SQR, ST_INFINITY,	"square", dzero, dsqrt2, 0x40000000, 0x00000001, DP_SQR, ST_FINITEINEXACT,	"square", dzero, dsnan, dtwo, DP_SQR, ST_ABNAN,	"add", dhalf, dhalf, done, DP_ADD, ST_INFINITY,/* an example of where the Weitek chips didn't meet IEEE !!! */	"add", 0x3ff3fdcd, 0xc41c154c, 0xbf71a36a, 0x1b0a4aa0, 0x3ff3ec2a, 0x5a010b01, DP_ADD, ST_FINITEINEXACT,	"add", 0xbf71a36a, 0x1b0a4aa0, 0x3ff3fdcd, 0xc41c154c, 0x3ff3ec2a, 0x5a010b01, DP_ADD, ST_FINITEINEXACT,/* an example of where the Weitek chips didn't meet IEEE !!! */	"add", done, dmone, dzero, DP_ADD, ST_ZERO,	"subtract", done, dhalf, dhalf, DP_SUB, ST_INFINITY,	"multiply", 0x3fe02061, 0x02c794b9, 0xbfdd3b00, 0x0, 0xbfcd7627, 0x3ac3fd84, DP_MUL, ST_FINITEINEXACT,	"multiply", done, dhalf, dhalf, DP_MUL, ST_INFINITY,	"multiply", dfour, dhalf, dtwo, DP_MUL, ST_INFINITY,	"divide", dhalf, done, dhalf, DP_DIV, ST_INFINITY,	"divide", dhalf, dfour, d1o8, DP_DIV, ST_INFINITY,	"bw subtract", dhalf, done, dhalf, DP_BSUB, ST_INFINITY,	"bw divide", done, dhalf, dhalf, DP_BDIV, ST_INFINITY,	"compare with 0", done, dhalf, done, DP_CMP0, ST_GREATERTHAN,	"compare with R", done, dhalf, done, DP_CMPR, ST_GREATERTHAN,	"compare with R", done, dtwo, done, DP_CMPR, ST_LESSTHAN,	"compare with R", dtwo, done, dtwo, DP_CMPR, ST_GREATERTHAN,	"compare with Mag R", done, dhalf, done, DP_CMPM, ST_GREATERTHAN,	0, 0, 0, 0, 0, 0, 0, 0, 0, 0};struct op1_2_table{	char *name;	long r1_ms, r1_ls;	long data;	long result_ms, result_ls;	int op;	long status;};struct op1_2_table sd_table[] ={	"convert", 0, 0, seight, deight, SP_CNV, ST_FINITEEXACT,	"convert", 0, 0, smone, dmone, SP_CNV, ST_FINITEEXACT,	0, 0, 0, 0, 0, 0, 0, 0};struct op1_2_table sdp_table[] ={	"convert", 0, 0, seight, deight, SP_CNV, ST_INFINITY,	"convert", 0, 0, smone, dmone, SP_CNV, ST_INFINITY,	0, 0, 0, 0, 0, 0, 0, 0};struct opx_table{	char *name;	long r1_sp, r1_ms, r1_ls;	long r2_sp, r2_ms, r2_ls;	long r3_sp, r3_ms, r3_ls;	long data_sp, data_ms, data_ls;	long result_sp, result_ms, result_ls;	long op_sp, op_dp;	long status;};struct opx_table x_table[] ={	"add", ssnan, dsnan, sone, done, ssnan, dsnan, sone, done, stwo, dtwo, XS_ADD, XD_ADD, ST_FINITEEXACT,	"add", ssnan, dsnan, stwo, dtwo, ssnan, dsnan, sminnorm, dminnorm, stwo, dtwo, XS_ADD, XD_ADD, ST_FINITEINEXACT,	"add", ssnan, dsnan, stwo, dtwo, ssnan, dsnan, smone, dmone, sone, done, XS_ADD, XD_ADD, ST_FINITEEXACT,	"add", ssnan, dsnan, sone, done, ssnan, dsnan, ssnan, dsnan, stwo, dtwo, XS_ADD, XD_ADD, ST_BNAN,	"add", ssnan, dsnan, ssnan, dsnan, ssnan, dsnan, sone, done, stwo, dtwo, XS_ADD, XD_ADD, ST_ANAN,	"subtract", ssnan, dsnan, sone, done, ssnan, dsnan, stwo, dtwo, smone, dmone, XS_SUB, XD_SUB, ST_FINITEEXACT,	"subtract", ssnan, dsnan, sone, done, ssnan, dsnan, sminnorm, dminnorm, sone, done, XS_SUB, XD_SUB, ST_FINITEINEXACT,	"subtract", ssnan, dsnan, ssnan, dsnan, ssnan, dsnan, sone, done, szero, dzero, XS_SUB, XD_SUB, ST_ANAN,	"multiply", ssnan, dsnan, sone, done, ssnan, dsnan, sone, done, sone, done, XS_MUL, XD_MUL, ST_FINITEEXACT,	"multiply", ssnan, dsnan, ssqrt2, 0xbfdd3b00, 0x0, ssnan, dsnan, ssqrt2, 0x3fe02061, 0x02c794b9, 0x3fffffff, 0xbfcd7627, 0x3ac3fd84, XS_MUL, XD_MUL, ST_FINITEINEXACT,	"multiply", ssnan, dsnan, ssnan, done, ssnan, dsnan, sone, dsnan, smone, dmone, XS_MUL, XD_MUL, ST_BNAN,	"divide", ssnan, dsnan, smone, dmone, ssnan, dsnan, sone, done, smone, dmone, XS_DIV, XD_DIV, ST_FINITEEXACT,	"divide", ssnan, dsnan, seight, deight, ssnan, dsnan, stwo, dtwo, sfour, dfour, XS_DIV, XD_DIV, ST_FINITEEXACT,	"divide", ssnan, dsnan, sone, done, ssnan, dsnan, sonezp1, donezp1, sonezm2, donezm2, XS_DIV, XD_DIV, ST_FINITEINEXACT,	"divide", ssnan, dsnan, ssnan, dsnan, ssnan, dsnan, stwo, dtwo, sfour, dfour, XS_DIV, XD_DIV, ST_ANAN,	"bw sub", ssnan, dsnan, stwo, dtwo, ssnan, dsnan, sone, done, smone, dmone, XS_BSUB, XD_BSUB, ST_FINITEEXACT,	"bw sub", ssnan, dsnan, sminnorm, dminnorm, ssnan, dsnan, stwo, dtwo, stwo, dtwo, XS_BSUB, XD_BSUB, ST_FINITEINEXACT,	"bw sub", ssnan, dsnan, ssnan, dsnan, ssnan, dsnan, sone, done, smone, dmone, XS_BSUB, XD_BSUB, ST_BNAN,	"bw div", ssnan, dsnan, stwo, dtwo, ssnan, dsnan, sone, done, shalf, dhalf, XS_BDIV, XD_BDIV, ST_FINITEEXACT,	"bw div", ssnan, dsnan, sonezp1, donezp1, ssnan, dsnan, sone, done, sonezm2, donezm2, XS_BDIV, XD_BDIV, ST_FINITEINEXACT,	"bw div", ssnan, dsnan, ssnan, dsnan, ssnan, dsnan, sone, done, shalf, dhalf, XS_BDIV, XD_BDIV, ST_BNAN,	"3+(2*d)", ssnan, dsnan, shalf, dhalf, stwo, dtwo, sfour, dfour, sfour, dfour, XS_PIV0, XD_PIV0, ST_FINITEEXACT,	"3+(2*d)", ssnan, dsnan, shalf, dhalf, ssnan, dsnan, sfour, dfour, sfour, dfour, XS_PIV0, XD_PIV0, ST_ANAN,	"3+(2*d)", ssnan, dsnan, ssnan, dfour, stwo, dtwo, sfour, dsnan, sfour, dfour, XS_PIV0, XD_PIV0, ST_BNAN,	"3-(2*d)", ssnan, dsnan, shalf, dhalf, stwo, dtwo, sfour, dfour, szero, dzero, XS_PIV1, XD_PIV1, ST_ZERO,	"3-(2*d)", ssnan, dsnan, ssnan, dzero, stwo, dtwo, sfour, dsnan, szero, dfour, XS_PIV1, XD_PIV1, ST_BNAN,	"3-(2*d)", ssnan, dsnan, shalf, dhalf, ssnan, dsnan, sfour, dfour, szero, dzero, XS_PIV1, XD_PIV1, ST_ANAN,	"-3+(2*d)", ssnan, dsnan, sone, done, shalf, dhalf, shalf, dhalf, szero, dzero, XS_PIV2, XD_PIV2, ST_ZERO,	"-3+(2*d)", ssnan, dsnan, ssnan, dzero, shalf, dhalf, shalf, dsnan, szero, dhalf, XS_PIV2, XD_PIV2, ST_BNAN,	"-3+(2*d)", ssnan, dsnan, sone, done, ssnan, dsnan, shalf, dhalf, szero, dzero, XS_PIV2, XD_PIV2, ST_BNAN,	"3*(2+d)", ssnan, dsnan, shalf, dhalf, sfour, dfour, shalf, dhalf, sfour, dfour, XS_PIV3, XD_PIV3, ST_FINITEEXACT,	"3*(2+d)", ssnan, dsnan, shalf, dhalf, ssnan, dfour, shalf, dsnan, sfour, dhalf, XS_PIV3, XD_PIV3, ST_BNAN,	"3*(2+d)", ssnan, dsnan, ssnan, dsnan, shalf, dhalf, shalf, dhalf, sfour, dfour, XS_PIV3, XD_PIV3, ST_ANAN,	"3*(2-d)", ssnan, dsnan, shalf, dhalf, smone, dmone, sone, done, shalf, dhalf, XS_PIV4, XD_PIV4, ST_FINITEEXACT,	"3*(2-d)", ssnan, dsnan, ssnan, dsnan, smone, dmone, sone, done, shalf, dhalf, XS_PIV4, XD_PIV4, ST_ANAN,	"3*(2-d)", ssnan, dsnan, shalf, dhalf, ssnan, dhalf, sone, dsnan, shalf, done, XS_PIV4, XD_PIV4, ST_BNAN,

⌨️ 快捷键说明

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