From: jsturm Date: Thu, 4 Apr 2002 21:19:13 +0000 (+0000) Subject: * src/sparc/v8.S: Add unwind info. X-Git-Tag: upstream/4.9.2~87502 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3faa434005a6e4de98fa0fe6506053052af2f5cb;p=platform%2Fupstream%2Flinaro-gcc.git * src/sparc/v8.S: Add unwind info. * src/sparc/v9.S: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51873 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 144ebc4..a790995 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,8 @@ +2002-04-04 Jeff Sturm + + * src/sparc/v8.S: Add unwind info. + * src/sparc/v9.S: Likewise. + 2002-03-30 Krister Walfridsson * configure.in: Enable i*86-*-netbsdelf*. diff --git a/libffi/src/sparc/v8.S b/libffi/src/sparc/v8.S index 0357f4d..1822643 100644 --- a/libffi/src/sparc/v8.S +++ b/libffi/src/sparc/v8.S @@ -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,43 @@ 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 ! Length of Common Information Entry +.LLSCIE1: + .uaword 0x0 ! CIE Identifier Tag + .byte 0x1 ! CIE Version + .ascii "zR\0" ! CIE Augmentation + .byte 0x1 ! uleb128 0x1; CIE Code Alignment Factor + .byte 0x7c ! sleb128 -4; CIE Data Alignment Factor + .byte 0xf ! CIE RA Column + .byte 0x1 ! uleb128 0x1; Augmentation size + .byte 0x50 ! FDE Encoding (aligned absolute) + .byte 0xc ! DW_CFA_def_cfa + .byte 0xe ! uleb128 0xe + .byte 0x0 ! uleb128 0x0 + .align 4 +.LLECIE1: +.LLSFDE1: + .uaword .LLEFDE1-.LLASFDE1 ! FDE Length +.LLASFDE1: + .uaword .LLASFDE1-.LLframe1 ! FDE CIE offset + .align 4 + .long .LLFB1 + .uaword .LLFE1-.LLFB1 ! FDE address range + .byte 0x0 ! uleb128 0x0; Augmentation size + .byte 0x4 ! DW_CFA_advance_loc4 + .uaword .LLCFI0-.LLFB1 + .byte 0xd ! DW_CFA_def_cfa_register + .byte 0x1e ! uleb128 0x1e + .byte 0x2d ! DW_CFA_GNU_window_save + .byte 0x9 ! DW_CFA_register + .byte 0xf ! uleb128 0xf + .byte 0x1f ! uleb128 0x1f + .align 4 +.LLEFDE1: diff --git a/libffi/src/sparc/v9.S b/libffi/src/sparc/v9.S index c937f43..9d02bb8 100644 --- a/libffi/src/sparc/v9.S +++ b/libffi/src/sparc/v9.S @@ -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,45 @@ 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 ! Length of Common Information Entry +.LLSCIE1: + .uaword 0x0 ! CIE Identifier Tag + .byte 0x1 ! CIE Version + .ascii "zR\0" ! CIE Augmentation + .byte 0x1 ! uleb128 0x1; CIE Code Alignment Factor + .byte 0x78 ! sleb128 -8; CIE Data Alignment Factor + .byte 0xf ! CIE RA Column + .byte 0x1 ! uleb128 0x1; Augmentation size + .byte 0x50 ! FDE Encoding (aligned absolute) + .byte 0xc ! DW_CFA_def_cfa + .byte 0xe ! uleb128 0xe + .byte 0xff,0xf ! uleb128 0x7ff + .align 8 +.LLECIE1: +.LLSFDE1: + .uaword .LLEFDE1-.LLASFDE1 ! FDE Length +.LLASFDE1: + .uaword .LLASFDE1-.LLframe1 ! FDE CIE offset + .align 8 + .xword .LLFB1 + .uaxword .LLFE1-.LLFB1 ! FDE address range + .byte 0x0 ! uleb128 0x0; Augmentation size + .byte 0x4 ! DW_CFA_advance_loc4 + .uaword .LLCFI0-.LLFB1 + .byte 0xd ! DW_CFA_def_cfa_register + .byte 0x1e ! uleb128 0x1e + .byte 0x2d ! DW_CFA_GNU_window_save + .byte 0x9 ! DW_CFA_register + .byte 0xf ! uleb128 0xf + .byte 0x1f ! uleb128 0x1f + .align 8 +.LLEFDE1: #endif