xref: /csrg-svn/sys/vax/inline/libcpats.c (revision 27462)
123345Smckusick /*
223345Smckusick  * Copyright (c) 1984 Regents of the University of California.
323345Smckusick  * All rights reserved.  The Berkeley software License Agreement
423345Smckusick  * specifies the terms and conditions for redistribution.
523345Smckusick  */
616959Smckusick 
716959Smckusick #ifndef lint
8*27462Skarels static char sccsid[] = "@(#)libcpats.c	1.5 (Berkeley) 04/27/86";
916959Smckusick #endif not lint
1016959Smckusick 
1116963Smckusick #include "inline.h"
1216959Smckusick 
1316959Smckusick /*
1416959Smckusick  * Pattern table for the C library.
1516959Smckusick  */
1616959Smckusick struct pats libc_ptab[] = {
1716959Smckusick 
1816959Smckusick #ifdef vax
1924382Smckusick 	{ 1, "_fgetc\n",
2016959Smckusick "	sobgeq	*(sp),1f\n\
2116959Smckusick 	calls	$1,__filbuf\n\
2216959Smckusick 	jbr     2f\n\
2316959Smckusick 1:\n\
2416959Smckusick 	addl3	$4,(sp)+,r1\n\
2516959Smckusick 	movzbl	*(r1),r0\n\
2616959Smckusick 	incl	(r1)\n\
2716959Smckusick 2:\n" },
2816959Smckusick 
2924382Smckusick 	{ 2, "_fputc\n",
3016959Smckusick "	sobgeq	*4(sp),1f\n\
3116959Smckusick 	calls	$2,__flsbuf\n\
3216959Smckusick 	jbr	2f\n\
3316959Smckusick 1:\n\
3416959Smckusick 	movq	(sp)+,r0\n\
3516959Smckusick 	movb	r0,*4(r1)\n\
3616959Smckusick 	incl	4(r1)\n\
3716959Smckusick 2:\n" },
38*27462Skarels #endif vax
3916959Smckusick 
40*27462Skarels #ifdef mc68000
41*27462Skarels /* someday... */
42*27462Skarels #endif mc68000
43*27462Skarels 
44*27462Skarels 	{ 0, "", "" }
45*27462Skarels };
46*27462Skarels 
47*27462Skarels struct pats vaxsubset_libc_ptab[] = {
48*27462Skarels 
4924382Smckusick 	{ 1, "_strlen\n",
5016959Smckusick "	movl	(sp)+,r5\n\
5116959Smckusick 	movl	r5,r1\n\
5216959Smckusick 1:\n\
53*27462Skarels 	tstb	(r1)+\n\
54*27462Skarels 	jneq	1b\n\
55*27462Skarels 	decl	r1\n\
56*27462Skarels 	subl3	r5,r1,r0\n" },
57*27462Skarels 
58*27462Skarels 	{ 0, "", "" }
59*27462Skarels };
60*27462Skarels 
61*27462Skarels struct pats vax_libc_ptab[] = {
62*27462Skarels 
63*27462Skarels 	{ 1, "_strlen\n",
64*27462Skarels "	movl	(sp)+,r5\n\
65*27462Skarels 	movl	r5,r1\n\
66*27462Skarels 1:\n\
6716959Smckusick 	locc	$0,$65535,(r1)\n\
6816959Smckusick 	jeql	1b\n\
6916959Smckusick 	subl3	r5,r1,r0\n" },
7016959Smckusick 
7124382Smckusick 	{ 0, "", "" }
7216959Smckusick };
73