Annotation of gcc/config/pa/lib2funcs.asm, revision 1.1.1.1

1.1       root        1: ;  Subroutines for calling unbound dynamic functions from within GDB for HPPA.
                      2: ;  Copyright (C) 1994, 1995 Free Software Foundation, Inc.
                      3: 
                      4: ;  This file is part of GNU CC.
                      5: 
                      6: ;  GNU CC is free software; you can redistribute it and/or modify
                      7: ;  it under the terms of the GNU General Public License as published by
                      8: ;  the Free Software Foundation; either version 2, or (at your option)
                      9: ;  any later version.
                     10: 
                     11: ;  GNU CC is distributed in the hope that it will be useful,
                     12: ;  but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13: ;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     14: ;  GNU General Public License for more details.
                     15: 
                     16: ;  You should have received a copy of the GNU General Public License
                     17: ;  along with GNU CC; see the file COPYING.  If not, write to
                     18: ;  the Free Software Foundation, 59 Temple Place - Suite 330,
                     19: ;  Boston, MA 02111-1307, USA.
                     20: 
                     21:        .SPACE $PRIVATE$
                     22:        .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
                     23:        .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
                     24:        .SPACE $TEXT$
                     25:        .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
                     26:        .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
                     27:        .IMPORT $$dyncall,MILLICODE
                     28: ; gcc_compiled.:
                     29:        .SPACE $TEXT$
                     30:        .SUBSPA $CODE$
                     31: 
                     32: ; Simply call with the address of the desired import stub in %r22 and
                     33: ; arguments in the normal place (%r26-%r23 and stack slots).
                     34: ;
                     35:        .align 4
                     36:        .EXPORT __gcc_plt_call,ENTRY,PRIV_LEV=3,RTNVAL=GR
                     37: __gcc_plt_call
                     38:        .PROC
                     39:        .CALLINFO
                     40:        .ENTRY
                     41:        ; Our return address comes in %r31, not %r2!
                     42:        stw %r31,-8(0,%r30)
                     43: 
                     44:        ; An inline version of dyncall so we don't have to worry
                     45:        ; about long calls to millicode, PIC and other complexities.
                     46:        bb,>=,n %r22,30,L$foo
                     47:         depi 0,31,2,%r22
                     48:         ldw 4(%r22),%r19
                     49:         ldw 0(%r22),%r22
                     50: L$foo
                     51:         ldsid (%r22),%r1
                     52:         mtsp %r1,%sr0
                     53:         ble 0(%sr0,%r22)
                     54:        copy %r31,%r2
                     55:        ldw -8(0,%r30),%r2
                     56: 
                     57:        ; We're going to be returning to a stack address, so we
                     58:        ; need to do an intra-space return.
                     59:        ldsid (%rp),%r1
                     60:        mtsp %r1,%sr0
                     61:        be,n 0(%sr0,%rp)
                     62:        .EXIT
                     63:        .PROCEND

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.