xref: /csrg-svn/sys/tahoe/inline/langpats.c (revision 29939)
124035Ssam /*
224035Ssam  * Copyright (c) 1984 Regents of the University of California.
324035Ssam  * All rights reserved.  The Berkeley software License Agreement
424035Ssam  * specifies the terms and conditions for redistribution.
524035Ssam  */
624035Ssam 
724035Ssam #ifndef lint
8*29939Ssam static char sccsid[] = "@(#)langpats.c	1.4 (Berkeley) 11/01/86";
925692Ssam #endif
1024035Ssam 
1124035Ssam #include "inline.h"
1224035Ssam 
1324035Ssam /*
1424035Ssam  * Pattern table for kernel specific routines.
1524035Ssam  * These patterns are based on the old asm.sed script.
1624035Ssam  */
1724035Ssam struct pats language_ptab[] = {
1824035Ssam 
1926405Ssam 	{ 0, "_spl0\n",
2025692Ssam "	mfpr	$8,r0\n\
2125692Ssam 	mtpr	$0,$8\n" },
2225692Ssam 
2326405Ssam 	{ 0, "_spl1\n",
2425692Ssam "	mfpr	$8,r0\n\
2525692Ssam 	mtpr	$0x11,$8\n" },
2625692Ssam 
2726405Ssam 	{ 0, "_spl3\n",
2825692Ssam "	mfpr	$8,r0\n\
2925692Ssam 	mtpr	$0x13,$8\n" },
3025692Ssam 
3126405Ssam 	{ 0, "_spl7\n",
3225692Ssam "	mfpr	$8,r0\n\
3325692Ssam 	mtpr	$0x17,$8\n" },
3425692Ssam 
3526405Ssam 	{ 0, "_spl8\n",
3625692Ssam "	mfpr	$8,r0\n\
3725692Ssam 	mtpr	$0x18,$8\n" },
3825692Ssam 
3926405Ssam 	{ 0, "_splimp\n",
4025692Ssam "	mfpr	$8,r0\n\
4125692Ssam 	mtpr	$0x18,$8\n" },
4225692Ssam 
4326405Ssam 	{ 0, "_splsoftclock\n",
4425692Ssam "	mfpr	$18,r0\n\
4525692Ssam 	mtpr	$0x8,$8\n" },
4625692Ssam 
4726405Ssam 	{ 0, "_splnet\n",
4825692Ssam "	mfpr	$8,r0\n\
4925692Ssam 	mtpr	$0xc,$8\n" },
5025692Ssam 
5126405Ssam 	{ 0, "_splbio\n",
5225692Ssam "	mfpr	$8,r0\n\
5325692Ssam 	mtpr	$0x18,$8\n" },
5425692Ssam 
5526405Ssam 	{ 0, "_spltty\n",
5625692Ssam "	mfpr	$8,r0\n\
5725692Ssam 	mtpr	$0x18,$8\n" },
5825692Ssam 
5926405Ssam 	{ 0, "_splclock\n",
6025692Ssam "	mfpr	$8,r0\n\
6125692Ssam 	mtpr	$0x18,$8\n" },
6225692Ssam 
6326405Ssam 	{ 0, "_splhigh\n",
6425692Ssam "	mfpr	$8,r0\n\
6525692Ssam 	mtpr	$0x18,$8\n" },
6625692Ssam 
6726405Ssam 	{ 1, "_splx\n",
6825692Ssam "	movl	(sp)+,r1\n\
6925692Ssam 	mfpr	$8,r0\n\
7025692Ssam 	mtpr	r1,$8\n" },
7125692Ssam 
7226405Ssam 	{ 1, "_mfpr\n",
7325692Ssam "	movl	(sp)+,r1\n\
7425692Ssam 	mfpr	r1,r0\n" },
7525692Ssam 
7626405Ssam 	{ 2, "_mtpr\n",
7725692Ssam "	movl	(sp)+,r1\n\
7825692Ssam 	movl	(sp)+,r0\n\
7925692Ssam 	mtpr	r0,r1\n" },
8025692Ssam 
8125692Ssam #ifdef notdef
8226405Ssam 	{ 1, "_uncache\n",
8325692Ssam "	movl	(sp)+,r1\n\
8425692Ssam 	mtpr	r1,$0x1c\n" },
8525692Ssam #endif
8625692Ssam 
8726405Ssam 	{ 0, "_setsoftclock\n",
8825692Ssam "	mtpr	$0x8,$0x10\n" },
8925692Ssam 
9026405Ssam 	{ 1, "_fuibyte\n",
9125692Ssam "	callf	$8,_fubyte\n" },
9225692Ssam 
9326405Ssam 	{ 1, "_fuiword\n",
9425692Ssam "	callf	$8,_fuword\n" },
9525692Ssam 
9626405Ssam 	{ 2, "_suibyte\n",
9725692Ssam "	callf	$12,_subyte\n" },
9825692Ssam 
9926405Ssam 	{ 2, "_suiword\n",
10025692Ssam "	callf	$12,_suword\n" },
10125692Ssam 
10226405Ssam 	{ 1, "_setjmp\n",
10325692Ssam "	movl	(sp)+,r1\n\
10425692Ssam 	clrl	r0\n\
10525692Ssam 	movab	(fp),(r1)\n\
10625692Ssam 	addl2	$4,r1\n\
10725692Ssam 	movab	1(pc),(r1)\n" },
10825692Ssam 
10926405Ssam 	{ 1, "_ffs\n",
11025692Ssam "	movl	(sp)+,r1\n\
11125692Ssam 	ffs	r1,r0\n\
11225692Ssam 	bgeq	1f\n\
11325692Ssam 	mnegl	$1,r0\n\
11425692Ssam 1:\n\
11525692Ssam 	incl	r0\n" },
11625692Ssam 
11726405Ssam 	{ 2, "__insque\n",
11825692Ssam "	movl	(sp)+,r0\n\
11925692Ssam 	movl	(sp)+,r1\n\
12025692Ssam 	insque	(r0),(r1)\n" },
12125692Ssam 
12226405Ssam 	{ 1, "__remque\n",
12325692Ssam "	movl	(sp)+,r1\n\
12425692Ssam 	remque	(r1)\n" },
12525692Ssam 
12626405Ssam 	{ 2, "_imin\n",
12725692Ssam "	movl	(sp)+,r0\n\
12825692Ssam 	movl	(sp)+,r1\n\
12925692Ssam 	cmpl	r0,r1\n\
13025692Ssam 	bleq	1f\n\
13125692Ssam 	movl	r1,r0\n\
13225692Ssam 1:\n" },
13325692Ssam 
13426405Ssam 	{ 2, "_imax\n",
13525692Ssam "	movl	(sp)+,r0\n\
13625692Ssam 	movl	(sp)+,r1\n\
13725692Ssam 	cmpl	r0,r1\n\
13825692Ssam 	bgeq	1f\n\
13925692Ssam 	movl	r1,r0\n\
14025692Ssam 1:\n" },
14125692Ssam 
14226405Ssam 	{ 2, "_min\n",
14325692Ssam "	movl	(sp)+,r0\n\
14425692Ssam 	movl	(sp)+,r1\n\
14525692Ssam 	cmpl	r0,r1\n\
14625692Ssam 	blequ	1f\n\
14725692Ssam 	movl	r1,r0\n\
14825692Ssam 1:\n" },
14925692Ssam 
15026405Ssam 	{ 2, "_max\n",
15125692Ssam "	movl	(sp)+,r0\n\
15225692Ssam 	movl	(sp)+,r1\n\
15325692Ssam 	cmpl	r0,r1\n\
15425692Ssam 	bgequ	1f\n\
15525692Ssam 	movl	r1,r0\n\
15625692Ssam 1:\n" },
15725692Ssam 
15826405Ssam 	{ 2, "__movow\n",
15925692Ssam "	movl	(sp)+,r1\n\
16025692Ssam 	movl	(sp)+,r0\n\
16125692Ssam 	movow	r0,(r1)\n" },
16225692Ssam 
16326405Ssam 	{ 2, "__movob\n",
16425692Ssam "	movl	(sp)+,r1\n\
16525692Ssam 	movl	(sp)+,r0\n\
16625692Ssam 	movob	r0,(r1)\n" },
16725692Ssam 
168*29939Ssam 	{ 0, "_movpsl\n",
169*29939Ssam "	movpsl	r0\n" },
170*29939Ssam 
17126405Ssam 	{ 0, "", "" }
17224035Ssam };
173