Ticket #501 (closed bug: wontfix)
t/op/trans.t failures with jit on *BSD
Reported by: | rg | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | core | Version: | trunk |
Severity: | low | Keywords: | |
Cc: | Language: | ||
Patch status: | Platform: | freebsd |
Description
FreeBSD/i386 jit is failing tests 10 (sinh), 11 (tanh) and 19 (pow):
Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/op/trans.t 3 768 22 3 13.64% 10-11 19
I'm suspecting the same problem for all 3 failures (some kind of register clobbering maybe, though i really have no idea), so I'm filing only this one ticket for all 3 failures.
This bug has been previously filed as RT#36086
The smallest example I can give for the problem is this:
set N1, 1.0 set N3, 2.0 # remove this to make it work sinh N2, N1 say N2 end
Currently the result varies (NaN or small number) depending on the value in N1, but it's not the correct one. You can even use N2 (but not N1, you need a second register) instead of N3 to trigger the problem. However, if I replace sinh with cosh, I get the correct result (for cosh of course ;)) What I can't see is the difference between the two ops/calls/functions.
darbelo reported the same problem for OpenBSD 4.5.
If anybody could give me a hint what to look for, I'd be happy to dig further. For now, I'm out of ideas.