Module Name: src Committed By: riastradh Date: Sun May 5 23:08:53 UTC 2024
Modified Files: src/doc: HACKS src/tests/lib/libm: t_fe_round.c Log Message: tests/lib/libm/t_fe_round.c: Work around likely ia64 bug in gcc. To generate a diff of this commit: cvs rdiff -u -r1.242 -r1.243 src/doc/HACKS cvs rdiff -u -r1.16 -r1.17 src/tests/lib/libm/t_fe_round.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/doc/HACKS diff -u src/doc/HACKS:1.242 src/doc/HACKS:1.243 --- src/doc/HACKS:1.242 Thu Apr 4 23:53:05 2024 +++ src/doc/HACKS Sun May 5 23:08:53 2024 @@ -1,4 +1,4 @@ -# $NetBSD: HACKS,v 1.242 2024/04/04 23:53:05 christos Exp $ +# $NetBSD: HACKS,v 1.243 2024/05/05 23:08:53 riastradh Exp $ # # This file is intended to document workarounds for currently unsolved # (mostly) compiler bugs. @@ -1124,3 +1124,14 @@ descr Some files create dwarf info that our ctfmerge can't handle. We downgrade dwarf generation to version 3 which works. kcah + +hack ia64: work around feclearexcept/fetestexcept compiler bug +cdate Sun May 5 23:06:10 UTC 2024 +who riastradh +file tests/lib/libm/t_fe_round.c +descr + Without judiciously placed __insn_barrier, we get: + /tmp//ccJayu9g.s:2793: Warning: Use of 'mov.m' violates RAW dependency 'AR[FPSR].sf0.flags' (impliedf) + /tmp//ccJayu9g.s:2793: Warning: Only the first path encountering the conflict is reported + /tmp//ccJayu9g.s:2757: Warning: This is the location of the conflicting usage +kcah Index: src/tests/lib/libm/t_fe_round.c diff -u src/tests/lib/libm/t_fe_round.c:1.16 src/tests/lib/libm/t_fe_round.c:1.17 --- src/tests/lib/libm/t_fe_round.c:1.16 Fri May 3 21:40:51 2024 +++ src/tests/lib/libm/t_fe_round.c Sun May 5 23:08:53 2024 @@ -195,6 +195,19 @@ ATF_TC_BODY(fe_nearbyint_rint, tc) */ fesetround(values[i].round_mode); +#ifdef __ia64__ +/* + * Without this barrier, we get: + * + * /tmp//ccJayu9g.s:2793: Warning: Use of 'mov.m' violates RAW dependency 'AR[FPSR].sf0.flags' (impliedf) + * /tmp//ccJayu9g.s:2793: Warning: Only the first path encountering the conflict is reported + * /tmp//ccJayu9g.s:2757: Warning: This is the location of the conflicting usage + * + * (If you fix this, remove the entry from doc/HACKS.) + */ + __insn_barrier(); +#endif + /* * Clear sticky floating-point exception bits * so we can verify whether the FE_INEXACT