1; Subroutines for calling unbound dynamic functions from within GDB for HPPA. 2; Subroutines for out of line prologues and epilogues on for the HPPA 3; Copyright (C) 1994-2019 Free Software Foundation, Inc. 4 5; This file is part of GCC. 6 7; GCC is free software; you can redistribute it and/or modify 8; it under the terms of the GNU General Public License as published by 9; the Free Software Foundation; either version 3, or (at your option) 10; any later version. 11 12; GCC is distributed in the hope that it will be useful, 13; but WITHOUT ANY WARRANTY; without even the implied warranty of 14; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15; GNU General Public License for more details. 16 17; Under Section 7 of GPL version 3, you are granted additional 18; permissions described in the GCC Runtime Library Exception, version 19; 3.1, as published by the Free Software Foundation. 20 21; You should have received a copy of the GNU General Public License and 22; a copy of the GCC Runtime Library Exception along with this program; 23; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24; <http://www.gnu.org/licenses/>. 25 26#if !defined(__pro__) && !defined(__rtems__) 27 .SPACE $PRIVATE$ 28 .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 29 .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 30 .SPACE $TEXT$ 31 .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 32 .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY 33 .SUBSPA $MILLICODE$,QUAD=0,ALIGN=8,ACCESS=44,SORT=8 34#endif 35 .IMPORT $$dyncall,MILLICODE 36#if !defined(__pro__) && !defined(__rtems__) 37 .SPACE $TEXT$ 38 .SUBSPA $CODE$ 39#else 40 .text 41#endif 42 43; Simply call with the address of the desired import stub in %r22 and 44; arguments in the normal place (%r26-%r23 and stack slots). 45; 46 .align 4 47 .EXPORT __gcc_plt_call,ENTRY,PRIV_LEV=3,RTNVAL=GR 48__gcc_plt_call 49 .PROC 50 .CALLINFO 51 .ENTRY 52 ; Our return address comes in %r31, not %r2! 53 stw %r31,-8(%r30) 54 55 ; An inline version of dyncall so we don't have to worry 56 ; about long calls to millicode, PIC and other complexities. 57 bb,>=,n %r22,30,L$foo 58 depi 0,31,2,%r22 59 ldw 0(%r22),%r21 60 ldw 4(%r22),%r19 61L$foo 62 ldsid (%r21),%r1 63 mtsp %r1,%sr0 64 ble 0(%sr0,%r21) 65 copy %r31,%r2 66 ldw -8(%r30),%r2 67 68 ; We're going to be returning to a stack address, so we 69 ; need to do an intra-space return. 70 ldsid (%rp),%r1 71 mtsp %r1,%sr0 72 be,n 0(%sr0,%rp) 73 .EXIT 74 .PROCEND 75