This is the mail archive of the java-patches@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: PATCH: libffi: add MIPS O32 DWARF-2 unwind info


>>>>> "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


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