1: /* Copyright (c) 1984 Regents of the University of California */ 2: 3: #ifndef lint 4: static char sccsid[] = "@(#)machpats.c 1.3 (Berkeley) 8/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: 126: { "3,_extv\n", 127: " movl (sp)+,r2*\n\ 128: movl (sp)+,r3$\n\ 129: movl (sp)+,r4$\n\ 130: extv r3,r4,(r2),r0\n"}, 131: 132: { "3,_extzv\n", 133: " movl (sp)+,r2*\n\ 134: movl (sp)+,r3$\n\ 135: movl (sp)+,r4$\n\ 136: extzv r3,r4,(r2),r0\n"}, 137: 138: { "4,_insv\n", 139: " movl (sp)+,r2*\n\ 140: movl (sp)+,r3$\n\ 141: movl (sp)+,r4$\n\ 142: movl (sp)+,r5$\n\ 143: insv r5,r3,r4,(r2)\n"}, 144: 145: #endif vax 146: 147: #ifdef mc68000 148: /* someday... */ 149: #endif mc68000 150: 151: { "", "" } 152: };