xref: /csrg-svn/sys/tahoe/inline/langpats.c (revision 49430)
1*49430Sbostic /*-
2*49430Sbostic  * Copyright (c) 1984 The Regents of the University of California.
3*49430Sbostic  * All rights reserved.
4*49430Sbostic  *
5*49430Sbostic  * %sccs.include.redist.c%
624035Ssam  */
724035Ssam 
824035Ssam #ifndef lint
9*49430Sbostic static char sccsid[] = "@(#)langpats.c	1.8 (Berkeley) 05/08/91";
10*49430Sbostic #endif /* not lint */
1124035Ssam 
1224035Ssam #include "inline.h"
1324035Ssam 
1424035Ssam /*
1524035Ssam  * Pattern table for kernel specific routines.
1624035Ssam  * These patterns are based on the old asm.sed script.
1724035Ssam  */
1824035Ssam struct pats language_ptab[] = {
1924035Ssam 
2026405Ssam 	{ 0, "_spl0\n",
2125692Ssam "	mfpr	$8,r0\n\
2225692Ssam 	mtpr	$0,$8\n" },
2325692Ssam 
2426405Ssam 	{ 0, "_spl1\n",
2525692Ssam "	mfpr	$8,r0\n\
2625692Ssam 	mtpr	$0x11,$8\n" },
2725692Ssam 
2826405Ssam 	{ 0, "_spl3\n",
2925692Ssam "	mfpr	$8,r0\n\
3025692Ssam 	mtpr	$0x13,$8\n" },
3125692Ssam 
3230169Ssam 	{ 0, "_spl4\n",
3330169Ssam "	mfpr	$8,r0\n\
3430169Ssam 	mtpr	$0x14,$8\n" },
3530169Ssam 
3630169Ssam 	{ 0, "_spl5\n",
3730169Ssam "	mfpr	$8,r0\n\
3830169Ssam 	mtpr	$0x15,$8\n" },
3930169Ssam 
4026405Ssam 	{ 0, "_spl7\n",
4125692Ssam "	mfpr	$8,r0\n\
4225692Ssam 	mtpr	$0x17,$8\n" },
4325692Ssam 
4426405Ssam 	{ 0, "_spl8\n",
4525692Ssam "	mfpr	$8,r0\n\
4625692Ssam 	mtpr	$0x18,$8\n" },
4725692Ssam 
4826405Ssam 	{ 0, "_splimp\n",
4925692Ssam "	mfpr	$8,r0\n\
5025692Ssam 	mtpr	$0x18,$8\n" },
5125692Ssam 
5226405Ssam 	{ 0, "_splsoftclock\n",
5335775Skarels "	mfpr	$8,r0\n\
5425692Ssam 	mtpr	$0x8,$8\n" },
5525692Ssam 
5626405Ssam 	{ 0, "_splnet\n",
5725692Ssam "	mfpr	$8,r0\n\
5825692Ssam 	mtpr	$0xc,$8\n" },
5925692Ssam 
6026405Ssam 	{ 0, "_splbio\n",
6125692Ssam "	mfpr	$8,r0\n\
6225692Ssam 	mtpr	$0x18,$8\n" },
6325692Ssam 
6426405Ssam 	{ 0, "_spltty\n",
6525692Ssam "	mfpr	$8,r0\n\
6625692Ssam 	mtpr	$0x18,$8\n" },
6725692Ssam 
6826405Ssam 	{ 0, "_splclock\n",
6925692Ssam "	mfpr	$8,r0\n\
7025692Ssam 	mtpr	$0x18,$8\n" },
7125692Ssam 
7226405Ssam 	{ 0, "_splhigh\n",
7325692Ssam "	mfpr	$8,r0\n\
7425692Ssam 	mtpr	$0x18,$8\n" },
7525692Ssam 
7626405Ssam 	{ 1, "_splx\n",
7725692Ssam "	movl	(sp)+,r1\n\
7825692Ssam 	mfpr	$8,r0\n\
7925692Ssam 	mtpr	r1,$8\n" },
8025692Ssam 
8126405Ssam 	{ 1, "_mfpr\n",
8225692Ssam "	movl	(sp)+,r1\n\
8325692Ssam 	mfpr	r1,r0\n" },
8425692Ssam 
8526405Ssam 	{ 2, "_mtpr\n",
8625692Ssam "	movl	(sp)+,r1\n\
8725692Ssam 	movl	(sp)+,r0\n\
8825692Ssam 	mtpr	r0,r1\n" },
8925692Ssam 
9025692Ssam #ifdef notdef
9126405Ssam 	{ 1, "_uncache\n",
9225692Ssam "	movl	(sp)+,r1\n\
9325692Ssam 	mtpr	r1,$0x1c\n" },
9425692Ssam #endif
9525692Ssam 
9626405Ssam 	{ 0, "_setsoftclock\n",
9725692Ssam "	mtpr	$0x8,$0x10\n" },
9825692Ssam 
9926405Ssam 	{ 1, "_fuibyte\n",
10025692Ssam "	callf	$8,_fubyte\n" },
10125692Ssam 
10226405Ssam 	{ 1, "_fuiword\n",
10325692Ssam "	callf	$8,_fuword\n" },
10425692Ssam 
10526405Ssam 	{ 2, "_suibyte\n",
10625692Ssam "	callf	$12,_subyte\n" },
10725692Ssam 
10826405Ssam 	{ 2, "_suiword\n",
10925692Ssam "	callf	$12,_suword\n" },
11025692Ssam 
11126405Ssam 	{ 1, "_ffs\n",
11225692Ssam "	movl	(sp)+,r1\n\
11325692Ssam 	ffs	r1,r0\n\
11425692Ssam 	bgeq	1f\n\
11525692Ssam 	mnegl	$1,r0\n\
11625692Ssam 1:\n\
11725692Ssam 	incl	r0\n" },
11825692Ssam 
11926405Ssam 	{ 2, "__insque\n",
12025692Ssam "	movl	(sp)+,r0\n\
12125692Ssam 	movl	(sp)+,r1\n\
12225692Ssam 	insque	(r0),(r1)\n" },
12325692Ssam 
12426405Ssam 	{ 1, "__remque\n",
12525692Ssam "	movl	(sp)+,r1\n\
12625692Ssam 	remque	(r1)\n" },
12725692Ssam 
12826405Ssam 	{ 2, "_imin\n",
12925692Ssam "	movl	(sp)+,r0\n\
13025692Ssam 	movl	(sp)+,r1\n\
13125692Ssam 	cmpl	r0,r1\n\
13225692Ssam 	bleq	1f\n\
13325692Ssam 	movl	r1,r0\n\
13425692Ssam 1:\n" },
13525692Ssam 
13626405Ssam 	{ 2, "_imax\n",
13725692Ssam "	movl	(sp)+,r0\n\
13825692Ssam 	movl	(sp)+,r1\n\
13925692Ssam 	cmpl	r0,r1\n\
14025692Ssam 	bgeq	1f\n\
14125692Ssam 	movl	r1,r0\n\
14225692Ssam 1:\n" },
14325692Ssam 
14426405Ssam 	{ 2, "_min\n",
14525692Ssam "	movl	(sp)+,r0\n\
14625692Ssam 	movl	(sp)+,r1\n\
14725692Ssam 	cmpl	r0,r1\n\
14825692Ssam 	blequ	1f\n\
14925692Ssam 	movl	r1,r0\n\
15025692Ssam 1:\n" },
15125692Ssam 
15226405Ssam 	{ 2, "_max\n",
15325692Ssam "	movl	(sp)+,r0\n\
15425692Ssam 	movl	(sp)+,r1\n\
15525692Ssam 	cmpl	r0,r1\n\
15625692Ssam 	bgequ	1f\n\
15725692Ssam 	movl	r1,r0\n\
15825692Ssam 1:\n" },
15925692Ssam 
16026405Ssam 	{ 2, "__movow\n",
16125692Ssam "	movl	(sp)+,r1\n\
16225692Ssam 	movl	(sp)+,r0\n\
16325692Ssam 	movow	r0,(r1)\n" },
16425692Ssam 
16526405Ssam 	{ 2, "__movob\n",
16625692Ssam "	movl	(sp)+,r1\n\
16725692Ssam 	movl	(sp)+,r0\n\
16825692Ssam 	movob	r0,(r1)\n" },
16925692Ssam 
17029939Ssam 	{ 0, "_movpsl\n",
17129939Ssam "	movpsl	r0\n" },
17229939Ssam 
17326405Ssam 	{ 0, "", "" }
17424035Ssam };
175