📄 fpaversion.c
字号:
"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 + -