]> gcc.gnu.org Git - gcc.git/commitdiff
Support recursive calls to exit.
authorRichard Henderson <rth@gcc.gnu.org>
Wed, 8 Apr 1998 18:30:32 +0000 (11:30 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 8 Apr 1998 18:30:32 +0000 (11:30 -0700)
From-SVN: r19052

gcc/config/alpha/crtbegin.asm

index dfb11e51eab86c91e708cf95c27914487b88c54e..c28440d8a248d6c56930c81013966e1e9f3e9714 100644 (file)
@@ -75,6 +75,11 @@ __DTOR_LIST__:
  # Invoke our destructors in order.
  #
 
+.data
+
+ # Support recursive calls to exit.
+9:     .quad   __DTOR_LIST__
+
 .text
 
        .align 3
@@ -84,20 +89,22 @@ __do_global_dtors_aux:
        ldgp    $29,0($27)
        lda     $30,-16($30)
        .frame  $30,16,$26,0
+       stq     $9,8($30)
        stq     $26,0($30)
-       .mask   0x4000000,-16
+       .mask   0x4000200,-16
        .prologue 1
 
-       lda     $1,__DTOR_LIST__
+       lda     $9,9b
        br      1f
-0:     stq     $1,8($30)
+0:     stq     $1,0($9)
        jsr     $26,($27)
-       ldq     $1,8($30)
-1:     ldq     $27,8($1)
+1:     ldq     $1,0($9)
+       ldq     $27,8($1)
        addq    $1,8,$1
        bne     $27,0b
 
        ldq     $26,0($30)
+       ldq     $9,8($30)
        lda     $30,16($30)
        ret
 
This page took 0.065632 seconds and 5 git commands to generate.