PATCH: libffi: add MIPS O32 DWARF-2 unwind info
Casey Marshall
csm@gnu.org
Thu Jun 24 02:50:00 GMT 2004
>>>>> "David" == David Daney <ddaney@avtrex.com> writes:
David> Casey Marshall wrote:
>> The attached patch adds DWARF-2 unwinding info for MIPS
>> ffi_call_O32. I'm kind of new to both DWARF-2 and MIPS assembly,
>> so this may not be completely correct. I have tried this on a
>> modified 3.3.3 -- the changes since then appear to have been only
>> to the SIZEOF_ARG macro -- but have not tried it on a newer
>> version. It seems to work, since things like `invokethrow.java'
>> work properly for me now.
>>
>> Note that this is only for the O32 ABI. I think that N32 would be
>> similar (identical?) to this, but I can't test it.
>>
>> Also: GCJ emits references to __gcj_personality_v0 in the assembler
>> it generates, as a "personality" in the CIE. I didn't know if this
>> was appropriate for the ffi code, so I merely omitted it. Is this
>> ok?
>>
David> I am not a DWARF-2 expert either, but it is my understanding
David> that the personality is only involved in catching exceptions.
David> If they are only "passing through" there is no need for a
David> personality.
I see. Sounds like the exact behavior FFI functions need.
David> BTW, How did you generate the .eh_frame data? You can see what
David> you have to emulate by compiling simple 'C' functions with
David> -fexcptions.
mipsel-unknown-linux-gnu-gcj -S -dA -fPIC True.java
`True.java' is a simple class that has an empty void method. I
couldn't get `-fexceptions' to produce the .eh_frame from C source,
however; probably something I missed.
--
Casey Marshall || csm@gnu.org
More information about the Java-patches
mailing list