[RFC] MIPS division by zero and libgcj...

David Daney ddaney@avtrex.com
Thu Jun 10 20:32:00 GMT 2004


Andrew Haley wrote:
>David Daney writes:
> > Andrew Haley wrote:
> > 
> > MIPS div instructions never trap. However I think that GCC always emits 
> > things like this when it cannot determine that the divisor is non zero:
> > 
> > div 0,ドル17,ドル16ドル
> > bne 16,ドル0,1ドルf
> > nop
> > break 7
> > 1:
> > 
> > 
>> > >No, there's no reason not to do it. You'll have to write some hairy
> > >code to satisfy all the rules, though.
> > >
> > What are the rules? Are they more complicated then throw an 
> > ArithmeticException when the divisor is zero?
>>Yes. You also have to do
>> if (dividend == (jint) 0x80000000L && divisor == -1)
> return dividend;
>>and not throw an exception.
>That is evidently what you have to do on i386. MIPS gives the right 
answer without faulting (i.e. hitting the break 7).
David Daney.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /