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