This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
libffi: unwind info for sparc
- From: Jeff Sturm <jsturm at one-point dot com>
- To: java-patches at gcc dot gnu dot org
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 29 Mar 2002 09:22:41 -0500 (EST)
- Subject: libffi: unwind info for sparc
Needed to throw exceptions through ffi_call frames. Tested on
sparc-sun-solaris2.8. OK?
2002-03-29 Jeff Sturm <jsturm@one-point.com>
* src/sparc/v8.S: Add unwind info.
* src/sparc/v9.S: Add unwind info.
Index: src/sparc/v8.S
===================================================================
RCS file: /cvs/gcc/gcc/libffi/src/sparc/v8.S,v
retrieving revision 1.3
diff -u -p -r1.3 v8.S
--- v8.S 2001/03/02 22:21:23 1.3
+++ v8.S 2002/03/29 14:17:14
@@ -36,7 +36,9 @@
ffi_call_V8:
_ffi_call_V8:
+.LLFB1:
save %sp, -STACKFRAME, %sp
+.LLCFI0:
sub %sp, %i2, %sp ! alloca() space in stack for frame to set up
add %sp, STACKFRAME, %l0 ! %l0 has start of
@@ -87,7 +89,38 @@ longlong:
st %o1, [%i4+4]
ret
restore
+.LLFE1:
.ffi_call_V8_end:
- .size ffi_call_V8,.ffi_call_V8_end-ffi_call_V8
+ .size ffi_call_V8,.ffi_call_V8_end-ffi_call_V8
+ .section ".eh_frame",#alloc,#write
+.LLframe1:
+ .uaword .LLECIE1-.LLSCIE1
+.LLSCIE1:
+ .uaword 0x0
+ .byte 0x1
+ .asciz ""
+ .byte 0x1
+ .byte 0x7c
+ .byte 0xf
+ .byte 0xc
+ .byte 0xe
+ .byte 0x0
+ .align 4
+.LLECIE1:
+ .uaword .LLEFDE1-.LLASFDE1
+.LLASFDE1:
+ .uaword .LLASFDE1-.LLframe1
+ .uaword .LLFB1
+ .uaword .LLFE1-.LLFB1
+ .byte 0x4
+ .uaword .LLCFI0-.LLFB1
+ .byte 0xd
+ .byte 0x1e
+ .byte 0x2d
+ .byte 0x9
+ .byte 0xf
+ .byte 0x1f
+ .align 4
+.LLEFDE1:
Index: src/sparc/v9.S
===================================================================
RCS file: /cvs/gcc/gcc/libffi/src/sparc/v9.S,v
retrieving revision 1.2
diff -u -p -r1.2 v9.S
--- v9.S 2001/03/02 22:21:23 1.2
+++ v9.S 2002/03/29 14:17:15
@@ -41,7 +41,9 @@
ffi_call_V9:
_ffi_call_V9:
+.LLFB1:
save %sp, -STACKFRAME, %sp
+.LLCFI0:
sub %sp, %i2, %sp ! alloca() space in stack for frame to set up
add %sp, STACKFRAME+STACK_BIAS, %l0 ! %l0 has start of
@@ -118,8 +120,40 @@ dostruct:
std %f6, [%i4+56]
ret
restore
+.LLFE1:
.ffi_call_V9_end:
- .size ffi_call_V9,.ffi_call_V9_end-ffi_call_V9
+ .size ffi_call_V9,.ffi_call_V9_end-ffi_call_V9
+
+ .section ".eh_frame",#alloc,#write
+.LLframe1:
+ .uaword .LLECIE1-.LLSCIE1
+.LLSCIE1:
+ .uaword 0x0
+ .byte 0x1
+ .asciz ""
+ .byte 0x1
+ .byte 0x78
+ .byte 0xf
+ .byte 0xc
+ .byte 0xe
+ .byte 0xff,0xf
+ .align 8
+.LLECIE1:
+ .uaword .LLEFDE1-.LLASFDE1
+.LLASFDE1:
+ .uaword .LLASFDE1-.LLframe1
+ .uaxword .LLFB1
+ .uaxword .LLFE1-.LLFB1
+ .byte 0x4
+ .uaword .LLCFI0-.LLFB1
+ .byte 0xd
+ .byte 0x1e
+ .byte 0x2d
+ .byte 0x9
+ .byte 0xf
+ .byte 0x1f
+ .align 8
+.LLEFDE1:
#endif