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.1 (Berkeley) 6/5/86";
   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)+,r5\n\
 161: 	movl	r5,r0\n\
 162: 2:\n\
 163: 	cmpb	(r1)+,(r3)+\n\
 164: 	jneq	1f\n\
 165: 	sobgtr	r0,2b\n\
 166: 1:\n" },
 167: 
 168:     { 3, "_llocc\n",
 169: "	movl	(sp)+,r4\n\
 170: 	movl	(sp)+,r5\n\
 171: 	movl	(sp)+,r1\n\
 172: 	movl	r5,r0\n\
 173: 2:\n\
 174: 	cmpb	r4,(r1)+\n\
 175: 	jeql	1f\n\
 176: 	sobgtr	r0,2b\n\
 177: 1:\n" },
 178: 
 179:     { 3, "_locc\n",
 180: "	movl	(sp)+,r3\n\
 181: 	movl	(sp)+,r4\n\
 182: 	movl	(sp)+,r5\n\
 183: 	movl	r4,r0\n\
 184: 2:\n\
 185: 	cmpb	r3,(r5)+\n\
 186: 	jeql	1f\n\
 187: 	sobgtr	r0,2b\n\
 188: 1:\n" },
 189: 
 190:     { 3, "_skpc\n",
 191: "	movl	(sp)+,r3\n\
 192: 	movl	(sp)+,r4\n\
 193: 	movl	(sp)+,r5\n\
 194: 	movl	r4,r0\n\
 195: 2:\n\
 196: 	cmpb	r3,(r5)+\n\
 197: 	jneq	1f\n\
 198: 	sobgtr	r0,2b\n\
 199: 1:\n" },
 200: 
 201:     { 0, "", "" }
 202: };
 203: #endif

Defined variables

machine_ptab defined in line 16; used 2 times
sccsid defined in line 8; never used
vax_ptab defined in line 82; used 1 times
vaxsubset_ptab defined in line 145; used 1 times
Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 731
Valid CSS Valid XHTML 1.0 Strict