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]

libffi: unwinder data for ARM AEBI


A question for the ARM experts: do I need to wrap these directives in
#ifdef GNUEABI or somesuch?  This code is already GAS specific.

Andrew.


2007-08-14  Andrew Haley  <aph@redhat.com>

        * src/arm/sysv.S: Add unwinder directives.

Index: libffi/src/arm/sysv.S
===================================================================
--- libffi/src/arm/sysv.S       (revision 126985)
+++ libffi/src/arm/sysv.S       (working copy)
@@ -92,6 +92,7 @@
        bx      pc
        nop
        .arm
+       .fnstart
 /* A hook to tell gdb that we've switched to ARM mode.  Also used to call
    directly from other local arm routines.  */
 _L__\name:
@@ -102,6 +103,7 @@
        .align 0
        .arm
        ENTRY(\name)
+       .fnstart
 .endm
 #endif
 
@@ -134,7 +136,9 @@
 ARM_FUNC_START ffi_call_SYSV
        @ Save registers
         stmfd  sp!, {r0-r3, fp, lr}
+       .save   {r0-r3, fp, lr}
        mov     fp, sp
+       .movsp  fp
 
        @ Make room for all of the new args.
        sub     sp, fp, r2
@@ -205,6 +209,7 @@
        RETLDM  "r0-r3,fp"
 
 .ffi_call_SYSV_end:
+       .fnend
         .size    CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
 
 /*
@@ -218,7 +223,9 @@
 ARM_FUNC_START ffi_closure_SYSV
        add     ip, sp, #16
        stmfd   sp!, {ip, lr}
+       .save   {ip, lr}
        add     r2, sp, #8
+       .pad #16
        sub     sp, sp, #16
        str     sp, [sp, #8]
        add     r1, sp, #8
@@ -273,5 +280,6 @@
 #endif
 
 .ffi_closure_SYSV_end:
+       .fnend
         .size    CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
 
I


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