This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Question about POSIX libgcj signals / exception handling
Andrew Pinski wrote:
On Mar 11, 2006, at 1:08 AM, David Daney wrote:
SIGSEGV gets converted to NullPointerException. This is unconditional
it happens even if the faulting location is far away from address
zero. Native code is not treated any differently than the java
code. Any SIGSEGV is converted to NPE.
This is not true for the PPC OS X implementation. Only null pointer
accesses are
converted to NPEs.
Most of what I say with respect to anything other than gcj on
mipsel-linux should probably be a bit suspect.
The rest of David's analysis applies, well except for the SIGFPE part
for integer math.
On PPC (and most other targets), function calls are made for divides as
the target
does not raise a trap for undefined code unlike x86.
MIPS has a seperate trap instruction that is used. It makes the code
longer than a simple divide, but shorter than a function call.
With VRP we could in some cases know if an exception is impossible and
generate the divide in-line (or omit the trap instruction) instead of
calling the function.
David Daney.