Fixing d2f in interpreter (Was: Re: [kaffe] Re: Re: NetBSD/ppc
now works)
Dalibor Topic
robilad@kaffe.org
Tue May 11 10:08:02 2004
This is a multi-part message in MIME format.
--------------070708070809010305060608
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Dalibor Topic wrote:
> Dalibor Topic wrote:
>
>> Riccardo wrote:
>
>
>> I suspect that d2f is broken in the interpreter. The Java language
>> spec demands that in case of overflow the value of float is a signed
>> infinity, but the C standard says oveflow results in undefined
>> behaviour. So I assume we'd have to check whether the double is
>> representable as a float before we convert it, and handle the special
>> cases that would invoke undefined behaviour ourself.
>>
>> I'm working on a patch.
>
>
> Okay, I've got a patch for the interpreter. I'm unsure if it's really
> necessary, or if it really fixes things, but hey, it's worth a try :)
That one didn't work that well, as it seems your netbsd2-ppc box really,
really, desperately rounds to next odd no matter what. So I've got an
updated patch ;)
Riccardo, could you try it out on your machine? If this one works
better, I'd add a configure check for 'round to odd' and clean up the
code further.
cheers,
dalibor topic
--------------070708070809010305060608
Content-Type: application/gzip;
name="intrp-cvt-double-float-3.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="intrp-cvt-double-float-3.diff.gz"
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
--------------070708070809010305060608--