summaryrefslogtreecommitdiffstats
path: root/libffi/src/alpha
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-03 14:05:38 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-03 14:05:38 +0000
commit49ff2dedb5b9b364b03fd75e886c15d2318d5313 (patch)
treece00b28f5d7bd08247a828f02331d92f4c8ed89d /libffi/src/alpha
parent5057fb1f9fc98d8e23b6ddd44dc8ef0acee3329d (diff)
downloadppe42-gcc-49ff2dedb5b9b364b03fd75e886c15d2318d5313.tar.gz
ppe42-gcc-49ff2dedb5b9b364b03fd75e886c15d2318d5313.zip
2001-06-03 Andrew Haley <aph@redhat.com>
* src/alpha/osf.S: Add unwind info. * src/powerpc/sysv.S: Add unwind info. * src/powerpc/ppc_closure.S: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42828 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi/src/alpha')
-rw-r--r--libffi/src/alpha/osf.S71
1 files changed, 70 insertions, 1 deletions
diff --git a/libffi/src/alpha/osf.S b/libffi/src/alpha/osf.S
index b3dc477fec0..5605669194c 100644
--- a/libffi/src/alpha/osf.S
+++ b/libffi/src/alpha/osf.S
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- osf.S - Copyright (c) 1998 Cygnus Solutions
+ osf.S - Copyright (c) 1998, 2001 Red Hat
Alpha/OSF Foreign Function Interface
@@ -42,12 +42,16 @@
ffi_call_osf:
.frame $15, 32, $26, 0
.mask 0x4008000, -32
+$LFB1:
addq $16,$17,$1
mov $16, $30
stq $26, 0($1)
+$LCFI0:
stq $15, 8($1)
+$LCFI1:
stq $18, 16($1)
mov $1, $15
+$LCFI2:
.prologue 0
stq $19, 24($1)
@@ -108,6 +112,7 @@ $retdouble:
nop
ldq $15, 8($15)
ret
+$LFE1:
.end ffi_call_osf
@@ -121,9 +126,12 @@ $retdouble:
ffi_closure_osf:
.frame $30, 16*8, $26, 0
.mask 0x4000000, -16*8
+$LFB2:
ldgp $29, 0($27)
subq $30, 16*8, $30
+$LCFI5:
stq $26, 0($30)
+$LCFI6:
.prologue 1
# Store all of the potential argument registers in va_list format.
@@ -237,6 +245,7 @@ $load_64:
nop
addq $30, 16*8, $30
ret
+$LFE2:
.end ffi_closure_osf
@@ -275,3 +284,63 @@ $load_table:
|| FFI_TYPE_LAST != 14
#error "osf.S out of sync with ffi.h"
#endif
+
+ .section .eh_frame,"aw",@progbits
+__FRAME_BEGIN__:
+ .4byte $LECIE1-$LSCIE1 # Length of Common Information Entry
+$LSCIE1:
+ .4byte 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 0x1a # CIE RA Column
+ .byte 0x1 # uleb128 0x1; Augmentation size
+ .byte 0x1b # FDE Encoding (pcrel sdata4)
+ .byte 0xc # DW_CFA_def_cfa
+ .byte 0x1e # uleb128 0x1e
+ .byte 0x0 # uleb128 0x0
+ .align 3
+$LECIE1:
+$LSFDE1:
+ .4byte $LEFDE1-$LASFDE1 # FDE Length
+$LASFDE1:
+ .4byte $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset
+ .4byte $LFB1-. # FDE initial location
+ .4byte $LFE1-$LFB1 # FDE address range
+ .byte 0x0 # uleb128 0x0; Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .4byte $LCFI0-$LFB1
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .byte 0x30 # uleb128 0x30
+ .byte 0x4 # DW_CFA_advance_loc4
+ .4byte $LCFI1-$LCFI0
+ .byte 0x9a # DW_CFA_offset, column 0x1a
+ .byte 0x6 # uleb128 0x6
+ .byte 0x8f # DW_CFA_offset, column 0xf
+ .byte 0x5 # uleb128 0x5
+ .byte 0x4 # DW_CFA_advance_loc4
+ .4byte $LCFI2-$LCFI1
+ .byte 0xc # DW_CFA_def_cfa
+ .byte 0xf # uleb128 0xf
+ .byte 0x30 # uleb128 0x30
+ .align 3
+$LEFDE1:
+
+$LSFDE3:
+ .4byte $LEFDE3-$LASFDE3 # FDE Length
+$LASFDE3:
+ .4byte $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset
+ .4byte $LFB2-. # FDE initial location
+ .4byte $LFE2-$LFB2 # FDE address range
+ .byte 0x0 # uleb128 0x0; Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .4byte $LCFI5-$LFB2
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .byte 0x90,0x1 # uleb128 0x90
+ .byte 0x4 # DW_CFA_advance_loc4
+ .4byte $LCFI6-$LCFI5
+ .byte 0x9a # DW_CFA_offset, column 0x1a
+ .byte 0x12 # uleb128 0x12
+ .align 3
+$LEFDE3:
OpenPOWER on IntegriCloud