Lines Matching +full:half +full:- +full:precision
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Linux/PA-RISC Project (http://www.parisc-linux.org/)
5 * Floating-point emulation code
6 * Copyright (C) 2001 Hewlett-Packard (Paul Bame) <bame@debian.org>
52 #define extru(r,pos,len) (((r) >> (31-(pos))) & (( 1 << (len)) - 1))
73 * the following are for the multi-ops
106 * positions 21-22
111 * located at bit positions 16-18
116 * at bit positions 15-16 (PA1.1) or 14-16 (PA2.0)
160 /* on pa-linux the fpu type is not filled in by the in parisc_linux_get_fpu_type()
187 /* All FP emulation code assumes that ints are 4-bytes in length */ in fpudispatch()
220 * This was fixed for multi-user kernels, but in fpudispatch()
242 /* All FP emulation code assumes that ints are 4-bytes in length */ in emfpudispatch()
418 * bit = 1 --> double precision in decode_0c()
550 * third param is the subop (y-field) in decode_0c()
621 * third param is the subop (y-field) in decode_0c()
744 * An undefined combination, double precision accessing the
745 * right half of a FPR, can get us into trouble.
842 * Fix Crashme problem (writing to 31R in double precision)
971 * as the source or target of a double precision operation.
972 * Since we just pass the address of the floating-point
1047 * as the source or target of a double precision operation.
1048 * Since we just pass the address of the floating-point
1098 * the right half of a register
1239 * calculate offsets for single precision numbers
1240 * See table 6-14 in PA-89 architecture for mapping
1243 rm1 |= extru(ir,fprm1pos-4,1); /* add right word offset */
1246 rm2 |= extru(ir,fprm2pos-4,1); /* add right word offset */
1249 tm |= extru(ir,fptmpos-4,1); /* add right word offset */
1252 ra |= extru(ir,fprapos-4,1); /* add right word offset */
1255 ta |= extru(ir,fptapos-4,1); /* add right word offset */
1346 * calculate offsets for single precision numbers
1347 * See table 6-14 in PA-89 architecture for mapping
1350 rm1 |= extru(ir,fprm1pos-4,1); /* add right word offset */
1353 rm2 |= extru(ir,fprm2pos-4,1); /* add right word offset */
1356 tm |= extru(ir,fptmpos-4,1); /* add right word offset */
1359 ra |= extru(ir,fprapos-4,1); /* add right word offset */
1362 ta |= extru(ir,fptapos-4,1); /* add right word offset */
1444 * *status, based on the C-bit & V-bit returned by the FCMP
1458 * for PA2.0 FPU's, update the Compare Queue if the y-field = 0,
1460 * Note that the y-field will always be 0 for non-PA2.0 FPU's.
1476 /* if PA83, just update the C-bit */