# New Ticket Created by Joshua Isom # Please include the string: [perl #38392] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=38392 >
When using JIT on FreeBSD 6.0, there are multiple failures in t/op/trans.t. Most are geometric, sinh, tanh, and atan2, so these might be covered by a previous report. But in particular are bugs in pow. I've tried to track it down more specifically but I don't seen to be succeeding, and only getting more confused. Of test 18(pow) of t/op/trans.t, tests 1, 2, 3, 4, 5, 6, 11, and 15 fail. Generally either 0.0 is returned or nan. In trying to track it down, I ran into something more confusing. Here's a program to demonstrate it and it's return. ------- .sub main :main $N1 = 3.0 $N2 = 5.0 $N3 = pow $N1, $N2 print $N3 print "\n" $N3 = pow $N1, $N2 print $N3 print "\n" .end ------- 0.000000 243.000000 ------- I've also noticed that pow_n_nc_nc optimizes away to just set, and trying -O0 doesn't disable optimization. With -O1 -j, it persists... With -O2 -j, it disappears. Running `./parrot -O2 -j t/op/trans_18.pasm`, only tests 2, 3, 4, 6, 11, and 15 fail, meaning 1 and 5 succeed with the optimization enabled. Many of the tests in t/op/trans.t fail entirely with -O2, opcodes not found, mainly because of using integer registers.