summaryrefslogtreecommitdiffstats
path: root/devel/libffi/files/patch-src_arm_sysv.S
diff options
context:
space:
mode:
Diffstat (limited to 'devel/libffi/files/patch-src_arm_sysv.S')
-rw-r--r--devel/libffi/files/patch-src_arm_sysv.S73
1 files changed, 73 insertions, 0 deletions
diff --git a/devel/libffi/files/patch-src_arm_sysv.S b/devel/libffi/files/patch-src_arm_sysv.S
new file mode 100644
index 000000000..ebdd68117
--- /dev/null
+++ b/devel/libffi/files/patch-src_arm_sysv.S
@@ -0,0 +1,73 @@
+--- src/arm/sysv.S.orig 2008-02-15 02:15:41.000000000 +0100
++++ src/arm/sysv.S 2008-04-01 13:25:02.000000000 +0200
+@@ -83,14 +83,6 @@
+ # define call_reg(x) mov lr, pc ; mov pc, x
+ #endif
+
+-/* Conditionally compile unwinder directives. */
+-#ifdef __ARM_EABI__
+-#define UNWIND
+-#else
+-#define UNWIND @
+-#endif
+-
+-
+ #if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
+ .macro ARM_FUNC_START name
+ .text
+@@ -101,7 +93,6 @@
+ bx pc
+ nop
+ .arm
+- UNWIND .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:
+@@ -112,7 +103,6 @@
+ .align 0
+ .arm
+ ENTRY(\name)
+- UNWIND .fnstart
+ .endm
+ #endif
+
+@@ -145,11 +135,8 @@
+ ARM_FUNC_START ffi_call_SYSV
+ @ Save registers
+ stmfd sp!, {r0-r3, fp, lr}
+- UNWIND .save {r0-r3, fp, lr}
+ mov fp, sp
+
+- UNWIND .setfp fp, sp
+-
+ @ Make room for all of the new args.
+ sub sp, fp, r2
+
+@@ -219,7 +206,6 @@
+ RETLDM "r0-r3,fp"
+
+ .ffi_call_SYSV_end:
+- UNWIND .fnend
+ .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
+
+ /*
+@@ -231,12 +217,9 @@
+ */
+
+ ARM_FUNC_START ffi_closure_SYSV
+- UNWIND .pad #16
+ add ip, sp, #16
+ stmfd sp!, {ip, lr}
+- UNWIND .save {r0, lr}
+ add r2, sp, #8
+- .pad #16
+ sub sp, sp, #16
+ str sp, [sp, #8]
+ add r1, sp, #8
+@@ -291,6 +274,5 @@
+ #endif
+
+ .ffi_closure_SYSV_end:
+- UNWIND .fnend
+ .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
+