added missing "skipchar" in reading ranges which was accidentally
[unix-history] / usr / src / old / pcc / ccom.vax / table.c
CommitLineData
b1ca30fc
ML
1static char *sccsid ="@(#)table.c 1.1 (Berkeley) %G%";
2# include "mfile2"
3
4# define WPTR TPTRTO|TINT|TLONG|TFLOAT|TDOUBLE|TPOINT|TUNSIGNED|TULONG
5# define AWD SNAME|SOREG|SCON|STARNM|STARREG
6/* tbl */
7# define ANYSIGNED TPOINT|TINT|TLONG|TSHORT|TCHAR
8# define ANYUSIGNED TUNSIGNED|TULONG|TUSHORT|TUCHAR
9# define ANYFIXED ANYSIGNED|ANYUSIGNED
10# define TWORD TINT|TUNSIGNED|TPOINT|TLONG|TULONG
11# define NIAWD SNAME|SCON|STARNM
12/* tbl */
13
14struct optab table[] = {
15
16PCONV, INAREG|INTAREG,
17 SAREG|AWD, TCHAR|TSHORT,
18 SANY, TPOINT,
19 NAREG|NASL, RESC1,
20 " cvtZLl AL,A1\n",
21
22PCONV, INAREG|INTAREG,
23 SAREG|AWD, TUCHAR|TUSHORT,
24 SANY, TPOINT,
25 NAREG|NASL, RESC1,
26 " movzZLl AL,A1\n",
27
28 /* the following entry is to fix a problem with
29 the manner that the first pass handles the
30 type of a shift expression */
31PCONV, INAREG|INTAREG,
32 SAREG|AWD, TINT|TUNSIGNED,
33 SANY, TPOINT,
34 NAREG|NASL, RLEFT,
35 "",
36
37SCONV, INTAREG|FORCC,
38 SAREG, TDOUBLE,
39 SANY, TDOUBLE,
40 0, RLEFT,
41 "",
42
43#ifdef FORT
44SCONV, INTAREG|FORCC,
45 SAREG|AWD, ANYSIGNED|TUNSIGNED|TULONG|TFLOAT,
46 SANY, TFLOAT,
47 NAREG|NASL, RESC1|RESCC,
48 " cvtZLf AL,TA1\n",
49
50SCONV, INTAREG|FORCC,
51 SAREG|AWD, TUCHAR|TUSHORT,
52 SANY, TFLOAT,
53 NAREG|NASL, RESC1|RESCC,
54 " movzZLl AL,A1\n cvtlf A1,TA1\n",
55#endif
56
57SCONV, INTAREG|FORCC,
58 SAREG|AWD, ANYSIGNED|TUNSIGNED|TULONG|TFLOAT,
59 SANY, TFLOAT|TDOUBLE,
60 NAREG|NASL, RESC1|RESCC,
61 " cvtZLd AL,A1\n",
62
63SCONV, INTAREG|FORCC,
64 SAREG|AWD, TUCHAR|TUSHORT,
65 SANY, TFLOAT|TDOUBLE,
66 NAREG|NASL, RESC1|RESCC,
67 " movzZLl AL,A1\n cvtld A1,A1\n",
68
69SCONV, INTAREG|FORCC,
70 SAREG|AWD, TFLOAT|TDOUBLE,
71 SANY, ANYFIXED,
72 NAREG|NASL, RESC1|RESCC,
73 " cvtZLZF AL,A1\n",
74
75SCONV, INTAREG|FORCC,
76 SAREG|SNAME|SCON|STARNM, TANY,
77 SANY, ANYUSIGNED,
78 NAREG|NASL, RESC1|RESCC,
79 " movzZRl AL,A1\n",
80
81SCONV, INTAREG|FORCC,
82 SSOREG, TANY,
83 SANY, ANYUSIGNED,
84 NAREG|NASL, RESC1|RESCC,
85 " movzZRl AL,A1\n",
86
87SCONV, INTAREG|FORCC,
88 SAREG|SNAME|SCON|STARNM, TANY,
89 SANY, TANY,
90 NAREG|NASL, RESC1|RESCC,
91 " cvtZRl AL,A1\n",
92
93SCONV, INTAREG|FORCC,
94 SSOREG, TANY,
95 SANY, TANY,
96 NAREG|NASL, RESC1|RESCC,
97 " cvtZRl AL,A1\n",
98
99
100INIT, FOREFF,
101 SCON, TANY,
102 SANY, TWORD,
103 0, RNOP,
104 " .long CL\n",
105
106INIT, FOREFF,
107 SCON, TANY,
108 SANY, TSHORT|TUSHORT,
109 0, RNOP,
110 " .word CL\n",
111
112INIT, FOREFF,
113 SCON, TANY,
114 SANY, TCHAR|TUCHAR,
115 0, RNOP,
116 " .byte CL\n",
117
118 /* for the use of fortran only */
119
120GOTO, FOREFF,
121 SCON, TANY,
122 SANY, TANY,
123 0, RNOP,
124 " jbr CL\n",
125
126GOTO, FOREFF,
127 AWD, TANY,
128 SANY, TANY,
129 0, RNOP,
130 " jmp *AL\n",
131
132GOTO, FOREFF,
133 SAREG, TANY,
134 SANY, TANY,
135 0, RNOP,
136 " jmp (AL)\n",
137
138STARG, FORARG,
139 SCON|SOREG, TANY,
140 SANY, TANY,
141 NTEMP+2*NAREG, RESC3,
142 "ZS",
143
144STASG, FORARG,
145 SNAME|SOREG, TANY,
146 SCON|SAREG, TANY,
147 0, RNULL,
148 " subl2 ZT,sp\nZS",
149
150STASG, FOREFF,
151 SNAME|SOREG, TANY,
152 SCON|SAREG, TANY,
153 0, RNOP,
154 "ZS",
155
156STASG, INAREG,
157 SNAME|SOREG, TANY,
158 SCON, TANY,
159 NAREG, RESC1,
160 "ZS movl AR,A1\n",
161
162STASG, INAREG,
163 SNAME|SOREG, TANY,
164 SAREG, TANY,
165 0, RRIGHT,
166 " pushl AR\nZS movl (sp)+,AR\n",
167
168FLD, INAREG|INTAREG,
169 SANY, TANY,
170 SFLD, ANYSIGNED,
171 NAREG|NASR, RESC1,
172 " extv $H,$S,AR,A1\n",
173
174FLD, INAREG|INTAREG,
175 SANY, TANY,
176 SFLD, ANYUSIGNED,
177 NAREG|NASR, RESC1,
178 " extzv $H,$S,AR,A1\n",
179
180FLD, FORARG,
181 SANY, TANY,
182 SFLD, ANYSIGNED,
183 0, RNULL,
184 " extv $H,$S,AR,-(sp)\n",
185
186FLD, FORARG,
187 SANY, TANY,
188 SFLD, ANYUSIGNED,
189 0, RNULL,
190 " extzv $H,$S,AR,-(sp)\n",
191
192OPLOG, FORCC,
193 SAREG|AWD, TWORD,
194 SAREG|AWD, TWORD,
195 0, RESCC,
196 " cmpl AL,AR\nZP",
197
198OPLOG, FORCC,
199 SAREG|AWD, TSHORT|TUSHORT,
200 SAREG|AWD, TSHORT|TUSHORT,
201 0, RESCC,
202 " cmpw AL,AR\nZP",
203
204OPLOG, FORCC,
205 SAREG|AWD, TCHAR|TUCHAR,
206 SAREG|AWD, TCHAR|TUCHAR,
207 0, RESCC,
208 " cmpb AL,AR\nZP",
209
210OPLOG, FORCC,
211 SAREG|AWD, TSHORT|TUSHORT,
212 SSCON, TANY,
213 0, RESCC,
214 " cmpw AL,AR\nZP",
215
216OPLOG, FORCC,
217 SAREG|AWD, TCHAR|TUCHAR,
218 SCCON, TANY,
219 0, RESCC,
220 " cmpb AL,AR\nZP",
221
222OPLOG, FORCC,
223 SAREG|AWD, TDOUBLE,
224 SAREG|AWD, TDOUBLE,
225 0, RESCC,
226 " cmpd AL,AR\nZP",
227
228OPLOG, FORCC,
229 SAREG|AWD, TDOUBLE,
230 SAREG|AWD, TFLOAT,
231 NAREG|NASR, RESCC,
232 " cvtfd AR,A1\n cmpd AL,A1\nZP",
233
234OPLOG, FORCC,
235 SAREG|AWD, TFLOAT,
236 SAREG|AWD, TDOUBLE,
237 NAREG|NASL, RESCC,
238 " cvtfd AL,A1\n cmpd A1,AR\nZP",
239
240OPLOG, FORCC,
241 SAREG|AWD, TFLOAT,
242 SAREG|AWD, TFLOAT,
243 0, RESCC,
244 " cmpf AL,AR\nZP",
245
246CCODES, INAREG|INTAREG,
247 SANY, TANY,
248 SANY, TANY,
249 NAREG, RESC1,
250 " movl $1,A1\nZN",
251
252UNARY CALL, INTAREG,
253 SCON, TANY,
254 SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
255 NAREG|NASL, RESC1, /* should be register 0 */
256 " calls ZC,CL\n",
257
258UNARY CALL, INTAREG,
259 SAREG, TANY,
260 SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
261 NAREG|NASL, RESC1, /* should be 0 */
262 " calls ZC,(AL)\n",
263
264UNARY CALL, INAREG|INTAREG,
265 SNAME, TANY,
266 SANY, TANY,
267 NAREG|NASL, RESC1, /* really reg 0 */
268 " calls ZC,*AL\n",
269
270UNARY CALL, INAREG|INTAREG,
271 SSOREG, TANY,
272 SANY, TANY,
273 NAREG|NASL, RESC1, /* really reg 0 */
274 " calls ZC,*AL\n",
275
276ASG RS, INAREG|FOREFF|FORCC,
277 SAREG, TWORD,
278 SCON, TINT,
279 0, RLEFT|RESCC,
280 " extzv AR,ZU,AL,AL\n",
281
282ASG RS, INAREG|FOREFF|FORCC,
283 SAREG, TWORD,
284 SAREG, ANYFIXED,
285 NAREG, RLEFT|RESCC,
286 " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n",
287
288ASG RS, INAREG|FOREFF|FORCC,
289 SAREG, TWORD,
290 SAREG|AWD, TWORD,
291 NAREG, RLEFT|RESCC,
292 " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n",
293
294RS, INAREG|INTAREG|FORCC,
295 SAREG, TWORD,
296 SCON, TINT,
297 NAREG|NASL, RESC1|RESCC,
298 " extzv AR,ZU,AL,A1\n",
299
300ASG LS, INAREG|FOREFF|FORCC,
301 SAREG|AWD, TWORD,
302 SAREG|NIAWD, ANYSIGNED|ANYUSIGNED,
303 0, RLEFT|RESCC,
304 " ashl AR,AL,AL\n",
305
306ASG LS, INAREG|FOREFF|FORCC,
307 SAREG|AWD, TWORD,
308 SSOREG, ANYSIGNED|ANYUSIGNED,
309 0, RLEFT|RESCC,
310 " ashl AR,AL,AL\n",
311
312ASG LS, INAREG|FOREFF|FORCC,
313 SAREG|AWD, TWORD,
314 SOREG, ANYSIGNED|ANYUSIGNED,
315 NAREG, RLEFT|RESCC,
316 " ZB AR,A1\n ashl A1,AL,AL\n",
317
318LS, INAREG|INTAREG|FORCC,
319 SAREG|AWD, TWORD,
320 SAREG|NIAWD, ANYSIGNED|ANYUSIGNED,
321 NAREG|NASL|NASR, RESC1|RESCC,
322 " ashl AR,AL,A1\n",
323
324LS, INAREG|INTAREG|FORCC,
325 SAREG|AWD, TWORD,
326 SSOREG, ANYSIGNED|ANYUSIGNED,
327 NAREG|NASL|NASR, RESC1|RESCC,
328 " ashl AR,AL,A1\n",
329
330LS, INAREG|INTAREG|FORCC,
331 SAREG|AWD, TWORD,
332 SOREG, ANYSIGNED|ANYUSIGNED,
333 NAREG|NASR, RESC1|RESCC,
334 " ZB AR,A1\n ashl A1,AL,A1\n",
335
336INCR, FOREFF,
337 AWD, TANY,
338 SCON, TANY,
339 0, RLEFT,
340 " ZE\n",
341
342DECR, FOREFF,
343 AWD, TANY,
344 SCON, TANY,
345 0, RLEFT,
346 " ZE\n",
347
348INCR, FOREFF,
349 SAREG, TWORD,
350 SCON, TANY,
351 0, RLEFT,
352 " ZE\n",
353
354DECR, FOREFF,
355 SAREG, TWORD,
356 SCON, TANY,
357 0, RLEFT,
358 " ZE\n",
359
360/* jwf INCR and DECR for SAREG TCHAR|TSHORT matched by ASG PLUS etc */
361
362INCR, INAREG|INTAREG,
363 AWD, TANY,
364 SCON, TANY,
365 NAREG, RESC1,
366 " ZD\n",
367
368DECR, INAREG|INTAREG,
369 AWD, TANY,
370 SCON, TANY,
371 NAREG, RESC1,
372 " ZD\n",
373
374INCR, INAREG|INTAREG,
375 SAREG, TWORD,
376 SCON, TANY,
377 NAREG, RESC1,
378 " ZD\n",
379
380DECR, INAREG|INTAREG,
381 SAREG, TWORD,
382 SCON, TANY,
383 NAREG, RESC1,
384 " ZD\n",
385
386ASSIGN, INAREG|FOREFF|FORCC,
387 SAREG|AWD, TANY,
388 SAREG|AWD, TANY,
389 0, RLEFT|RRIGHT|RESCC,
390 " ZA\n",
391
392ASSIGN, INAREG|FOREFF,
393 SFLD, TANY,
394 SAREG|AWD, TWORD,
395 0, RRIGHT,
396 " insv AR,$H,$S,AL\n",
397
398ASSIGN, INAREG|FOREFF|FORCC,
399 SAREG|AWD, TWORD,
400 SFLD, ANYSIGNED,
401 0, RLEFT|RESCC,
402 " extv $H,$S,AR,AL\n",
403
404ASSIGN, INAREG|FOREFF|FORCC,
405 SAREG|AWD, TWORD,
406 SFLD, ANYUSIGNED,
407 0, RLEFT|RESCC,
408 " extzv $H,$S,AR,AL\n",
409
410/* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
411UNARY MUL, FOREFF,
412 SCC, TANY,
413 SCC, TANY,
414 0, RNULL,
415 " HELP HELP HELP\n",
416
417REG, INTEMP,
418 SANY, TANY,
419 SAREG, TDOUBLE,
420 2*NTEMP, RESC1,
421 " movd AR,A1\n",
422
423REG, INTEMP,
424 SANY, TANY,
425 SAREG, TANY,
426 NTEMP, RESC1,
427 " movZF AR,A1\n",
428
429#ifdef FORT
430 REG, FORARG,
431 SANY, TANY,
432 SAREG, TFLOAT,
433 0, RNULL,
434 " cvtfd AR,-(sp)\n",
435
436REG, FORARG,
437 SANY, TANY,
438 SAREG, TDOUBLE,
439 0, RNULL,
440 " movZR AR,-(sp)\n",
441#endif
442
443OPLEAF, FOREFF,
444 SANY, TANY,
445 SAREG|AWD, TANY,
446 0, RLEFT,
447 "",
448
449OPLTYPE, INAREG|INTAREG,
450 SANY, TANY,
451 SANY, TFLOAT|TDOUBLE,
452 2*NAREG|NASR, RESC1,
453 " ZA\n",
454
455OPLTYPE, INAREG|INTAREG,
456 SANY, TANY,
457 SANY, TANY,
458 NAREG|NASR, RESC1,
459 " ZA\n",
460
461OPLTYPE, FORCC,
462 SANY, TANY,
463 SANY, TANY,
464 0, RESCC,
465 " tstZR AR\n",
466
467OPLTYPE, FORARG,
468 SANY, TANY,
469 SANY, TWORD,
470 0, RNULL,
471 " pushl AR\n",
472
473OPLTYPE, FORARG,
474 SANY, TANY,
475 SANY, TCHAR|TSHORT,
476 0, RNULL,
477 " cvtZRl AR,-(sp)\n",
478
479OPLTYPE, FORARG,
480 SANY, TANY,
481 SANY, TUCHAR|TUSHORT,
482 0, RNULL,
483 " movzZRl AR,-(sp)\n",
484
485OPLTYPE, FORARG,
486 SANY, TANY,
487 SANY, TDOUBLE,
488 0, RNULL,
489 " movd AR,-(sp)\n",
490
491OPLTYPE, FORARG,
492 SANY, TANY,
493 SANY, TFLOAT,
494 0, RNULL,
495 " cvtfd AR,-(sp)\n",
496
497UNARY MINUS, INTAREG|FORCC,
498 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE,
499 SANY, TANY,
500 NAREG|NASL, RESC1|RESCC,
501 " mnegZL AL,A1\n",
502
503COMPL, INTAREG|FORCC,
504 SAREG|AWD, TINT|TUNSIGNED,
505 SANY, TANY,
506 NAREG|NASL, RESC1|RESCC,
507 " mcomZL AL,A1\n",
508
509COMPL, INTAREG|FORCC,
510 SAREG|AWD, ANYSIGNED|ANYUSIGNED,
511 SANY, TANY,
512 NAREG|NASL, RESC1|RESCC,
513 " cvtZLl AL,A1\n mcoml A1,A1\n",
514
515AND, FORCC,
516 SAREG|AWD, TWORD,
517 SCON, TWORD,
518 0, RESCC,
519 " bitl ZZ,AL\n",
520
521AND, FORCC,
522 SAREG|AWD, TSHORT|TUSHORT,
523 SSCON, TWORD,
524 0, RESCC,
525 " bitw ZZ,AL\n",
526
527AND, FORCC,
528 SAREG|AWD, TCHAR|TUCHAR,
529 SCCON, TWORD,
530 0, RESCC,
531 " bitb ZZ,AL\n",
532
533ASG AND, INAREG|FOREFF|FORCC,
534 SAREG, TWORD,
535 SCON, TWORD,
536 0, RLEFT|RESCC,
537 " bicl2 AR,AL\n",
538
539ASG OPMUL, INAREG|FOREFF|FORCC,
540 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
541 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
542 0, RLEFT|RESCC,
543 " OL2 AR,AL\n",
544
545OPMUL, INAREG|INTAREG|FORCC,
546 STAREG, TINT|TUNSIGNED|TLONG|TULONG,
547 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
548 0, RLEFT|RESCC,
549 " OL2 AR,AL\n",
550
551OPMUL, INAREG|INTAREG|FORCC,
552 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
553 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
554 NAREG|NASL|NASR, RESC1|RESCC,
555 " OL3 AR,AL,A1\n",
556
557ASG MOD, INAREG|INTAREG|FOREFF|FORCC,
558 SAREG, TINT|TUNSIGNED|TLONG|TULONG,
559 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
560 NAREG, RLEFT|RESCC,
561 " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n",
562
563MOD, INAREG|INTAREG,
564 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
565 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
566 NAREG, RESC1,
567 " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n",
568
569ASG PLUS, INAREG|FOREFF|FORCC,
570 SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
571 SONE, TINT|TLONG,
572 0, RLEFT|RESCC,
573 " incZL AL\n",
574
575ASG PLUS, INAREG|FOREFF|FORCC,
576 AWD, ANYSIGNED|ANYUSIGNED,
577 SONE, TINT|TLONG,
578 0, RLEFT|RESCC,
579 " incZL AL\n",
580
581ASG PLUS, INAREG|FOREFF|FORCC,
582 SAREG, TSHORT|TCHAR,
583 SONE, TINT|TLONG,
584 0, RLEFT|RESCC,
585 " incZL AL\n cvtZLl AL,AL\n",
586
587ASG PLUS, INAREG|FOREFF|FORCC,
588 SAREG, TUSHORT|TUCHAR,
589 SONE, TINT|TLONG,
590 0, RLEFT|RESCC,
591 " incZL AL\n movzZLl AL,AL\n",
592
593ASG MINUS, INAREG|FOREFF|FORCC,
594 SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG,
595 SONE, TINT|TLONG,
596 0, RLEFT|RESCC,
597 " decZL AL\n",
598
599ASG MINUS, INAREG|FOREFF|FORCC,
600 AWD, ANYSIGNED|ANYUSIGNED,
601 SONE, TINT|TLONG,
602 0, RLEFT|RESCC,
603 " decZL AL\n",
604
605ASG MINUS, INAREG|FOREFF|FORCC,
606 SAREG, TSHORT|TCHAR,
607 SONE, TINT|TLONG,
608 0, RLEFT|RESCC,
609 " decZL AL\n cvtZLl AL,AL\n",
610
611ASG MINUS, INAREG|FOREFF|FORCC,
612 SAREG, TUSHORT|TUCHAR,
613 SONE, TINT|TLONG,
614 0, RLEFT|RESCC,
615 " decZL AL\n movzZLl AL,AL\n",
616
617PLUS, INAREG|INTAREG|FORCC,
618 STAREG, TWORD,
619 SONE, TWORD,
620 0, RLEFT|RESCC,
621 " incZL AL\n",
622
623PLUS, INAREG|INTAREG|FORCC,
624 STAREG, TSHORT|TCHAR,
625 SONE, TWORD,
626 0, RLEFT|RESCC,
627 " incZL AL\n cvtZLl AL,AL\n",
628
629PLUS, INAREG|INTAREG|FORCC,
630 STAREG, TUSHORT|TUCHAR,
631 SONE, TWORD,
632 0, RLEFT|RESCC,
633 " incZL AL\n movzZLl AL,AL\n",
634
635MINUS, INAREG|INTAREG|FORCC,
636 STAREG, TWORD,
637 SONE, TWORD,
638 0, RLEFT|RESCC,
639 " decZL AL\n",
640
641MINUS, INAREG|INTAREG|FORCC,
642 STAREG, TSHORT|TCHAR,
643 SONE, TWORD,
644 0, RLEFT|RESCC,
645 " decZL AL\n cvtZLl AL,AL\n",
646
647MINUS, INAREG|INTAREG|FORCC,
648 STAREG, TUSHORT|TUCHAR,
649 SONE, TWORD,
650 0, RLEFT|RESCC,
651 " decZL AL\n movzZLl AL,AL\n",
652
653ASG OPSIMP, INAREG|FOREFF|FORCC,
654 SAREG|AWD, TWORD,
655 SAREG|AWD, TWORD,
656 0, RLEFT|RESCC,
657 " OL2 AR,AL\n",
658
659ASG OPSIMP, INAREG|FOREFF|FORCC,
660 SAREG, TWORD,
661 SAREG, TSHORT|TUSHORT|TCHAR|TUCHAR,
662 0, RLEFT|RESCC,
663 " OL2 AR,AL\n",
664
665ASG OPSIMP, INAREG|FOREFF|FORCC,
666 AWD, TSHORT|TUSHORT,
667 SAREG|AWD, TSHORT|TUSHORT,
668 0, RLEFT|RESCC,
669 " OW2 AR,AL\n",
670
671ASG OPSIMP, INAREG|FOREFF|FORCC,
672 AWD, TSHORT|TUSHORT,
673 SSCON, TWORD,
674 0, RLEFT|RESCC,
675 " OW2 AR,AL\n",
676
677ASG OPSIMP, INAREG|FOREFF|FORCC,
678 AWD, TCHAR|TUCHAR,
679 SAREG|AWD, TCHAR|TUCHAR,
680 0, RLEFT|RESCC,
681 " OB2 AR,AL\n",
682
683ASG OPSIMP, INAREG|FOREFF|FORCC,
684 AWD, TCHAR|TUCHAR,
685 SCCON, TWORD,
686 0, RLEFT|RESCC,
687 " OB2 AR,AL\n",
688
689ASG OPSIMP, INAREG|FOREFF|FORCC,
690 SAREG, TSHORT,
691 SAREG|AWD, ANYFIXED,
692 0, RLEFT|RESCC,
693 " OW2 AR,AL\n cvtZLl AL,AL\n",
694
695ASG OPSIMP, INAREG|FOREFF|FORCC,
696 SAREG, TUSHORT,
697 SAREG|AWD, ANYFIXED,
698 0, RLEFT|RESCC,
699 " OW2 AR,AL\n movzZLl AL,AL\n",
700
701ASG OPSIMP, INAREG|FOREFF|FORCC,
702 SAREG, TCHAR,
703 SAREG|AWD, ANYFIXED,
704 0, RLEFT|RESCC,
705 " OB2 AR,AL\n cvtZLl AL,AL\n",
706
707ASG OPSIMP, INAREG|FOREFF|FORCC,
708 SAREG, TUCHAR,
709 SAREG|AWD, ANYFIXED,
710 0, RLEFT|RESCC,
711 " OB2 AR,AL\n movzZLl AL,AL\n",
712
713OPSIMP, INAREG|INTAREG|FORCC,
714 STAREG, ANYFIXED,
715 SAREG|AWD, TWORD,
716 0, RLEFT|RESCC,
717 " OL2 AR,AL\n",
718
719OPSIMP, INAREG|INTAREG|FORCC,
720 SAREG|AWD, TWORD,
721 SAREG|AWD, TWORD,
722 NAREG|NASL|NASR, RESC1|RESCC,
723 " OL3 AR,AL,A1\n",
724
725ASG OPFLOAT, INAREG|FOREFF|FORCC,
726 SAREG|AWD, TDOUBLE,
727 SAREG|AWD, TDOUBLE,
728 0, RLEFT|RESCC,
729 " OD2 AR,AL\n",
730
731ASG OPFLOAT, INAREG|FOREFF|FORCC,
732 SAREG|AWD, TFLOAT,
733 SAREG|AWD, TFLOAT,
734 0, RLEFT|RESCC,
735 " OF2 AR,AL\n",
736
737ASG OPFLOAT, INAREG|FOREFF|FORCC,
738 SAREG|AWD, TDOUBLE,
739 SAREG|AWD, TFLOAT,
740 NAREG|NASR, RLEFT|RESCC,
741 " cvtfd AR,A1\n OD2 A1,AL\n",
742
743ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC,
744 SAREG|AWD, TFLOAT,
745 SAREG|AWD, TDOUBLE,
746 NAREG, RLEFT|RESC1|RESCC,
747 " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n",
748
749OPFLOAT, INAREG|INTAREG|FORCC,
750 STAREG, TDOUBLE,
751 SAREG|AWD, TDOUBLE,
752 0, RLEFT|RESCC,
753 " OD2 AR,AL\n",
754
755OPFLOAT, INAREG|INTAREG|FORCC,
756 SAREG|AWD, TDOUBLE,
757 SAREG|AWD, TDOUBLE,
758 NAREG|NASL|NASR, RESC1|RESCC,
759 " OD3 AR,AL,A1\n",
760
761OPFLOAT, INAREG|INTAREG|FORCC,
762 SAREG|AWD, TFLOAT,
763 SAREG|AWD, TDOUBLE,
764 NAREG|NASL, RESC1|RESCC,
765 " cvtfd AL,A1\n OD2 AR,A1\n",
766
767OPFLOAT, INAREG|INTAREG|FORCC,
768 SAREG|AWD, TDOUBLE,
769 SAREG|AWD, TFLOAT,
770 NAREG|NASR, RESC1|RESCC,
771 " cvtfd AR,A1\n OD3 A1,AL,A1\n",
772
773#ifdef FORT
774OPFLOAT, INAREG|INTAREG|FORCC,
775 STAREG, TFLOAT,
776 SAREG|AWD, TFLOAT,
777 0, RLEFT|RESCC,
778 " OF2 TAR,AL\n",
779
780OPFLOAT, INAREG|INTAREG|FORCC,
781 SAREG|AWD, TFLOAT,
782 SAREG|AWD, TFLOAT,
783 NAREG|NASL|NASR, RESC1|RESCC,
784 " OF3 AR,AL,TA1\n",
785
786#else
787OPFLOAT, INAREG|INTAREG|FORCC,
788 SAREG|AWD, TFLOAT,
789 SAREG|AWD, TFLOAT,
790 NAREG|NASL|NASR, RESC1|RESCC,
791 " OF3 AR,AL,A1\n cvtfd A1,A1\n",
792#endif
793
794 /* Default actions for hard trees ... */
795
796# define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
797
798UNARY MUL, DF( UNARY MUL ),
799
800INCR, DF(INCR),
801
802DECR, DF(INCR),
803
804ASSIGN, DF(ASSIGN),
805
806STASG, DF(STASG),
807
808FLD, DF(FLD),
809
810OPLEAF, DF(NAME),
811
812OPLOG, FORCC,
813 SANY, TANY,
814 SANY, TANY,
815 REWRITE, BITYPE,
816 "",
817
818OPLOG, DF(NOT),
819
820COMOP, DF(COMOP),
821
822INIT, DF(INIT),
823
824OPUNARY, DF(UNARY MINUS),
825
826
827ASG OPANY, DF(ASG PLUS),
828
829OPANY, DF(BITYPE),
830
831FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" };