File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / lib / libc / tahoe / csu / gmon.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:55 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

.data
.align	2
_sccsid:.data	2
L12:.ascii	"@(#)gmon.c\11"
.ascii	"2.0 (Tahoe) 3/20/85\0"
.data
.long	L12
.align	2
_profiling:.long	3
.lcomm	_froms,4
.align	2
_tos:.long	0
.align	2
_tolimit:.long	0
.align	2
_s_lowpc:.long	0
.align	2
_s_highpc:.long	0
.align	2
_s_textsize:.long	0
.lcomm	_ssiz,4
.lcomm	_sbuf,4
.lcomm	_s_scale,4
.text
LL0:.align	1
.globl	_monstartup
.data	1
L32:.ascii	"No space for monitor buffer(s)\12\0"
.text
.data	1
L33:.ascii	"No space for monitor buffer(s)\12\0"
.text
.data	1
L35:.ascii	"No space for monitor buffer(s)\12\0"
.text
.data	1
L36:.ascii	"No space for monitor buffer(s)\12\0"
.text
.data	1
L41:.ascii	"No space for monitor buffer(s)\12\0"
.text
.data	1
L42:.ascii	"No space for monitor buffer(s)\12\0"
.text
.set	L24,0x0
.data
.text
_monstartup:.word	L24
subl3	$60,fp,sp
pushl	$4
pushl	4(fp)
callf	$12,udiv
shll	$2,r0,4(fp)
movl	4(fp),_s_lowpc
pushl	$4
addl3	$3,8(fp),-(sp)
callf	$12,udiv
shll	$2,r0,8(fp)
movl	8(fp),_s_highpc
subl3	4(fp),8(fp),_s_textsize
pushl	$2
pushl	_s_textsize
callf	$12,udiv
addl3	$12,r0,-56(fp)
addl3	$3,-56(fp),r0
andl3	$-4,r0,-56(fp)
pushl	-56(fp)
callf	$8,_sbrk
movl	r0,-60(fp)
cmpl	r0,$-1
jneq	L30
pushl	$32
pushl	$L32
pushl	$2
callf	$16,_write
ret#2
L30:pushl	_s_textsize
callf	$8,_sbrk
movl	r0,_froms
cmpl	r0,$-1
jneq	L34
pushl	$32
pushl	$L35
pushl	$2
callf	$16,_write
clrl	_froms
ret#2
L34:pushl	$100
addl3	_s_textsize,_s_textsize,-(sp)
callf	$12,udiv
movl	r0,_tolimit
cmpl	r0,$50
jgeq	L37
movl	$50,_tolimit
jbr	L38
L37:cmpl	_tolimit,$65534
jleq	L38
movl	$65534,_tolimit
L38:mull3	$12,_tolimit,r0
addl2	$3,r0
andl3	$-4,r0,-(sp)
callf	$8,_sbrk
movl	r0,_tos
cmpl	r0,$-1
jneq	L40
pushl	$32
pushl	$L41
pushl	$2
callf	$16,_write
clrl	_froms
clrl	_tos
ret#2
L40:pushl	$0
callf	$8,_sbrk
movl	r0,minbrk
movl	_tos,r0
clrw	8(r0)
pushl	_tolimit
pushl	-56(fp)
pushl	-60(fp)
pushl	8(fp)
pushl	4(fp)
callf	$24,_monitor
ret#2
.align	1
.globl	__mcleanup
.data	1
L50:.ascii	"gmon.out\0"
.text
.data	1
L53:.ascii	"mcount: gmon.out\0"
.text
.set	L45,0x0
.data
.text
__mcleanup:.word	L45
subl3	$84,fp,sp
pushl	$438
pushl	$L50
callf	$12,_creat
movl	r0,-56(fp)
tstl	r0
jgeq	L51
pushl	$L53
callf	$8,_perror
ret#2
L51:pushl	_ssiz
pushl	_sbuf
pushl	-56(fp)
callf	$16,_write
pushl	$2
pushl	_s_textsize
callf	$12,udiv
movl	r0,-64(fp)
clrl	-60(fp)
jbr	L56
L2000003:movl	-60(fp),r0
addl2	r0,r0
addl2	_froms,r0
tstw	(r0)
jeql	L54
addl3	-60(fp),-60(fp),r0
addl3	_s_lowpc,r0,-68(fp)
movl	-60(fp),r0
addl2	r0,r0
addl2	_froms,r0
movzwl	(r0),-72(fp)
jbr	L60
L2000001:movl	-68(fp),-84(fp)
mull3	$12,-72(fp),r0
addl2	_tos,r0
movl	(r0),-80(fp)
mull3	$12,-72(fp),r0
addl2	_tos,r0
movl	4(r0),-76(fp)
pushl	$12
subl3	$84,fp,-(sp)
pushl	-56(fp)
callf	$16,_write
mull3	$12,-72(fp),r0
addl2	_tos,r0
movzwl	8(r0),-72(fp)
L60:tstl	-72(fp)
jneq	L2000001
L54:incl	-60(fp)
L56:cmpl	-60(fp),-64(fp)
jlss	L2000003
pushl	-56(fp)
callf	$8,_close
ret#2
.align	1
.globl	mcount
.data	1
L81:.ascii	"mcount: tos overflow\12\0"
.text
.data	1
L82:.ascii	"mcount: tos overflow\12\0"
.text
.set	L63,0x1F0C
.data
.text
mcount:.word	L63
movl	-8(fp),r12
movl	(fp),r0
movl	-8(r0),r11
tstl	_profiling
jneq	L68
incl	_profiling
subl3	_s_lowpc,r11,r0
movl	r0,r11
cmpl	r11,_s_textsize
jgtru	L70
divl3	$2,r11,r0
addl2	r0,r0
addl3	_froms,r0,r11
movzwl	(r11),r8
tstl	r8
jneq	L71
movl	_tos,r0
incw	8(r0)
movzwl	8(r0),r8
cmpl	r8,_tolimit
jgeq	L73
cvtlw	r8,(r11)
mull3	$12,r8,r0
addl2	_tos,r0
movl	r0,r10
movl	r12,(r10)
movl	$1,4(r10)
clrw	8(r10)
jbr	L70
L2000005:incl	4(r10)
jbr	L70
L2000007:movl	_tos,r0
incw	8(r0)
movzwl	8(r0),r8
cmpl	r8,_tolimit
jgeq	L73
mull3	$12,r8,r0
addl2	_tos,r0
movl	r0,r10
movl	r12,(r10)
movl	$1,4(r10)
L2000009:movw	(r11),8(r10)
cvtlw	r8,(r11)
L70:decl	_profiling
L68:ret#2
L71:mull3	$12,r8,r0
addl2	_tos,r0
movl	r0,r10
cmpl	(r10),r12
jeql	L2000005
L77:tstw	8(r10)
jeql	L2000007
movl	r10,r9
movzwl	8(r10),r0
emul	$12,r0,$0,r2
movl	r3,r0
addl2	_tos,r0
movl	r0,r10
cmpl	(r10),r12
jneq	L77
incl	4(r10)
movzwl	8(r9),r8
movw	8(r10),8(r9)
jbr	L2000009
L73:pushl	$22
pushl	$L81
pushl	$2
callf	$16,_write
jbr	L68
.align	1
.globl	_monitor
.data
.align	2
L91:.long	0x48800000, 0x00000000 # .double 65536
.text
.set	L83,0x100C
.data
.text
_monitor:.word	L83
tstl	4(fp)
jneq	L87
pushl	$0
callf	$8,_moncontrol
callf	$4,__mcleanup
ret#2
L87:movl	12(fp),_sbuf
movl	16(fp),_ssiz
movl	4(fp),*12(fp)
movl	12(fp),r0
movl	8(fp),4(r0)
movl	12(fp),r0
movl	_ssiz,8(r0)
subl2	$12,16(fp)
jgtr	L89
ret#2
L89:subl3	4(fp),8(fp),r12
cmpl	16(fp),r12
jgeq	L90
cvlf	16(fp)
stf	r0
clrl	r1
cvld	r12
std	r2
ldd	r0
divd	r2
muld	L91
cvdl	_s_scale
jbr	L92
L90:movl	$65536,_s_scale
L92:pushl	$1
callf	$8,_moncontrol
ret#2
.align	1
.globl	_moncontrol
.set	L93,0x0
.data
.text
_moncontrol:.word	L93
tstl	4(fp)
jeql	L97
pushl	_s_scale
pushl	_s_lowpc
subl3	$12,_ssiz,-(sp)
addl3	$12,_sbuf,-(sp)
callf	$20,_profil
clrl	_profiling
jbr	L99
L97:pushl	$0
pushl	$0
pushl	$0
pushl	$0
callf	$20,_profil
movl	$3,_profiling
L99:ret#2


unix.superglobalmegacorp.com

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