|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.