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