PPC libgcc IEEE128 soft-fp exception/rounding fixes
Paul E. Murphy
murphyp@linux.vnet.ibm.com
Fri Feb 19 20:55:00 GMT 2016
On 02/17/2016 08:37 PM, Alan Modra wrote:
>> +/* A set bit indicates an exception is trapping. */
>> +# define FP_TRAPPING_EXCEPTIONS ((_fpscr.i << 22) & FP_EX_ALL)
>
> why then a shift here, since FP_EX_* are defined as the actual
> register bits? Oh, I see. FP_EX_* are the status bits, and you want
> the enable bits. ie. bit 56 rather than bit 34, bit 57 rather than
> bit 35 and so on (bits numbered from 0 as msb). A comment to that
> effect might reduce head scratching.
Thanks for taking a look Alan, and Joseph. I've expanded the comment
to clarify the otherwise mysterious shift with the updated patch.
libgcc
* config/rs6000/sfp-machine.h:
(_FP_DECL_EX): Declare _fpsr as a union of u64 and double.
(FP_TRAPPING_EXCEPTIONS): Return a bitmask of trapping
exceptions.
(FP_INIT_ROUNDMODE): Read the fpscr instead of writing
a mystery value.
(FP_ROUNDMODE): Update the usage of _fpscr.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ppc_ieee128_sfp_fix_rev2.patch
Type: text/x-patch
Size: 1681 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160219/4f8e530c/attachment.bin>
More information about the Gcc-patches
mailing list