|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1984, 1986 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: */ ! 6: ! 7: #ifndef lint ! 8: static char sccsid[] = "@(#)machpats.c 7.3 (Berkeley) 11/30/89"; ! 9: #endif not lint ! 10: ! 11: #include "inline.h" ! 12: ! 13: /* ! 14: * Pattern table for special VAX instructions. ! 15: */ ! 16: struct pats machine_ptab[] = { ! 17: ! 18: #ifdef vax ! 19: { 3, "_blkcpy\n", ! 20: " movl (sp)+,r1\n\ ! 21: movl (sp)+,r3\n\ ! 22: jbr 2f\n\ ! 23: 1:\n\ ! 24: subl2 r0,(sp)\n\ ! 25: movc3 r0,(r1),(r3)\n\ ! 26: 2:\n\ ! 27: movzwl $65535,r0\n\ ! 28: cmpl (sp),r0\n\ ! 29: jgtr 1b\n\ ! 30: movl (sp)+,r0\n\ ! 31: movc3 r0,(r1),(r3)\n" }, ! 32: ! 33: { 3, "_bcopy\n", ! 34: " movl (sp)+,r1\n\ ! 35: movl (sp)+,r3\n\ ! 36: movl (sp)+,r5\n\ ! 37: movc3 r5,(r1),(r3)\n" }, ! 38: ! 39: { 3, "_ovbcopy\n", ! 40: " movl (sp)+,r3\n\ ! 41: movl (sp)+,r4\n\ ! 42: movl (sp)+,r5\n\ ! 43: movc3 r5,(r3),(r4)\n" }, ! 44: ! 45: { 2, "_blkclr\n", ! 46: " movl (sp)+,r3\n\ ! 47: jbr 2f\n\ ! 48: 1:\n\ ! 49: subl2 r0,(sp)\n\ ! 50: movc5 $0,(r3),$0,r0,(r3)\n\ ! 51: 2:\n\ ! 52: movzwl $65535,r0\n\ ! 53: cmpl (sp),r0\n\ ! 54: jgtr 1b\n\ ! 55: movl (sp)+,r0\n\ ! 56: movc5 $0,(r3),$0,r0,(r3)\n" }, ! 57: ! 58: { 2, "_bzero\n", ! 59: " movl (sp)+,r3\n\ ! 60: movl (sp)+,r5\n\ ! 61: movc5 $0,(r3),$0,r5,(r3)\n" }, ! 62: ! 63: { 2, "_insque\n", ! 64: " movl (sp)+,r4\n\ ! 65: movl (sp)+,r5\n\ ! 66: insque (r4),(r5)\n" }, ! 67: ! 68: { 1, "_remque\n", ! 69: " movl (sp)+,r5\n\ ! 70: remque (r5),r0\n" }, ! 71: #endif vax ! 72: ! 73: #ifdef mc68000 ! 74: /* someday... */ ! 75: #endif mc68000 ! 76: ! 77: { 0, "", "" } ! 78: }; ! 79: ! 80: #ifdef vax ! 81: ! 82: struct pats vax_ptab[] = { ! 83: ! 84: { 3, "_blkcmp\n", ! 85: " movl (sp)+,r1\n\ ! 86: movl (sp)+,r3\n\ ! 87: jbr 2f\n\ ! 88: 1:\n\ ! 89: subl2 r0,(sp)\n\ ! 90: cmpc3 r0,(r1),(r3)\n\ ! 91: bneq 3f\n\ ! 92: 2:\n\ ! 93: movzwl $65535,r0\n\ ! 94: cmpl (sp),r0\n\ ! 95: jgtr 1b\n\ ! 96: movl (sp)+,r0\n\ ! 97: cmpc3 r0,(r1),(r3)\n\ ! 98: 3:\n" }, ! 99: ! 100: { 3, "_bcmp\n", ! 101: " movl (sp)+,r1\n\ ! 102: movl (sp)+,r3\n\ ! 103: movl (sp)+,r5\n\ ! 104: cmpc3 r5,(r1),(r3)\n" }, ! 105: ! 106: { 3, "_llocc\n", ! 107: " movl (sp)+,r4\n\ ! 108: movl (sp)+,r5\n\ ! 109: movl (sp)+,r1\n\ ! 110: 1:\n\ ! 111: movzwl $65535,r0\n\ ! 112: cmpl r5,r0\n\ ! 113: jleq 1f\n\ ! 114: subl2 r0,r5\n\ ! 115: locc r4,r0,(r1)\n\ ! 116: jeql 1b\n\ ! 117: addl2 r5,r0\n\ ! 118: jbr 2f\n\ ! 119: 1:\n\ ! 120: locc r4,r5,(r1)\n\ ! 121: 2:\n" }, ! 122: ! 123: { 3, "_locc\n", ! 124: " movl (sp)+,r3\n\ ! 125: movl (sp)+,r4\n\ ! 126: movl (sp)+,r5\n\ ! 127: locc r3,r4,(r5)\n" }, ! 128: ! 129: { 4, "_scanc\n", ! 130: " movl (sp)+,r2\n\ ! 131: movl (sp)+,r3\n\ ! 132: movl (sp)+,r4\n\ ! 133: movl (sp)+,r5\n\ ! 134: scanc r2,(r3),(r4),r5\n" }, ! 135: ! 136: { 3, "_skpc\n", ! 137: " movl (sp)+,r3\n\ ! 138: movl (sp)+,r4\n\ ! 139: movl (sp)+,r5\n\ ! 140: skpc r3,r4,(r5)\n" }, ! 141: ! 142: { 0, "", "" } ! 143: }; ! 144: ! 145: struct pats vaxsubset_ptab[] = { ! 146: ! 147: { 3, "_blkcmp\n", ! 148: " movl (sp)+,r1\n\ ! 149: movl (sp)+,r3\n\ ! 150: movl (sp)+,r0\n\ ! 151: 2:\n\ ! 152: cmpb (r1)+,(r3)+\n\ ! 153: jneq 3f\n\ ! 154: sobgtr r0,2b\n\ ! 155: 3:\n" }, ! 156: ! 157: { 3, "_bcmp\n", ! 158: " movl (sp)+,r1\n\ ! 159: movl (sp)+,r3\n\ ! 160: movl (sp)+,r0\n\ ! 161: tstl r0\n\ ! 162: jeql 1f\n\ ! 163: 2:\n\ ! 164: cmpb (r1)+,(r3)+\n\ ! 165: jneq 1f\n\ ! 166: sobgtr r0,2b\n\ ! 167: 1:\n" }, ! 168: ! 169: { 3, "_llocc\n", ! 170: " movl (sp)+,r4\n\ ! 171: movl (sp)+,r0\n\ ! 172: tstl r0\n\ ! 173: jeql 1f\n\ ! 174: movl (sp)+,r1\n\ ! 175: 2:\n\ ! 176: cmpb r4,(r1)+\n\ ! 177: jeql 1f\n\ ! 178: sobgtr r0,2b\n\ ! 179: 1:\n" }, ! 180: ! 181: { 3, "_locc\n", ! 182: " movl (sp)+,r3\n\ ! 183: movl (sp)+,r0\n\ ! 184: tstl r0\n\ ! 185: jeql 1f\n\ ! 186: movl (sp)+,r5\n\ ! 187: 2:\n\ ! 188: cmpb r3,(r5)+\n\ ! 189: jeql 1f\n\ ! 190: sobgtr r0,2b\n\ ! 191: 1:\n" }, ! 192: ! 193: { 3, "_skpc\n", ! 194: " movl (sp)+,r3\n\ ! 195: movl (sp)+,r0\n\ ! 196: tstl r0\n\ ! 197: jeql 1f\n\ ! 198: movl (sp)+,r5\n\ ! 199: 2:\n\ ! 200: cmpb r3,(r5)+\n\ ! 201: jneq 1f\n\ ! 202: sobgtr r0,2b\n\ ! 203: 1:\n" }, ! 204: ! 205: { 0, "", "" } ! 206: }; ! 207: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.