1 /* Copyright (c) 1984 Regents of the University of California */ 2 3 #ifndef lint 4 static char sccsid[] = "@(#)machpats.c 1.3 (Berkeley) 08/19/84"; 5 #endif not lint 6 7 #include "inline.h" 8 9 /* 10 * Pattern table for special VAX instructions. 11 */ 12 struct pats machine_ptab[] = { 13 14 #ifdef vax 15 { "3,_blkcpy\n", 16 " movl (sp)+,r1\n\ 17 movl (sp)+,r3\n\ 18 jbr 2f\n\ 19 1:\n\ 20 subl2 r0,(sp)\n\ 21 movc3 r0,(r1),(r3)\n\ 22 2:\n\ 23 movzwl $65535,r0\n\ 24 cmpl (sp),r0\n\ 25 jgtr 1b\n\ 26 movl (sp)+,r0\n\ 27 movc3 r0,(r1),(r3)\n" }, 28 29 { "3,_bcopy\n", 30 " movl (sp)+,r1\n\ 31 movl (sp)+,r3\n\ 32 movl (sp)+,r5\n\ 33 movc3 r5,(r1),(r3)\n" }, 34 35 { "3,_ovbcopy\n", 36 " movl (sp)+,r3\n\ 37 movl (sp)+,r4\n\ 38 movl (sp)+,r5\n\ 39 movc3 r5,(r3),(r4)\n" }, 40 41 { "3,_blkcmp\n", 42 " movl (sp)+,r1\n\ 43 movl (sp)+,r3\n\ 44 jbr 2f\n\ 45 1:\n\ 46 subl2 r0,(sp)\n\ 47 cmpc3 r0,(r1),(r3)\n\ 48 bneq 3f\n\ 49 2:\n\ 50 movzwl $65535,r0\n\ 51 cmpl (sp),r0\n\ 52 jgtr 1b\n\ 53 movl (sp)+,r0\n\ 54 cmpc3 r0,(r1),(r3)\n\ 55 3:\n" }, 56 57 { "3,_bcmp\n", 58 " movl (sp)+,r1\n\ 59 movl (sp)+,r3\n\ 60 movl (sp)+,r5\n\ 61 cmpc3 r5,(r1),(r3)\n" }, 62 63 { "2,_blkclr\n", 64 " movl (sp)+,r3\n\ 65 jbr 2f\n\ 66 1:\n\ 67 subl2 r0,(sp)\n\ 68 movc5 $0,(r3),$0,r0,(r3)\n\ 69 2:\n\ 70 movzwl $65535,r0\n\ 71 cmpl (sp),r0\n\ 72 jgtr 1b\n\ 73 movl (sp)+,r0\n\ 74 movc5 $0,(r3),$0,r0,(r3)\n" }, 75 76 { "2,_bzero\n", 77 " movl (sp)+,r3\n\ 78 movl (sp)+,r5\n\ 79 movc5 $0,(r3),$0,r5,(r3)\n" }, 80 81 { "3,_llocc\n", 82 " movl (sp)+,r4\n\ 83 movl (sp)+,r5\n\ 84 movl (sp)+,r1\n\ 85 1:\n\ 86 movzwl $65535,r0\n\ 87 cmpl r5,r0\n\ 88 jleq 1f\n\ 89 subl2 r0,r5\n\ 90 locc r4,r0,(r1)\n\ 91 jeql 1b\n\ 92 addl2 r5,r0\n\ 93 jbr 2f\n\ 94 1:\n\ 95 locc r4,r5,(r1)\n\ 96 2:\n" }, 97 98 { "3,_locc\n", 99 " movl (sp)+,r3\n\ 100 movl (sp)+,r4\n\ 101 movl (sp)+,r5\n\ 102 locc r3,r4,(r5)\n" }, 103 104 { "4,_scanc\n", 105 " movl (sp)+,r2\n\ 106 movl (sp)+,r3\n\ 107 movl (sp)+,r4\n\ 108 movl (sp)+,r5\n\ 109 scanc r2,(r3),(r4),r5\n" }, 110 111 { "3,_skpc\n", 112 " movl (sp)+,r3\n\ 113 movl (sp)+,r4\n\ 114 movl (sp)+,r5\n\ 115 skpc r3,r4,(r5)\n" }, 116 117 { "2,_insque\n", 118 " movl (sp)+,r4\n\ 119 movl (sp)+,r5\n\ 120 insque (r4),(r5)\n" }, 121 122 { "1,_remque\n", 123 " movl (sp)+,r5\n\ 124 remque (r5),r0\n" }, 125 #endif vax 126 127 #ifdef mc68000 128 /* someday... */ 129 #endif mc68000 130 131 { "", "" } 132 }; 133