|
|
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.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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.