head	1.2;
access;
symbols
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	cjep_sun2x:1.2.0.44
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.42
	cjep_staticlib_x-base:1.2
	phil-wifi-20200421:1.2
	phil-wifi-20200411:1.2
	phil-wifi-20200406:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	pgoyette-compat:1.2.0.40
	pgoyette-compat-base:1.2
	perseant-stdc-iso10646:1.2.0.38
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.36
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	bouyer-socketcan:1.2.0.34
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	pgoyette-localcount-20161104:1.2
	localcount-20160914:1.2
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.32
	pgoyette-localcount-base:1.2
	netbsd-5-2-3-RELEASE:1.2
	netbsd-5-1-5-RELEASE:1.2
	yamt-pagecache-base9:1.2
	yamt-pagecache-tag8:1.2
	tls-earlyentropy:1.2.0.28
	tls-earlyentropy-base:1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2
	riastradh-drm2-base3:1.2
	netbsd-5-2-2-RELEASE:1.2
	netbsd-5-1-4-RELEASE:1.2
	netbsd-5-2-1-RELEASE:1.2
	netbsd-5-1-3-RELEASE:1.2
	agc-symver:1.2.0.30
	agc-symver-base:1.2
	tls-maxphys-base:1.2
	yamt-pagecache-base8:1.2
	netbsd-5-2:1.2.0.26
	yamt-pagecache-base7:1.2
	netbsd-5-2-RELEASE:1.2
	netbsd-5-2-RC1:1.2
	yamt-pagecache-base6:1.2
	yamt-pagecache-base5:1.2
	yamt-pagecache-base4:1.2
	netbsd-5-1-2-RELEASE:1.2
	netbsd-5-1-1-RELEASE:1.2
	yamt-pagecache-base3:1.2
	yamt-pagecache-base2:1.2
	yamt-pagecache:1.2.0.24
	yamt-pagecache-base:1.2
	bouyer-quota2-nbase:1.2
	bouyer-quota2:1.2.0.22
	bouyer-quota2-base:1.2
	matt-nb5-pq3:1.2.0.20
	matt-nb5-pq3-base:1.2
	netbsd-5-1:1.2.0.18
	netbsd-5-1-RELEASE:1.2
	netbsd-5-1-RC4:1.2
	netbsd-5-1-RC3:1.2
	netbsd-5-1-RC2:1.2
	netbsd-5-1-RC1:1.2
	netbsd-5-0-2-RELEASE:1.2
	netbsd-5-0-1-RELEASE:1.2
	jym-xensuspend-nbase:1.2
	netbsd-5-0:1.2.0.16
	netbsd-5-0-RELEASE:1.2
	netbsd-5-0-RC4:1.2
	netbsd-5-0-RC3:1.2
	netbsd-5-0-RC2:1.2
	jym-xensuspend:1.2.0.14
	jym-xensuspend-base:1.2
	netbsd-5-0-RC1:1.2
	netbsd-5:1.2.0.12
	netbsd-5-base:1.2
	mjf-devfs2:1.2.0.10
	mjf-devfs2-base:1.2
	yamt-pf42-base4:1.2
	yamt-pf42-base3:1.2
	hpcarm-cleanup-nbase:1.2
	yamt-pf42-base2:1.2
	yamt-pf42:1.2.0.8
	yamt-pf42-base:1.2
	keiichi-mipv6:1.2.0.6
	keiichi-mipv6-base:1.2
	cube-autoconf:1.2.0.4
	cube-autoconf-base:1.2
	hpcarm-cleanup:1.2.0.2
	hpcarm-cleanup-base:1.2
	netbsd-3-1-1-RELEASE:1.1.1.1
	netbsd-3-0-3-RELEASE:1.1.1.1
	netbsd-3-1:1.1.1.1.0.14
	netbsd-3-1-RELEASE:1.1.1.1
	netbsd-3-0-2-RELEASE:1.1.1.1
	netbsd-3-1-RC4:1.1.1.1
	netbsd-3-1-RC3:1.1.1.1
	netbsd-3-1-RC2:1.1.1.1
	netbsd-3-1-RC1:1.1.1.1
	netbsd-3-0-1-RELEASE:1.1.1.1
	netbsd-3-0:1.1.1.1.0.12
	netbsd-3-0-RELEASE:1.1.1.1
	netbsd-3-0-RC6:1.1.1.1
	netbsd-3-0-RC5:1.1.1.1
	netbsd-3-0-RC4:1.1.1.1
	netbsd-3-0-RC3:1.1.1.1
	netbsd-3-0-RC2:1.1.1.1
	netbsd-3-0-RC1:1.1.1.1
	netbsd-2-0-3-RELEASE:1.1.1.1
	netbsd-2-1:1.1.1.1.0.10
	netbsd-2-1-RELEASE:1.1.1.1
	netbsd-2-1-RC6:1.1.1.1
	netbsd-2-1-RC5:1.1.1.1
	netbsd-2-1-RC4:1.1.1.1
	netbsd-2-1-RC3:1.1.1.1
	netbsd-2-1-RC2:1.1.1.1
	netbsd-2-1-RC1:1.1.1.1
	netbsd-2-0-2-RELEASE:1.1.1.1
	netbsd-3:1.1.1.1.0.8
	netbsd-3-base:1.1.1.1
	netbsd-2-0-1-RELEASE:1.1.1.1
	netbsd-2:1.1.1.1.0.6
	netbsd-2-base:1.1.1.1
	netbsd-2-0-RELEASE:1.1.1.1
	netbsd-2-0-RC5:1.1.1.1
	netbsd-2-0-RC4:1.1.1.1
	netbsd-2-0-RC3:1.1.1.1
	netbsd-2-0-RC2:1.1.1.1
	netbsd-2-0-RC1:1.1.1.1
	netbsd-2-0:1.1.1.1.0.4
	netbsd-2-0-base:1.1.1.1
	netbsd-1-6-PATCH002-RELEASE:1.1.1.1
	netbsd-1-6-PATCH002:1.1.1.1
	netbsd-1-6-PATCH002-RC4:1.1.1.1
	netbsd-1-6-PATCH002-RC3:1.1.1.1
	netbsd-1-6-PATCH002-RC2:1.1.1.1
	netbsd-1-6-PATCH002-RC1:1.1.1.1
	netbsd-1-6-PATCH001:1.1.1.1
	netbsd-1-6-PATCH001-RELEASE:1.1.1.1
	netbsd-1-6-PATCH001-RC3:1.1.1.1
	netbsd-1-6-PATCH001-RC2:1.1.1.1
	netbsd-1-6-PATCH001-RC1:1.1.1.1
	fvdl_fs64_base:1.1.1.1
	netbsd-1-6-RELEASE:1.1.1.1
	netbsd-1-6-RC3:1.1.1.1
	netbsd-1-6-RC2:1.1.1.1
	netbsd-1-6-RC1:1.1.1.1
	netbsd-1-6:1.1.1.1.0.2
	netbsd-1-6-base:1.1.1.1
	gcc-2-95-3:1.1.1.1
	gcc-2-95-2:1.1.1.1
	FSF:1.1.1;
