This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]