All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] MIPS division by zero and libgcj...
@ 2004-06-10 19:12 David Daney
  2004-06-10 19:31 ` Andrew Haley
  2004-06-11 14:01 ` Maciej W. Rozycki
  0 siblings, 2 replies; 10+ messages in thread
From: David Daney @ 2004-06-10 19:12 UTC (permalink / raw)
  To: gcc, linux-mips; +Cc: java

It appears that gcc configured for mipsel-linux will execute a "break 7" 
instruction on integer division by zero.

This causes the kernel (I am using 2.4.25) to send SIGTRAP.

Gcj when configured for this platform uses the -f-use-divide-subroutine 
option, causing it to never generate inline division instructions (nor 
the accompanying break 7), but instead call a runtime function that 
properly handles throwing ArithmeticException.

Q1:  Is this behavior (use of break 7 and SIGTRAP) part of some ABI 
specification?  I'll admit a bit of ignorance in this area.

Q2: Does anyone see any reason that libgcj should not be configured to 
handle the SIGTRAP and throw the ArithmeticException from the signal 
handler (similar to what is done on i386).

Q3: Will using SIGTRAP in this manner make debugging programs that 
divide things by zero very difficult to debug under gdb?

Q4: I appears that on the i386, a divide overflow causes SIGFPE.  Why 
doesn't the mips-linux kernel sent SIGFPE on "break 7"

Q5: prims.cc in libgcj implies that we should be handling SIGFPE to do 
all this.  If I make these changes, won't it be a little confusing that 
all references to SIGFPE are really SIGTRAP?


David Daney

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2004-06-11 15:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-10 19:12 [RFC] MIPS division by zero and libgcj David Daney
2004-06-10 19:31 ` Andrew Haley
2004-06-10 19:39   ` Andrew Haley
2004-06-10 19:48   ` David Daney
2004-06-10 19:58     ` Andrew Haley
2004-06-10 20:31       ` David Daney
2004-06-10 20:27   ` Ralf Baechle
2004-06-11 14:01 ` Maciej W. Rozycki
2004-06-11 15:34   ` David Daney
2004-06-11 15:39     ` Maciej W. Rozycki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.