Commit 7e15b5fe by Richard Henderson Committed by Richard Henderson

re PR libffi/21285 (gij fails to handle NullPointerException exception)

        PR libffi/21285
        * src/alpha/osf.S: Update unwind into to match code.

From-SVN: r99415
parent 32800e7c
2005-05-08 Richard Henderson <rth@redhat.com>
PR libffi/21285
* src/alpha/osf.S: Update unwind into to match code.
2005-05-04 Andreas Degert <ad@papyrus-gmbh.de> 2005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
Richard Henderson <rth@redhat.com> Richard Henderson <rth@redhat.com>
......
...@@ -49,12 +49,10 @@ $LFB1: ...@@ -49,12 +49,10 @@ $LFB1:
addq $16,$17,$1 addq $16,$17,$1
mov $16, $30 mov $16, $30
stq $26, 0($1) stq $26, 0($1)
$LCFI0:
stq $15, 8($1) stq $15, 8($1)
$LCFI1:
stq $18, 16($1) stq $18, 16($1)
mov $1, $15 mov $1, $15
$LCFI2: $LCFI1:
.prologue 0 .prologue 0
stq $19, 24($1) stq $19, 24($1)
...@@ -84,6 +82,7 @@ $LCFI2: ...@@ -84,6 +82,7 @@ $LCFI2:
ldq $19, 24($15) ldq $19, 24($15)
ldq $18, 16($15) ldq $18, 16($15)
ldq $26, 0($15) ldq $26, 0($15)
$LCFI2:
beq $19, $noretval beq $19, $noretval
# Store the return value out in the proper type. # Store the return value out in the proper type.
...@@ -94,22 +93,26 @@ $LCFI2: ...@@ -94,22 +93,26 @@ $LCFI2:
cmpeq $18, FFI_TYPE_DOUBLE, $3 cmpeq $18, FFI_TYPE_DOUBLE, $3
bne $3, $retdouble bne $3, $retdouble
.align 3
$noretval: $noretval:
ldq $15, 8($15) ldq $15, 8($15)
ret ret
.align 4
$retint: $retint:
stq $0, 0($19) stq $0, 0($19)
nop nop
ldq $15, 8($15) ldq $15, 8($15)
ret ret
.align 4
$retfloat: $retfloat:
sts $f0, 0($19) sts $f0, 0($19)
nop nop
ldq $15, 8($15) ldq $15, 8($15)
ret ret
.align 4
$retdouble: $retdouble:
stt $f0, 0($19) stt $f0, 0($19)
nop nop
...@@ -295,61 +298,62 @@ $load_table: ...@@ -295,61 +298,62 @@ $load_table:
#ifdef __ELF__ #ifdef __ELF__
.section .eh_frame,EH_FRAME_FLAGS,@progbits .section .eh_frame,EH_FRAME_FLAGS,@progbits
__FRAME_BEGIN__: __FRAME_BEGIN__:
.4byte $LECIE1-$LSCIE1 # Length of Common Information Entry .4byte $LECIE1-$LSCIE1 # Length of Common Information Entry
$LSCIE1: $LSCIE1:
.4byte 0x0 # CIE Identifier Tag .4byte 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 0x1a # 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 0x1b # FDE Encoding (pcrel sdata4)
.byte 0xc # DW_CFA_def_cfa .byte 0xc # DW_CFA_def_cfa
.byte 0x1e # uleb128 0x1e .byte 30 # uleb128 column 30
.byte 0x0 # uleb128 0x0 .byte 0 # uleb128 offset 0
.align 3 .align 3
$LECIE1: $LECIE1:
$LSFDE1: $LSFDE1:
.4byte $LEFDE1-$LASFDE1 # FDE Length .4byte $LEFDE1-$LASFDE1 # FDE Length
$LASFDE1: $LASFDE1:
.4byte $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset .4byte $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset
.4byte $LFB1-. # FDE initial location .4byte $LFB1-. # FDE initial location
.4byte $LFE1-$LFB1 # FDE address range .4byte $LFE1-$LFB1 # FDE address range
.byte 0x0 # uleb128 0x0; Augmentation size .byte 0x0 # uleb128 0x0; Augmentation size
.byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI0-$LFB1 .byte 0x4 # DW_CFA_advance_loc4
.byte 0xe # DW_CFA_def_cfa_offset .4byte $LCFI1-$LFB1
.byte 0x30 # uleb128 0x30 .byte 0x9a # DW_CFA_offset, column 26
.byte 0x4 # DW_CFA_advance_loc4 .byte 4 # uleb128 4*-8
.4byte $LCFI1-$LCFI0 .byte 0x8f # DW_CFA_offset, column 15
.byte 0x9a # DW_CFA_offset, column 0x1a .byte 0x3 # uleb128 3*-8
.byte 0x6 # uleb128 0x6 .byte 0xc # DW_CFA_def_cfa
.byte 0x8f # DW_CFA_offset, column 0xf .byte 15 # uleb128 column 15
.byte 0x5 # uleb128 0x5 .byte 32 # uleb128 offset 32
.byte 0x4 # DW_CFA_advance_loc4
.byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI2-$LCFI1 .4byte $LCFI2-$LCFI1
.byte 0xc # DW_CFA_def_cfa .byte 0xda # DW_CFA_restore, column 26
.byte 0xf # uleb128 0xf
.byte 0x30 # uleb128 0x30
.align 3 .align 3
$LEFDE1: $LEFDE1:
$LSFDE3: $LSFDE3:
.4byte $LEFDE3-$LASFDE3 # FDE Length .4byte $LEFDE3-$LASFDE3 # FDE Length
$LASFDE3: $LASFDE3:
.4byte $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset .4byte $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset
.4byte $LFB2-. # FDE initial location .4byte $LFB2-. # FDE initial location
.4byte $LFE2-$LFB2 # FDE address range .4byte $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 .4byte $LCFI5-$LFB2
.byte 0xe # DW_CFA_def_cfa_offset .byte 0xe # DW_CFA_def_cfa_offset
.byte 0x90,0x1 # uleb128 0x90 .byte 0x80,0x1 # uleb128 128
.byte 0x4 # DW_CFA_advance_loc4
.byte 0x4 # DW_CFA_advance_loc4
.4byte $LCFI6-$LCFI5 .4byte $LCFI6-$LCFI5
.byte 0x9a # DW_CFA_offset, column 0x1a .byte 0x9a # DW_CFA_offset, column 26
.byte 0x12 # uleb128 0x12 .byte 16 # uleb128 offset 16*-8
.align 3 .align 3
$LEFDE3: $LEFDE3:
#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