xref: /csrg-svn/sys/tahoe/inline/langpats.c (revision 35775)
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*35775Skarels static char sccsid[] = "@(#)langpats.c	1.6 (Berkeley) 10/09/88";
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 
3130169Ssam 	{ 0, "_spl4\n",
3230169Ssam "	mfpr	$8,r0\n\
3330169Ssam 	mtpr	$0x14,$8\n" },
3430169Ssam 
3530169Ssam 	{ 0, "_spl5\n",
3630169Ssam "	mfpr	$8,r0\n\
3730169Ssam 	mtpr	$0x15,$8\n" },
3830169Ssam 
3926405Ssam 	{ 0, "_spl7\n",
4025692Ssam "	mfpr	$8,r0\n\
4125692Ssam 	mtpr	$0x17,$8\n" },
4225692Ssam 
4326405Ssam 	{ 0, "_spl8\n",
4425692Ssam "	mfpr	$8,r0\n\
4525692Ssam 	mtpr	$0x18,$8\n" },
4625692Ssam 
4726405Ssam 	{ 0, "_splimp\n",
4825692Ssam "	mfpr	$8,r0\n\
4925692Ssam 	mtpr	$0x18,$8\n" },
5025692Ssam 
5126405Ssam 	{ 0, "_splsoftclock\n",
52*35775Skarels "	mfpr	$8,r0\n\
5325692Ssam 	mtpr	$0x8,$8\n" },
5425692Ssam 
5526405Ssam 	{ 0, "_splnet\n",
5625692Ssam "	mfpr	$8,r0\n\
5725692Ssam 	mtpr	$0xc,$8\n" },
5825692Ssam 
5926405Ssam 	{ 0, "_splbio\n",
6025692Ssam "	mfpr	$8,r0\n\
6125692Ssam 	mtpr	$0x18,$8\n" },
6225692Ssam 
6326405Ssam 	{ 0, "_spltty\n",
6425692Ssam "	mfpr	$8,r0\n\
6525692Ssam 	mtpr	$0x18,$8\n" },
6625692Ssam 
6726405Ssam 	{ 0, "_splclock\n",
6825692Ssam "	mfpr	$8,r0\n\
6925692Ssam 	mtpr	$0x18,$8\n" },
7025692Ssam 
7126405Ssam 	{ 0, "_splhigh\n",
7225692Ssam "	mfpr	$8,r0\n\
7325692Ssam 	mtpr	$0x18,$8\n" },
7425692Ssam 
7526405Ssam 	{ 1, "_splx\n",
7625692Ssam "	movl	(sp)+,r1\n\
7725692Ssam 	mfpr	$8,r0\n\
7825692Ssam 	mtpr	r1,$8\n" },
7925692Ssam 
8026405Ssam 	{ 1, "_mfpr\n",
8125692Ssam "	movl	(sp)+,r1\n\
8225692Ssam 	mfpr	r1,r0\n" },
8325692Ssam 
8426405Ssam 	{ 2, "_mtpr\n",
8525692Ssam "	movl	(sp)+,r1\n\
8625692Ssam 	movl	(sp)+,r0\n\
8725692Ssam 	mtpr	r0,r1\n" },
8825692Ssam 
8925692Ssam #ifdef notdef
9026405Ssam 	{ 1, "_uncache\n",
9125692Ssam "	movl	(sp)+,r1\n\
9225692Ssam 	mtpr	r1,$0x1c\n" },
9325692Ssam #endif
9425692Ssam 
9526405Ssam 	{ 0, "_setsoftclock\n",
9625692Ssam "	mtpr	$0x8,$0x10\n" },
9725692Ssam 
9826405Ssam 	{ 1, "_fuibyte\n",
9925692Ssam "	callf	$8,_fubyte\n" },
10025692Ssam 
10126405Ssam 	{ 1, "_fuiword\n",
10225692Ssam "	callf	$8,_fuword\n" },
10325692Ssam 
10426405Ssam 	{ 2, "_suibyte\n",
10525692Ssam "	callf	$12,_subyte\n" },
10625692Ssam 
10726405Ssam 	{ 2, "_suiword\n",
10825692Ssam "	callf	$12,_suword\n" },
10925692Ssam 
11026405Ssam 	{ 1, "_setjmp\n",
11125692Ssam "	movl	(sp)+,r1\n\
11225692Ssam 	clrl	r0\n\
11325692Ssam 	movab	(fp),(r1)\n\
11425692Ssam 	addl2	$4,r1\n\
11525692Ssam 	movab	1(pc),(r1)\n" },
11625692Ssam 
11726405Ssam 	{ 1, "_ffs\n",
11825692Ssam "	movl	(sp)+,r1\n\
11925692Ssam 	ffs	r1,r0\n\
12025692Ssam 	bgeq	1f\n\
12125692Ssam 	mnegl	$1,r0\n\
12225692Ssam 1:\n\
12325692Ssam 	incl	r0\n" },
12425692Ssam 
12526405Ssam 	{ 2, "__insque\n",
12625692Ssam "	movl	(sp)+,r0\n\
12725692Ssam 	movl	(sp)+,r1\n\
12825692Ssam 	insque	(r0),(r1)\n" },
12925692Ssam 
13026405Ssam 	{ 1, "__remque\n",
13125692Ssam "	movl	(sp)+,r1\n\
13225692Ssam 	remque	(r1)\n" },
13325692Ssam 
13426405Ssam 	{ 2, "_imin\n",
13525692Ssam "	movl	(sp)+,r0\n\
13625692Ssam 	movl	(sp)+,r1\n\
13725692Ssam 	cmpl	r0,r1\n\
13825692Ssam 	bleq	1f\n\
13925692Ssam 	movl	r1,r0\n\
14025692Ssam 1:\n" },
14125692Ssam 
14226405Ssam 	{ 2, "_imax\n",
14325692Ssam "	movl	(sp)+,r0\n\
14425692Ssam 	movl	(sp)+,r1\n\
14525692Ssam 	cmpl	r0,r1\n\
14625692Ssam 	bgeq	1f\n\
14725692Ssam 	movl	r1,r0\n\
14825692Ssam 1:\n" },
14925692Ssam 
15026405Ssam 	{ 2, "_min\n",
15125692Ssam "	movl	(sp)+,r0\n\
15225692Ssam 	movl	(sp)+,r1\n\
15325692Ssam 	cmpl	r0,r1\n\
15425692Ssam 	blequ	1f\n\
15525692Ssam 	movl	r1,r0\n\
15625692Ssam 1:\n" },
15725692Ssam 
15826405Ssam 	{ 2, "_max\n",
15925692Ssam "	movl	(sp)+,r0\n\
16025692Ssam 	movl	(sp)+,r1\n\
16125692Ssam 	cmpl	r0,r1\n\
16225692Ssam 	bgequ	1f\n\
16325692Ssam 	movl	r1,r0\n\
16425692Ssam 1:\n" },
16525692Ssam 
16626405Ssam 	{ 2, "__movow\n",
16725692Ssam "	movl	(sp)+,r1\n\
16825692Ssam 	movl	(sp)+,r0\n\
16925692Ssam 	movow	r0,(r1)\n" },
17025692Ssam 
17126405Ssam 	{ 2, "__movob\n",
17225692Ssam "	movl	(sp)+,r1\n\
17325692Ssam 	movl	(sp)+,r0\n\
17425692Ssam 	movob	r0,(r1)\n" },
17525692Ssam 
17629939Ssam 	{ 0, "_movpsl\n",
17729939Ssam "	movpsl	r0\n" },
17829939Ssam 
17926405Ssam 	{ 0, "", "" }
18024035Ssam };
181