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