Joshua Gatcomb [EMAIL PROTECTED] wrote:
Parrot doesn't use GMP right?
Right.
... So the math library in
question is the /usr/include/math.h header?
No. That's the header do declare functions in the math library. The
library is e.g. F/usr/lib/libm.so.
WRT alignment there were some
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
... So the math library in
question is the /usr/include/math.h header?
No. That's the header do declare functions in the
math library. The
library is e.g. F/usr/lib/libm.so.
Well you see - that's what I thought but removing it
seemed to have
Joshua Gatcomb [EMAIL PROTECTED] wrote:
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
math library. The
library is e.g. F/usr/lib/libm.so.
For example
$ objdump -p parrot.exe
DLL Name: cygwin1.dll
vma: Hint/Ord Member-Name Bound-To
1b5588 14
Joshua Gatcomb [EMAIL PROTECTED] wrote:
Well, it only happens under JIT for the following
functions (identical code for atan works fine):
cosh, sinh, tanh, sech, exp, pow
It only happens if there are two set N# prior to the
function where # is two different numbers
N0 = 1
N1 = 1
I think
I thought I had already replied to this but I don't
seem to see it in the archive anywhere.
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
I think next step would need to review Cygwin math
lib sources and trace
into the library. Nasty.
Parrot doesn't use GMP right? So the math library in
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
I think next step would need to review Cygwin math
lib sources and trace
into the library. Nasty.
Parrot isn't using GMP right? I am not sure where to
go look for the math lib sources other than the math
header /usr/include/math.h ???
Is your
Joshua Gatcomb [EMAIL PROTECTED] wrote:
4 print N3
gdb p N3
$2 = 4.4942328371557898e+307
If both N1 and N2 are not set prior to cosh, then
everything works fine.
I've checked in a possible fix for this. Please try again after cvs
update.
Thanks for your analysis,
leo
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
Joshua Gatcomb [EMAIL PROTECTED] wrote:
4 print N3
gdb p N3
$2 = 4.4942328371557898e+307
If both N1 and N2 are not set prior to cosh, then
everything works fine.
I've checked in a possible fix for this. Please try
again after
Joshua Gatcomb [EMAIL PROTECTED] wrote:
Sorry - still a problem. I am attaching a more
descriptive debugging session where I show the floats
and registers at every step. Not sure if this will be
useful, but I figured it couldn't hurt.
It looks like that the Cygwin libs have some assumption
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
It looks like that the Cygwin libs have some
assumption how the floating
point stack is used. I'll try to insert a Cemms
instruction before
math lib functions are called.
leo
Well, it only happens under JIT for the following
functions
I have reduced the JIT failing tests down to the
following test case:
set N0, 1
set N1, 1
cosh N3, 1
print N3
end
$ parrot foo.pasm
1.543081
$ parrot -j foo.pasm
44942328 really big number snipped
$ parrot -t foo.pasm
0 set N0, 1- N0=0.00,
3 set N1, 1- N1=0.00,
6
11 matches
Mail list logo