source: mainline/uspace/app/pcc/arch/vax/table.c@ a837544

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since a837544 was a7de7182, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 14 years ago

Added pcc source tree (contents of pcc-1.0.0.tgz)

  • Property mode set to 100644
File size: 13.4 KB
Line 
1/* $Id: table.c,v 1.3 2007/10/29 14:20:22 ragge Exp $ */
2/*
3 * Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * Redistributions of source code and documentation must retain the above
10 * copyright notice, this list of conditions and the following disclaimer.
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditionsand the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed or owned by Caldera
17 * International, Inc.
18 * Neither the name of Caldera International, Inc. nor the names of other
19 * contributors may be used to endorse or promote products derived from
20 * this software without specific prior written permission.
21 *
22 * USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
23 * INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 * DISCLAIMED. IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE
27 * FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT,
31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
32 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35
36# include "pass2.h"
37
38# define WPTR TPTRTO|TINT|TLONG|TFLOAT|TDOUBLE|TPOINT|TUNSIGNED|TULONG
39# define AWD SNAME|SOREG|SCON|STARNM|STARREG
40/* tbl */
41# define ANYSIGNED TPOINT|TINT|TLONG|TSHORT|TCHAR
42# define ANYUSIGNED TUNSIGNED|TULONG|TUSHORT|TUCHAR
43# define ANYFIXED ANYSIGNED|ANYUSIGNED
44# define TWORD TINT|TUNSIGNED|TPOINT|TLONG|TULONG
45/* tbl */
46# define TBREG TLONGLONG|TULONGLONG|TDOUBLE
47
48struct optab table[] = {
49/* First entry must be an empty entry */
50{ -1, FOREFF, SANY, TANY, SANY, TANY, 0, 0, "", },
51
52{ PCONV, INAREG|INAREG,
53 SAREG|AWD, TCHAR|TSHORT,
54 SANY, TPOINT,
55 NAREG|NASL, RESC1,
56 " cvtZLl AL,A1\n", },
57
58{ PCONV, INAREG|INAREG,
59 SAREG|AWD, TUCHAR|TUSHORT,
60 SANY, TPOINT,
61 NAREG|NASL, RESC1,
62 " movzZLl AL,A1\n", },
63
64{ SCONV, INBREG|FORCC,
65 SAREG, TDOUBLE,
66 SANY, TDOUBLE,
67 0, RLEFT,
68 "", },
69
70{ SCONV, INBREG|FORCC,
71 SAREG|AWD, TANY,
72 SANY, TFLOAT|TDOUBLE,
73 NAREG|NASL, RESC1|RESCC,
74 " cvtZLd AL,A1\n", },
75
76{ SCONV, INAREG|FORCC,
77 SAREG|AWD, TFLOAT|TDOUBLE,
78 SANY, ANYFIXED,
79 NAREG|NASL, RESC1|RESCC,
80 " cvtZLZF AL,A1\n", },
81
82{ SCONV, INAREG|FORCC,
83 SAREG|SNAME|SCON|STARNM, TANY,
84 SANY, ANYUSIGNED,
85 NAREG|NASL, RESC1|RESCC,
86 " movzZRl AL,A1\n", },
87
88{ SCONV, INAREG|FORCC,
89 SSOREG, TANY,
90 SANY, ANYUSIGNED,
91 NAREG|NASL, RESC1|RESCC,
92 " movzZRl AL,A1\n", },
93
94{ SCONV, INAREG|FORCC,
95 SAREG|SNAME|SCON|STARNM, TANY,
96 SANY, TANY,
97 NAREG|NASL, RESC1|RESCC,
98 " cvtZRl AL,A1\n", },
99
100{ SCONV, INAREG|FORCC,
101 SSOREG, TANY,
102 SANY, TANY,
103 NAREG|NASL, RESC1|RESCC,
104 " cvtZRl AL,A1\n", },
105
106{ GOTO, FOREFF,
107 SCON, TANY,
108 SANY, TANY,
109 0, RNOP,
110 " ZJ\n", },
111
112{ GOTO, FOREFF,
113 SAREG, TANY,
114 SANY, TANY,
115 0, RNOP,
116 " jmp (AL)\n", },
117
118{ STARG, INTEMP,
119 SCON|SAREG, TANY,
120 SANY, TANY,
121 NTEMP+2*NAREG, RESC3,
122 "ZS", },
123
124#if 0
125{ STASG, FORARG,
126 SNAME|SOREG, TANY,
127 SCON|SAREG, TANY,
128 0, RNULL,
129 " subl2 ZT,sp\nZS", },
130#endif
131
132{ ADDROF, INAREG,
133 SNAME, TANY,
134 SAREG, TANY,
135 NAREG, RESC1,
136 " movab AL,A1\n", },
137
138{ STASG, FOREFF,
139 SNAME|SOREG, TANY,
140 SCON|SAREG, TANY,
141 0, RNOP,
142 "ZS", },
143
144{ STASG, INAREG,
145 SNAME|SOREG, TANY,
146 SCON, TANY,
147 NAREG, RESC1,
148 "ZS movl AR,A1\n", },
149
150{ STASG, INAREG,
151 SNAME|SOREG, TANY,
152 SAREG, TANY,
153 0, RRIGHT,
154 " pushl AR\nZS movl (sp)+,AR\n", },
155
156{ FLD, INAREG|INAREG,
157 SANY, TANY,
158 SFLD, ANYSIGNED,
159 NAREG|NASR, RESC1,
160 " extv H,S,AR,A1\n", },
161
162{ FLD, INAREG|INAREG,
163 SANY, TANY,
164 SFLD, ANYUSIGNED,
165 NAREG|NASR, RESC1,
166 " extzv H,S,AR,A1\n", },
167
168#if 0
169{ FLD, FORARG,
170 SANY, TANY,
171 SFLD, ANYSIGNED,
172 0, RNULL,
173 " extv H,S,AR,-(sp)\n", },
174
175{ FLD, FORARG,
176 SANY, TANY,
177 SFLD, ANYUSIGNED,
178 0, RNULL,
179 " extzv H,S,AR,-(sp)\n", },
180#endif
181
182{ OPLOG, FORCC,
183 SAREG|AWD, TWORD,
184 SAREG|AWD, TWORD,
185 0, RESCC,
186 " cmpl AL,AR\n", },
187
188{ OPLOG, FORCC,
189 SAREG|AWD, TSHORT|TUSHORT,
190 SAREG|AWD, TSHORT|TUSHORT,
191 0, RESCC,
192 " cmpw AL,AR\n", },
193
194{ OPLOG, FORCC,
195 SAREG|AWD, TCHAR|TUCHAR,
196 SAREG|AWD, TCHAR|TUCHAR,
197 0, RESCC,
198 " cmpb AL,AR\n", },
199
200{ OPLOG, FORCC,
201 SAREG|AWD, TSHORT|TUSHORT,
202 SSCON, TANY,
203 0, RESCC,
204 " cmpw AL,AR\n", },
205
206{ OPLOG, FORCC,
207 SAREG|AWD, TCHAR|TUCHAR,
208 SCCON, TANY,
209 0, RESCC,
210 " cmpb AL,AR\n", },
211
212{ OPLOG, FORCC,
213 SAREG|AWD, TDOUBLE,
214 SAREG|AWD, TDOUBLE,
215 0, RESCC,
216 " cmpd AL,AR\n", },
217
218{ OPLOG, FORCC,
219 SAREG|AWD, TFLOAT|TDOUBLE,
220 SAREG|AWD, TFLOAT|TDOUBLE,
221 0, RESCC,
222 " cmpf AL,AR\n", },
223
224{ CCODES, INAREG|INAREG,
225 SANY, TANY,
226 SANY, TANY,
227 NAREG, RESC1,
228 " movl $1,A1\nZN", },
229
230/*
231 * Subroutine calls.
232 */
233
234{ CALL, FOREFF,
235 SCON, TANY,
236 SANY, TANY,
237 0, 0,
238 " calls ZC,CL\n", },
239
240{ UCALL, FOREFF,
241 SCON, TANY,
242 SANY, TANY,
243 0, 0,
244 " calls $0,CL\n", },
245
246{ CALL, INAREG,
247 SCON, TANY,
248 SANY, TANY,
249 NAREG|NASL, RESC1, /* should be register 0 */
250 " calls ZC,CL\n", },
251
252{ UCALL, INAREG,
253 SCON, TANY,
254 SANY, TANY,
255 NAREG|NASL, RESC1, /* should be register 0 */
256 " calls $0,CL\n", },
257
258{ CALL, INAREG|FOREFF,
259 SAREG, TANY,
260 SANY, TANY,
261 NAREG|NASL, RESC1, /* should be 0 */
262 " calls ZC,(AL)\n", },
263
264{ UCALL, INAREG|FOREFF,
265 SAREG, TANY,
266 SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE,
267 NAREG|NASL, RESC1, /* should be 0 */
268 " calls ZC,(AL)\n", },
269
270{ UCALL, INAREG|FOREFF,
271 SNAME, TANY,
272 SANY, TANY,
273 NAREG|NASL, RESC1, /* really reg 0 */
274 " calls ZC,*AL\n", },
275
276{ UCALL, INAREG|FOREFF,
277 SSOREG, TANY,
278 SANY, TANY,
279 NAREG|NASL, RESC1, /* really reg 0 */
280 " calls ZC,*AL\n", },
281
282/*
283 * Function arguments
284 */
285{ FUNARG, FOREFF,
286 SCON|SAREG|SNAME|SOREG, TWORD|TPOINT,
287 SANY, TWORD|TPOINT,
288 0, RNULL,
289 " pushl AL\n" },
290
291#if 0
292{ ASG RS, INAREG|FOREFF|FORCC,
293 SAREG, TWORD,
294 SCON, TINT,
295 0, RLEFT|RESCC,
296 " extzv AR,ZU,AL,AL\n", },
297
298{ ASG RS, INAREG|FOREFF|FORCC,
299 SAREG, TWORD,
300 SAREG, ANYFIXED,
301 NAREG, RLEFT|RESCC,
302 " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", },
303
304{ ASG RS, INAREG|FOREFF|FORCC,
305 SAREG, TWORD,
306 SAREG|AWD, TWORD,
307 NAREG, RLEFT|RESCC,
308 " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", },
309#endif
310
311{ RS, INAREG|INAREG|FORCC,
312 SAREG, TWORD,
313 SCON, TINT,
314 NAREG|NASL, RESC1|RESCC,
315 " extzv AR,ZU,AL,A1\n", },
316
317#if 0
318{ ASG LS, INAREG|FOREFF|FORCC,
319 SAREG|AWD, TWORD,
320 SAREG|AWD, ANYSIGNED|ANYUSIGNED,
321 0, RLEFT|RESCC,
322 " ashl AR,AL,AL\n", },
323#endif
324
325{ LS, INAREG|INAREG|FORCC,
326 SAREG|AWD, TWORD,
327 SAREG|AWD, ANYSIGNED|ANYUSIGNED,
328 NAREG|NASL|NASR, RESC1|RESCC,
329 " ashl AR,AL,A1\n", },
330
331#if 0
332{ INCR, FOREFF,
333 SAREG|AWD, TANY,
334 SANY, TANY,
335 0, RLEFT,
336 " ZE\n", },
337
338{ DECR, FOREFF,
339 SAREG|AWD, TANY,
340 SCON, TANY,
341 0, RLEFT,
342 " ZE\n", },
343
344{ INCR, INAREG|INAREG,
345 SAREG|AWD, TANY,
346 SCON, TANY,
347 NAREG, RESC1,
348 " ZD\n", },
349
350{ DECR, INAREG|INAREG,
351 SAREG|AWD, TANY,
352 SCON, TANY,
353 NAREG, RESC1,
354 " ZD\n", },
355#endif
356
357{ ASSIGN, INBREG|FOREFF,
358 SBREG|AWD, TBREG,
359 SBREG|AWD, TBREG,
360 0, RDEST,
361 " movq AR,AL\n", },
362
363{ ASSIGN, INAREG|FOREFF|FORCC,
364 SAREG|AWD, TANY,
365 SAREG|AWD, TANY,
366 0, RDEST|RESCC,
367 " ZA\n", },
368
369{ ASSIGN, INAREG|FOREFF|FORCC,
370 SFLD, TANY,
371 SAREG|AWD, TWORD,
372 0, RDEST|RESCC,
373 " insv AR,H,S,AL\n", },
374
375{ ASSIGN, INAREG|FOREFF|FORCC,
376 SAREG|AWD, TWORD,
377 SFLD, ANYSIGNED,
378 0, RDEST|RESCC,
379 " extv H,S,AR,AL\n", },
380
381{ ASSIGN, INAREG|FOREFF|FORCC,
382 SAREG|AWD, TWORD,
383 SFLD, ANYUSIGNED,
384 0, RDEST|RESCC,
385 " extzv H,S,AR,AL\n", },
386
387/* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
388{ UMUL, FOREFF,
389 SCC, TANY,
390 SCC, TANY,
391 0, RNULL,
392 " HELP HELP HELP\n", },
393
394#if 0
395{ REG, FORARG,
396 SANY, TANY,
397 SAREG, TDOUBLE|TFLOAT,
398 0, RNULL,
399 " movZR AR,-(sp)\n", },
400#endif
401
402{ REG, INTEMP,
403 SANY, TANY,
404 SAREG, TDOUBLE,
405 2*NTEMP, RESC1,
406 " movd AR,A1\n", },
407
408{ REG, INTEMP,
409 SANY, TANY,
410 SAREG, TANY,
411 NTEMP, RESC1,
412 " movZF AR,A1\n", },
413
414{ OPLEAF, FOREFF,
415 SANY, TANY,
416 SAREG|AWD, TANY,
417 0, RLEFT,
418 "", },
419
420{ OPLTYPE, INAREG|INAREG,
421 SANY, TANY,
422 SANY, TFLOAT|TDOUBLE,
423 2*NAREG|NASR, RESC1,
424 " ZA\n", },
425
426{ OPLTYPE, INAREG|INAREG,
427 SANY, TANY,
428 SANY, TANY,
429 NAREG|NASR, RESC1,
430 " ZA\n", },
431
432{ OPLTYPE, FORCC,
433 SANY, TANY,
434 SANY, TANY,
435 0, RESCC,
436 " tstZR AR\n", },
437
438#if 0
439{ OPLTYPE, FORARG,
440 SANY, TANY,
441 SANY, TWORD,
442 0, RNULL,
443 " pushl AR\n", },
444
445{ OPLTYPE, FORARG,
446 SANY, TANY,
447 SANY, TCHAR|TSHORT,
448 0, RNULL,
449 " cvtZRl AR,-(sp)\n", },
450
451{ OPLTYPE, FORARG,
452 SANY, TANY,
453 SANY, TUCHAR|TUSHORT,
454 0, RNULL,
455 " movzZRl AR,-(sp)\n", },
456
457{ OPLTYPE, FORARG,
458 SANY, TANY,
459 SANY, TDOUBLE,
460 0, RNULL,
461 " movd AR,-(sp)\n", },
462
463{ OPLTYPE, FORARG,
464 SANY, TANY,
465 SANY, TFLOAT,
466 0, RNULL,
467 " cvtfd AR,-(sp)\n", },
468#endif
469
470{ UMINUS, INAREG|FORCC,
471 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE,
472 SANY, TANY,
473 NAREG|NASL, RESC1|RESCC,
474 " mnegZL AL,A1\n", },
475
476{ COMPL, INAREG|FORCC,
477 SAREG|AWD, TINT|TUNSIGNED,
478 SANY, TANY,
479 NAREG|NASL, RESC1|RESCC,
480 " mcomZL AL,A1\n", },
481
482{ COMPL, INAREG|FORCC,
483 SAREG|AWD, ANYSIGNED|ANYUSIGNED,
484 SANY, TANY,
485 NAREG|NASL, RESC1|RESCC,
486 " cvtZLl AL,A1\n mcoml A1,A1\n", },
487
488{ AND, FORCC,
489 SAREG|AWD, TWORD,
490 SCON, TWORD,
491 0, RESCC,
492 " bitl ZZ,AL\n", },
493
494{ AND, FORCC,
495 SAREG|AWD, TSHORT|TUSHORT,
496 SSCON, TWORD,
497 0, RESCC,
498 " bitw ZZ,AL\n", },
499
500{ AND, FORCC,
501 SAREG|AWD, TCHAR|TUCHAR,
502 SCCON, TWORD,
503 0, RESCC,
504 " bitb ZZ,AL\n", },
505
506#if 0
507{ ASG AND, INAREG|FOREFF|FORCC,
508 SAREG, ANYFIXED,
509 SCON, TWORD,
510 0, RLEFT|RESCC,
511 " bicl2 AR,AL\n", },
512
513{ ASG OPMUL, INAREG|FOREFF|FORCC,
514 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
515 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
516 0, RLEFT|RESCC,
517 " OL2 AR,AL\n", },
518#endif
519
520{ OPMUL, INAREG|INAREG|FORCC,
521 SAREG, TINT|TUNSIGNED|TLONG|TULONG,
522 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
523 0, RLEFT|RESCC,
524 " OL2 AR,AL\n", },
525
526{ OPMUL, INAREG|INAREG|FORCC,
527 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
528 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
529 NAREG|NASL|NASR, RESC1|RESCC,
530 " OL3 AR,AL,A1\n", },
531
532#if 0
533{ ASG MOD, INAREG|INAREG|FOREFF|FORCC,
534 SAREG, TINT|TUNSIGNED|TLONG|TULONG,
535 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
536 NAREG, RLEFT|RESCC,
537 " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", },
538#endif
539
540{ MOD, INAREG|INAREG,
541 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
542 SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG,
543 NAREG, RESC1,
544 " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", },
545
546#if 0
547{ ASG PLUS, INAREG|FOREFF|FORCC,
548 SAREG|AWD, ANYSIGNED|ANYUSIGNED,
549 SONE, TINT|TLONG,
550 0, RLEFT|RESCC,
551 " incZL AL\n", },
552
553{ ASG MINUS, INAREG|FOREFF|FORCC,
554 SAREG|AWD, ANYSIGNED|ANYUSIGNED,
555 SONE, TINT|TLONG,
556 0, RLEFT|RESCC,
557 " decZL AL\n", },
558#endif
559
560{ PLUS, INAREG|INAREG|FORCC,
561 SAREG, ANYFIXED,
562 SONE, TWORD,
563 0, RLEFT|RESCC,
564 " incZL AL\n", },
565
566{ MINUS, INAREG|INAREG|FORCC,
567 SAREG, ANYFIXED,
568 SONE, TWORD,
569 0, RLEFT|RESCC,
570 " decZL AL\n", },
571
572#if 0
573{ ASG OPSIMP, INAREG|FOREFF|FORCC,
574 SAREG|AWD, TWORD,
575 SAREG|AWD, TWORD,
576 0, RLEFT|RESCC,
577 " OL2 AR,AL\n", },
578
579{ ASG OPSIMP, INAREG|FOREFF|FORCC,
580 AWD, TSHORT|TUSHORT,
581 SAREG|AWD, TSHORT|TUSHORT,
582 0, RLEFT|RESCC,
583 " OW2 AR,AL\n", },
584
585{ ASG OPSIMP, INAREG|FOREFF|FORCC,
586 AWD, TSHORT|TUSHORT,
587 SSCON, TWORD,
588 0, RLEFT|RESCC,
589 " OW2 AR,AL\n", },
590
591{ ASG OPSIMP, INAREG|FOREFF|FORCC,
592 AWD, TCHAR|TUCHAR,
593 SAREG|AWD, TCHAR|TUCHAR,
594 0, RLEFT|RESCC,
595 " OB2 AR,AL\n", },
596
597{ ASG OPSIMP, INAREG|FOREFF|FORCC,
598 AWD, TCHAR|TUCHAR,
599 SCCON, TWORD,
600 0, RLEFT|RESCC,
601 " OB2 AR,AL\n", },
602#endif
603
604{ OPSIMP, INAREG|INAREG|FORCC,
605 SAREG, ANYFIXED,
606 SAREG|AWD, TWORD,
607 0, RLEFT|RESCC,
608 " OL2 AR,AL\n", },
609
610{ OPSIMP, INAREG|INAREG|FORCC,
611 SAREG|AWD, TWORD,
612 SAREG|AWD, TWORD,
613 NAREG|NASL|NASR, RESC1|RESCC,
614 " OL3 AR,AL,A1\n", },
615
616#if 0
617{ ASG OPFLOAT, INAREG|FOREFF|FORCC,
618 SAREG|AWD, TDOUBLE,
619 SAREG|AWD, TDOUBLE,
620 0, RLEFT|RESCC,
621 " OD2 AR,AL\n", },
622
623{ ASG OPFLOAT, INAREG|FOREFF|FORCC,
624 SAREG|AWD, TFLOAT,
625 SAREG|AWD, TFLOAT,
626 0, RLEFT|RESCC,
627 " OF2 AR,AL\n", },
628
629{ ASG OPFLOAT, INAREG|FOREFF|FORCC,
630 SAREG|AWD, TDOUBLE,
631 SAREG|AWD, TFLOAT,
632 NAREG|NASR, RLEFT|RESCC,
633 " cvtfd AR,A1\n OD2 A1,AL\n", },
634
635{ ASG OPFLOAT, INAREG|INAREG|FOREFF|FORCC,
636 SAREG|AWD, TFLOAT,
637 SAREG|AWD, TDOUBLE,
638 NAREG, RLEFT|RESC1|RESCC,
639 " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", },
640#endif
641
642{ OPFLOAT, INAREG|INAREG|FORCC,
643 SAREG, TDOUBLE,
644 SAREG|AWD, TDOUBLE,
645 0, RLEFT|RESCC,
646 " OD2 AR,AL\n", },
647
648{ OPFLOAT, INAREG|INAREG|FORCC,
649 SAREG|AWD, TDOUBLE,
650 SAREG|AWD, TDOUBLE,
651 NAREG|NASL|NASR, RESC1|RESCC,
652 " OD3 AR,AL,A1\n", },
653
654{ OPFLOAT, INAREG|INAREG|FORCC,
655 SAREG|AWD, TFLOAT,
656 SAREG|AWD, TDOUBLE,
657 NAREG|NASL, RESC1|RESCC,
658 " cvtfd AL,A1\n OD2 AR,A1\n", },
659
660{ OPFLOAT, INAREG|INAREG|FORCC,
661 SAREG|AWD, TDOUBLE,
662 SAREG|AWD, TFLOAT,
663 NAREG|NASR, RESC1|RESCC,
664 " cvtfd AR,A1\n OD3 A1,AL,A1\n", },
665
666{ OPFLOAT, INAREG|INAREG|FORCC,
667 SAREG|AWD, TFLOAT,
668 SAREG|AWD, TFLOAT,
669 NAREG|NASL|NASR, RESC1|RESCC,
670 " OF3 AR,AL,A1\n cvtfd A1,A1\n", },
671
672 /* Default actions for hard trees ... */
673
674# define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
675
676{ UMUL, DF( UMUL ), },
677
678{ ASSIGN, DF(ASSIGN), },
679
680{ STASG, DF(STASG), },
681
682{ OPLEAF, DF(NAME), },
683
684{ OPLOG, FORCC,
685 SANY, TANY,
686 SANY, TANY,
687 REWRITE, BITYPE,
688 "", },
689
690{ OPUNARY, DF(UMINUS), },
691
692{ OPANY, DF(BITYPE), },
693
694{ FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" }
695};
Note: See TracBrowser for help on using the repository browser.