Commit 9d9305ea by Rainer Orth Committed by Rainer Orth

osf.S (UA_SI, [...]): Define.

	* src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
	Define.
	Use them to handle ELF vs. ECOFF differences.
	[__osf__] (_GLOBAL__F_ffi_call_osf): Define.

From-SVN: r173151
parent 5c24671b
2011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
Define.
Use them to handle ELF vs. ECOFF differences.
[__osf__] (_GLOBAL__F_ffi_call_osf): Define.
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate. * configure: Regenerate.
......
/* ----------------------------------------------------------------------- /* -----------------------------------------------------------------------
osf.S - Copyright (c) 1998, 2001, 2007, 2008 Red Hat osf.S - Copyright (c) 1998, 2001, 2007, 2008, 2011 Red Hat
Alpha/OSF Foreign Function Interface Alpha/OSF Foreign Function Interface
...@@ -299,33 +299,51 @@ $load_table: ...@@ -299,33 +299,51 @@ $load_table:
#endif #endif
#ifdef __ELF__ #ifdef __ELF__
# define UA_SI .4byte
# define FDE_ENCODING 0x1b /* pcrel sdata4 */
# define FDE_ENCODE(X) .4byte X-.
# define FDE_ARANGE(X) .4byte X
#elif defined __osf__
# define UA_SI .align 0; .long
# define FDE_ENCODING 0x50 /* aligned absolute */
# define FDE_ENCODE(X) .align 3; .quad X
# define FDE_ARANGE(X) .align 0; .quad X
#endif
#ifdef __ELF__
.section .eh_frame,EH_FRAME_FLAGS,@progbits .section .eh_frame,EH_FRAME_FLAGS,@progbits
#elif defined __osf__
.data
.align 3
.globl _GLOBAL__F_ffi_call_osf
_GLOBAL__F_ffi_call_osf:
#endif
__FRAME_BEGIN__: __FRAME_BEGIN__:
.4byte $LECIE1-$LSCIE1 # Length of Common Information Entry UA_SI $LECIE1-$LSCIE1 # Length of Common Information Entry
$LSCIE1: $LSCIE1:
.4byte 0x0 # CIE Identifier Tag UA_SI 0x0 # CIE Identifier Tag
.byte 0x1 # CIE Version .byte 0x1 # CIE Version
.ascii "zR\0" # CIE Augmentation .ascii "zR\0" # CIE Augmentation
.byte 0x1 # uleb128 0x1; CIE Code Alignment Factor .byte 0x1 # uleb128 0x1; CIE Code Alignment Factor
.byte 0x78 # sleb128 -8; CIE Data Alignment Factor .byte 0x78 # sleb128 -8; CIE Data Alignment Factor
.byte 26 # CIE RA Column .byte 26 # CIE RA Column
.byte 0x1 # uleb128 0x1; Augmentation size .byte 0x1 # uleb128 0x1; Augmentation size
.byte 0x1b # FDE Encoding (pcrel sdata4) .byte FDE_ENCODING # FDE Encoding
.byte 0xc # DW_CFA_def_cfa .byte 0xc # DW_CFA_def_cfa
.byte 30 # uleb128 column 30 .byte 30 # uleb128 column 30
.byte 0 # uleb128 offset 0 .byte 0 # uleb128 offset 0
.align 3 .align 3
$LECIE1: $LECIE1:
$LSFDE1: $LSFDE1:
.4byte $LEFDE1-$LASFDE1 # FDE Length UA_SI $LEFDE1-$LASFDE1 # FDE Length
$LASFDE1: $LASFDE1:
.4byte $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset UA_SI $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset
.4byte $LFB1-. # FDE initial location FDE_ENCODE($LFB1) # FDE initial location
.4byte $LFE1-$LFB1 # FDE address range FDE_ARANGE($LFE1-$LFB1) # FDE address range
.byte 0x0 # uleb128 0x0; Augmentation size .byte 0x0 # uleb128 0x0; Augmentation size
.byte 0x4 # DW_CFA_advance_loc4 .byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI1-$LFB1 UA_SI $LCFI1-$LFB1
.byte 0x9a # DW_CFA_offset, column 26 .byte 0x9a # DW_CFA_offset, column 26
.byte 4 # uleb128 4*-8 .byte 4 # uleb128 4*-8
.byte 0x8f # DW_CFA_offset, column 15 .byte 0x8f # DW_CFA_offset, column 15
...@@ -335,32 +353,35 @@ $LASFDE1: ...@@ -335,32 +353,35 @@ $LASFDE1:
.byte 32 # uleb128 offset 32 .byte 32 # uleb128 offset 32
.byte 0x4 # DW_CFA_advance_loc4 .byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI2-$LCFI1 UA_SI $LCFI2-$LCFI1
.byte 0xda # DW_CFA_restore, column 26 .byte 0xda # DW_CFA_restore, column 26
.align 3 .align 3
$LEFDE1: $LEFDE1:
$LSFDE3: $LSFDE3:
.4byte $LEFDE3-$LASFDE3 # FDE Length UA_SI $LEFDE3-$LASFDE3 # FDE Length
$LASFDE3: $LASFDE3:
.4byte $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset UA_SI $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset
.4byte $LFB2-. # FDE initial location FDE_ENCODE($LFB2) # FDE initial location
.4byte $LFE2-$LFB2 # FDE address range FDE_ARANGE($LFE2-$LFB2) # FDE address range
.byte 0x0 # uleb128 0x0; Augmentation size .byte 0x0 # uleb128 0x0; Augmentation size
.byte 0x4 # DW_CFA_advance_loc4 .byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI5-$LFB2 UA_SI $LCFI5-$LFB2
.byte 0xe # DW_CFA_def_cfa_offset .byte 0xe # DW_CFA_def_cfa_offset
.byte 0x80,0x1 # uleb128 128 .byte 0x80,0x1 # uleb128 128
.byte 0x4 # DW_CFA_advance_loc4 .byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI6-$LCFI5 UA_SI $LCFI6-$LCFI5
.byte 0x9a # DW_CFA_offset, column 26 .byte 0x9a # DW_CFA_offset, column 26
.byte 16 # uleb128 offset 16*-8 .byte 16 # uleb128 offset 16*-8
.align 3 .align 3
$LEFDE3: $LEFDE3:
#if defined __osf__
.align 0
.long 0 # End of Table
#endif
#ifdef __linux__ #if defined __ELF__ && defined __linux__
.section .note.GNU-stack,"",@progbits .section .note.GNU-stack,"",@progbits
#endif #endif
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment