Unwinder info in libffi for Alpha
Andrew Haley
aph@cambridge.redhat.com
Fri Jun 1 07:00:00 GMT 2001
And Alpha...
2001-06-01 <aph@cambridge.redhat.com>
* src/alpha/osf.S: Add unwind info.
Index: src/alpha/osf.S
===================================================================
RCS file: /cvs/gcc/gcc/libffi/src/alpha/osf.S,v
retrieving revision 1.3
diff -c -2 -p -r1.3 osf.S
*** osf.S 2000/12/10 07:13:18 1.3
--- osf.S 2001/06/01 13:59:48
***************
*** 1,4 ****
/* -----------------------------------------------------------------------
! osf.S - Copyright (c) 1998 Cygnus Solutions
Alpha/OSF Foreign Function Interface
--- 1,4 ----
/* -----------------------------------------------------------------------
! osf.S - Copyright (c) 1998, 2001 Red Hat
Alpha/OSF Foreign Function Interface
*************** ffi_call_osf:
*** 45,54 ****
--- 45,58 ----
.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
*************** $retdouble:
*** 111,114 ****
--- 115,119 ----
ldq $15, 8($15)
ret
+ $LFE1:
.end ffi_call_osf
*************** $retdouble:
*** 118,121 ****
--- 123,129 ----
Receives the closure argument in $1. */
+ .arch ev6
+ .text
+
.align 3
.globl ffi_closure_osf
*************** ffi_closure_osf:
*** 124,130 ****
--- 132,141 ----
.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
*************** $load_64:
*** 240,243 ****
--- 251,255 ----
addq $30, 16*8, $30
ret
+ $LFE2:
.end ffi_closure_osf
*************** $load_table:
*** 278,279 ****
--- 290,351 ----
#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:
More information about the Java
mailing list