[squeak-dev] Re: x86 linux VM FFI FPU stack overflow
nicolas cellier
ncellier at ifrance.com
Tue Jan 13 19:12:10 UTC 2009
nicolas cellier a écrit :
>
> Apologies for the cryptic subject...
>
> I have some news about http://bugs.squeak.org/view.php?id=3929
> I detected with gdb that the example I provided triggers a FPU stack
> overflow. When this occurs, a qNan is placed on FPU stack top.
>
> Thus, though ffiFloatReturnValue == 0.0, testing in Smalltalk (self
> myFFICall = 0.0) will result in 0.0==Nan due to stack overflow.
> primitive which execute special send #= will incorrectly return false...
>
> Don't tell me to not use = on Floats, this is not the problem, you can
> replace the test with (self myFFICall < 1.0), you will get (0.0<qNan) ->
> false all the same.
>
> At this point, I see two possibilities:
> - either I totally messed up with calling conventions
> - or the FFI glue ffiCallAddressOf is broken
> ($VM/Squeak-3.10-1/platforms/unix/plugins/SqueakFFIPrims/x86-sysv-asm)
>
> I have no knowledge about IA-32 and don't wish to learn further, using
> gdb at instruction level was already painfull enough for me.
> Can somebody aware of x86 and calling convention check my guess?
>
> Nicolas
>
>
Any one that can provide light on this subject?
Or just get a contact with Ian Piumarta?
I feel a bit alone
Nicolas
More information about the Squeak-dev
mailing list
|