locks; strict;
comment	@;; @;
expand	@o@;


1.2
date	2006.06.02.22.17.31;	author mrg;	state dead;
branches;
next	1.1;

1.1
date	2000.07.26.00.18.45;	author tv;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2000.07.26.00.18.45;	author tv;	state Exp;
branches;
next	;


desc
@@


1.2
log
@delete GCC2.95.3 sources.
@
text
@;  Subroutines for out of line prologues and epilogues on for the HPPA
;  Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.

;  This file is part of GNU CC.

;  GNU CC is free software; you can redistribute it and/or modify
;  it under the terms of the GNU General Public License as published by
;  the Free Software Foundation; either version 2, or (at your option)
;  any later version.

;  GNU CC is distributed in the hope that it will be useful,
;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;  GNU General Public License for more details.

;  You should have received a copy of the GNU General Public License
;  along with GNU CC; see the file COPYING.  If not, write to
;  the Free Software Foundation, 59 Temple Place - Suite 330,
;  Boston, MA 02111-1307, USA.

	.SPACE $PRIVATE$
	.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
	.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
	.SPACE $TEXT$
	.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
	.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
	.SUBSPA $MILLICODE$,QUAD=0,ALIGN=8,ACCESS=44,SORT=8

; This is an out-of-line prologue.
;
; It performs the following operations:
;
;	* Saves the return pointer at sp - 20
;
;	* Creates a new stack frame (sp'), size of the frame is passed in %r21
;
;	* The old stack pointer is saved at sp (frame pointer version only).
;
;	* Saves grs (passed in low 16 bits of %r22 into the stack frame
;	at sp' + local_fsize (passed in %r19).
;
;	* Saves frs (passed in high 16 bits of %r22) into the stack
;	frame at sp' + local_fsize (passed in %r19).
;
;	* Sets up a frame pointer (in %r3) (frame pointer version only).
;
;	* Returns to the instruction _immediately_ after the call to
;	this function.

	.SPACE $TEXT$
	.SUBSPA $MILLICODE$
	.EXPORT __outline_prologue,MILLICODE
	.align 32
__outline_prologue
	.PROC
	.CALLINFO FRAME=0,NO_CALLS
	.ENTRY
	copy %r30,%r20

	; Subtract 4 from our return pointer so that we return to
	; the right location.
        ldo -4(%r31),%r31

	; Save off %r2
	stw %r2,-20(%r30)

	; Make our new frame.
	add %r21,%r30,%r30

	; Add in local_fsize to our frame pointer so we do register
	; saves into the right place
	add %r20,%r19,%r20

	; %r22 tells us what registers we need to save.  The upper half
	; is for fp registers, the lower half for integer registers.
	; We put the lower half in %r1 and the upper half into %r22
	; for later use.
	extru %r22,31,16,%r1
	extrs %r22,15,16,%r22

	; %r1 now olds a value 0-18 which corresponds to the number
	; of grs we need to save.  We need to reverse that value so
	; we can just into the table and straight-line execute to the
	; end of the gr saves.
	comb,= %r0,%r1,L$0000
	subi 18,%r1,%r1
	blr,n %r1,%r0
	b,n L$0000
	stws,ma %r18,4(%r20)
	nop
	stws,ma %r17,4(%r20)
	nop
	stws,ma %r16,4(%r20)
	nop
	stws,ma %r15,4(%r20)
	nop
	stws,ma %r14,4(%r20)
	nop
	stws,ma %r13,4(%r20)
	nop
	stws,ma %r12,4(%r20)
	nop
	stws,ma %r11,4(%r20)
	nop
	stws,ma %r10,4(%r20)
	nop
	stws,ma %r9,4(%r20)
	nop
	stws,ma %r8,4(%r20)
	nop
	stws,ma %r7,4(%r20)
	nop
	stws,ma %r6,4(%r20)
	nop
	stws,ma %r5,4(%r20)
	nop
	stws,ma %r4,4(%r20)
	nop
	stws,ma %r3,4(%r20)
	nop
L$0000
	; All gr saves are done.  Align the temporary frame pointer and
	; do the fr saves.
	ldo 7(%r20),%r20
	depi 0,31,3,%r20

	comb,= %r0,%r22,L$0001
	subi 21,%r22,%r22
	blr,n %r22,%r0
	b,n L$0001
	fstws,ma %fr21,8(%r20)
	nop
	fstws,ma %fr20,8(%r20)
	nop
	fstws,ma %fr19,8(%r20)
	nop
	fstws,ma %fr18,8(%r20)
	nop
	fstws,ma %fr17,8(%r20)
	nop
	fstws,ma %fr16,8(%r20)
	nop
	fstws,ma %fr15,8(%r20)
	nop
	fstws,ma %fr14,8(%r20)
	nop
	fstws,ma %fr13,8(%r20)
	nop
	fstws,ma %fr12,8(%r20)
	nop
L$0001
	; Return
	bv,n %r0(%r31)
	.EXIT
	.PROCEND



	.EXPORT __outline_epilogue,MILLICODE
	.align 32
__outline_epilogue
	.PROC
	.CALLINFO FRAME=0,NO_CALLS
	.ENTRY
	; Get our original stack pointer and put it in %r20
	sub %r30,%r21,%r20

	; Subtract 4 from our return pointer so that we return to
	; the right location.
        ldo -4(%r31),%r31

	; Reload %r2
	ldw -20(%r20),%r2

	; Add in local_fsize (%r19) to the frame pointer to find
	; the saved registers.
	add %r20,%r19,%r20

	; %r22 tells us what registers we need to restore.  The upper half
	; is for fp registers, the lower half for integer registers.
	; We put the lower half in %r1 and the upper half into %r22
	; for later use.
	extru %r22,31,16,%r1
	extrs %r22,15,16,%r22

	; %r1 now olds a value 0-18 which corresponds to the number
	; of grs we need to restore.  We need to reverse that value so
	; we can just into the table and straight-line execute to the
	; end of the gr restore.
	comb,= %r0,%r1,L$0004
	subi 18,%r1,%r1
	blr,n %r1,%r0
	b,n L$0004
	ldws,ma 4(%r20),%r18
	nop
	ldws,ma 4(%r20),%r17
	nop
	ldws,ma 4(%r20),%r16
	nop
	ldws,ma 4(%r20),%r15
	nop
	ldws,ma 4(%r20),%r14
	nop
	ldws,ma 4(%r20),%r13
	nop
	ldws,ma 4(%r20),%r12
	nop
	ldws,ma 4(%r20),%r11
	nop
	ldws,ma 4(%r20),%r10
	nop
	ldws,ma 4(%r20),%r9
	nop
	ldws,ma 4(%r20),%r8
	nop
	ldws,ma 4(%r20),%r7
	nop
	ldws,ma 4(%r20),%r6
	nop
	ldws,ma 4(%r20),%r5
	nop
	ldws,ma 4(%r20),%r4
	nop
	ldws,ma 4(%r20),%r3
	nop
L$0004
	; All gr restore are done.  Align the temporary frame pointer and
	; do the fr restore.
	ldo 7(%r20),%r20
	depi 0,31,3,%r20

	comb,= %r0,%r22,L$0005
	subi 21,%r22,%r22
	blr,n %r22,%r0
	b,n L$0005
	fldws,ma 8(%r20),%fr21
	nop
	fldws,ma 8(%r20),%fr20
	nop
	fldws,ma 8(%r20),%fr19
	nop
	fldws,ma 8(%r20),%fr18
	nop
	fldws,ma 8(%r20),%fr17
	nop
	fldws,ma 8(%r20),%fr16
	nop
	fldws,ma 8(%r20),%fr15
	nop
	fldws,ma 8(%r20),%fr14
	nop
	fldws,ma 8(%r20),%fr13
	nop
	fldws,ma 8(%r20),%fr12
	nop
L$0005
	; Return and deallocate our frame.
	bv %r0(%r31)
	sub %r30,%r21,%r30
	.EXIT
	.PROCEND
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@Import of gcc 2.95.2 into new gnu/dist/toolchain layout.
@
text
@@
