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