diff options
author | Jeff Sturm <jsturm@one-point.com> | 2002-04-04 21:19:13 +0000 |
---|---|---|
committer | Jeff Sturm <jsturm@gcc.gnu.org> | 2002-04-04 21:19:13 +0000 |
commit | 0c0b87adddd784143aba82ddc537004040a9a80d (patch) | |
tree | ecd5c23c49f24e45bd5a50d9b3b9c62b157d64af /libffi/src | |
parent | 15e0ecab0b10af8bae4495b36466775ff0aa6bdc (diff) | |
download | gcc-0c0b87adddd784143aba82ddc537004040a9a80d.zip gcc-0c0b87adddd784143aba82ddc537004040a9a80d.tar.gz gcc-0c0b87adddd784143aba82ddc537004040a9a80d.tar.bz2 |
v8.S: Add unwind info.
* src/sparc/v8.S: Add unwind info.
* src/sparc/v9.S: Likewise.
From-SVN: r51873
Diffstat (limited to 'libffi/src')
-rw-r--r-- | libffi/src/sparc/v8.S | 42 | ||||
-rw-r--r-- | libffi/src/sparc/v9.S | 41 |
2 files changed, 80 insertions, 3 deletions
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 |