|
|
1.1 ! root 1: /*- ! 2: * Copyright (c) 1984, 1986 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms, with or without ! 6: * modification, are permitted provided that the following conditions ! 7: * are met: ! 8: * 1. Redistributions of source code must retain the above copyright ! 9: * notice, this list of conditions and the following disclaimer. ! 10: * 2. Redistributions in binary form must reproduce the above copyright ! 11: * notice, this list of conditions and the following disclaimer in the ! 12: * documentation and/or other materials provided with the distribution. ! 13: * 3. All advertising materials mentioning features or use of this software ! 14: * must display the following acknowledgement: ! 15: * This product includes software developed by the University of ! 16: * California, Berkeley and its contributors. ! 17: * 4. Neither the name of the University nor the names of its contributors ! 18: * may be used to endorse or promote products derived from this software ! 19: * without specific prior written permission. ! 20: * ! 21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 31: * SUCH DAMAGE. ! 32: */ ! 33: ! 34: #ifndef lint ! 35: static char sccsid[] = "@(#)machpats.c 7.4 (Berkeley) 5/8/91"; ! 36: #endif /* not lint */ ! 37: ! 38: #include "inline.h" ! 39: ! 40: /* ! 41: * Pattern table for special VAX instructions. ! 42: */ ! 43: struct pats machine_ptab[] = { ! 44: ! 45: #ifdef vax ! 46: { 3, "_blkcpy\n", ! 47: " movl (sp)+,r1\n\ ! 48: movl (sp)+,r3\n\ ! 49: jbr 2f\n\ ! 50: 1:\n\ ! 51: subl2 r0,(sp)\n\ ! 52: movc3 r0,(r1),(r3)\n\ ! 53: 2:\n\ ! 54: movzwl $65535,r0\n\ ! 55: cmpl (sp),r0\n\ ! 56: jgtr 1b\n\ ! 57: movl (sp)+,r0\n\ ! 58: movc3 r0,(r1),(r3)\n" }, ! 59: ! 60: { 3, "_bcopy\n", ! 61: " movl (sp)+,r1\n\ ! 62: movl (sp)+,r3\n\ ! 63: movl (sp)+,r5\n\ ! 64: movc3 r5,(r1),(r3)\n" }, ! 65: ! 66: { 3, "_ovbcopy\n", ! 67: " movl (sp)+,r3\n\ ! 68: movl (sp)+,r4\n\ ! 69: movl (sp)+,r5\n\ ! 70: movc3 r5,(r3),(r4)\n" }, ! 71: ! 72: { 2, "_blkclr\n", ! 73: " movl (sp)+,r3\n\ ! 74: jbr 2f\n\ ! 75: 1:\n\ ! 76: subl2 r0,(sp)\n\ ! 77: movc5 $0,(r3),$0,r0,(r3)\n\ ! 78: 2:\n\ ! 79: movzwl $65535,r0\n\ ! 80: cmpl (sp),r0\n\ ! 81: jgtr 1b\n\ ! 82: movl (sp)+,r0\n\ ! 83: movc5 $0,(r3),$0,r0,(r3)\n" }, ! 84: ! 85: { 2, "_bzero\n", ! 86: " movl (sp)+,r3\n\ ! 87: movl (sp)+,r5\n\ ! 88: movc5 $0,(r3),$0,r5,(r3)\n" }, ! 89: ! 90: { 2, "_insque\n", ! 91: " movl (sp)+,r4\n\ ! 92: movl (sp)+,r5\n\ ! 93: insque (r4),(r5)\n" }, ! 94: ! 95: { 1, "_remque\n", ! 96: " movl (sp)+,r5\n\ ! 97: remque (r5),r0\n" }, ! 98: #endif vax ! 99: ! 100: #ifdef mc68000 ! 101: /* someday... */ ! 102: #endif mc68000 ! 103: ! 104: { 0, "", "" } ! 105: }; ! 106: ! 107: #ifdef vax ! 108: ! 109: struct pats vax_ptab[] = { ! 110: ! 111: { 3, "_blkcmp\n", ! 112: " movl (sp)+,r1\n\ ! 113: movl (sp)+,r3\n\ ! 114: jbr 2f\n\ ! 115: 1:\n\ ! 116: subl2 r0,(sp)\n\ ! 117: cmpc3 r0,(r1),(r3)\n\ ! 118: bneq 3f\n\ ! 119: 2:\n\ ! 120: movzwl $65535,r0\n\ ! 121: cmpl (sp),r0\n\ ! 122: jgtr 1b\n\ ! 123: movl (sp)+,r0\n\ ! 124: cmpc3 r0,(r1),(r3)\n\ ! 125: 3:\n" }, ! 126: ! 127: { 3, "_bcmp\n", ! 128: " movl (sp)+,r1\n\ ! 129: movl (sp)+,r3\n\ ! 130: movl (sp)+,r5\n\ ! 131: cmpc3 r5,(r1),(r3)\n" }, ! 132: ! 133: { 3, "_llocc\n", ! 134: " movl (sp)+,r4\n\ ! 135: movl (sp)+,r5\n\ ! 136: movl (sp)+,r1\n\ ! 137: 1:\n\ ! 138: movzwl $65535,r0\n\ ! 139: cmpl r5,r0\n\ ! 140: jleq 1f\n\ ! 141: subl2 r0,r5\n\ ! 142: locc r4,r0,(r1)\n\ ! 143: jeql 1b\n\ ! 144: addl2 r5,r0\n\ ! 145: jbr 2f\n\ ! 146: 1:\n\ ! 147: locc r4,r5,(r1)\n\ ! 148: 2:\n" }, ! 149: ! 150: { 3, "_locc\n", ! 151: " movl (sp)+,r3\n\ ! 152: movl (sp)+,r4\n\ ! 153: movl (sp)+,r5\n\ ! 154: locc r3,r4,(r5)\n" }, ! 155: ! 156: { 4, "_scanc\n", ! 157: " movl (sp)+,r2\n\ ! 158: movl (sp)+,r3\n\ ! 159: movl (sp)+,r4\n\ ! 160: movl (sp)+,r5\n\ ! 161: scanc r2,(r3),(r4),r5\n" }, ! 162: ! 163: { 3, "_skpc\n", ! 164: " movl (sp)+,r3\n\ ! 165: movl (sp)+,r4\n\ ! 166: movl (sp)+,r5\n\ ! 167: skpc r3,r4,(r5)\n" }, ! 168: ! 169: { 0, "", "" } ! 170: }; ! 171: ! 172: struct pats vaxsubset_ptab[] = { ! 173: ! 174: { 3, "_blkcmp\n", ! 175: " movl (sp)+,r1\n\ ! 176: movl (sp)+,r3\n\ ! 177: movl (sp)+,r0\n\ ! 178: 2:\n\ ! 179: cmpb (r1)+,(r3)+\n\ ! 180: jneq 3f\n\ ! 181: sobgtr r0,2b\n\ ! 182: 3:\n" }, ! 183: ! 184: { 3, "_bcmp\n", ! 185: " movl (sp)+,r1\n\ ! 186: movl (sp)+,r3\n\ ! 187: movl (sp)+,r0\n\ ! 188: tstl r0\n\ ! 189: jeql 1f\n\ ! 190: 2:\n\ ! 191: cmpb (r1)+,(r3)+\n\ ! 192: jneq 1f\n\ ! 193: sobgtr r0,2b\n\ ! 194: 1:\n" }, ! 195: ! 196: { 3, "_llocc\n", ! 197: " movl (sp)+,r4\n\ ! 198: movl (sp)+,r0\n\ ! 199: tstl r0\n\ ! 200: jeql 1f\n\ ! 201: movl (sp)+,r1\n\ ! 202: 2:\n\ ! 203: cmpb r4,(r1)+\n\ ! 204: jeql 1f\n\ ! 205: sobgtr r0,2b\n\ ! 206: 1:\n" }, ! 207: ! 208: { 3, "_locc\n", ! 209: " movl (sp)+,r3\n\ ! 210: movl (sp)+,r0\n\ ! 211: tstl r0\n\ ! 212: jeql 1f\n\ ! 213: movl (sp)+,r5\n\ ! 214: 2:\n\ ! 215: cmpb r3,(r5)+\n\ ! 216: jeql 1f\n\ ! 217: sobgtr r0,2b\n\ ! 218: 1:\n" }, ! 219: ! 220: { 3, "_skpc\n", ! 221: " movl (sp)+,r3\n\ ! 222: movl (sp)+,r0\n\ ! 223: tstl r0\n\ ! 224: jeql 1f\n\ ! 225: movl (sp)+,r5\n\ ! 226: 2:\n\ ! 227: cmpb r3,(r5)+\n\ ! 228: jneq 1f\n\ ! 229: sobgtr r0,2b\n\ ! 230: 1:\n" }, ! 231: ! 232: { 0, "", "" } ! 233: }; ! 234: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.