]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/7l/optab.c
abaco: cleanup, handle image/x-icon, don't use backspace as a hotkey, and remove...
[plan9front.git] / sys / src / cmd / 7l / optab.c
1 #include        "l.h"
2
3 #define X       99
4
5 Optab   optab[] =
6 {
7         { ATEXT,        C_LEXT, C_NONE, C_LCON,          0, 0, 0 },
8         { ATEXT,        C_LEXT, C_REG,  C_LCON,          0, 0, 0 },
9
10         { AMOVQ,        C_REG,  C_NONE, C_REG,           1, 4, 0 },
11         { AMOVQ,        C_SCON, C_NONE, C_REG,           6, 4, REGZERO },
12         { AMOVQ,        C_SECON,C_NONE, C_REG,           6, 4, REGSB },
13         { AMOVQ,        C_SACON,C_NONE, C_REG,           6, 4, REGSP },
14
15         { AMOVQ,        C_LCON, C_NONE, C_REG,          15, 8, REGZERO },
16         { AMOVQ,        C_LECON,C_NONE, C_REG,          15, 8, REGSB },
17         { AMOVQ,        C_LACON,C_NONE, C_REG,          15, 8, REGSP },
18
19         { AMOVQ,        C_QCON, C_NONE, C_REG,          16,20, REGZERO },
20
21         { AMOVQ,        C_REG,  C_NONE, C_SOREG,         8, 4, REGZERO },
22         { AMOVQ,        C_REG,  C_NONE, C_SEXT,          8, 4, REGSB },
23         { AMOVQ,        C_REG,  C_NONE, C_SAUTO,         8, 4, REGSP },
24
25         { AMOVQ,        C_SOREG,C_NONE, C_REG,           9, 4, REGZERO },
26         { AMOVQ,        C_SEXT, C_NONE, C_REG,           9, 4, REGSB },
27         { AMOVQ,        C_SAUTO,C_NONE, C_REG,           9, 4, REGSP },
28
29         { AMOVQ,        C_REG,  C_NONE, C_LOREG,        19, 8, REGZERO },
30         { AMOVQ,        C_REG,  C_NONE, C_LEXT,         19, 8, REGSB },
31         { AMOVQ,        C_REG,  C_NONE, C_LAUTO,        19, 8, REGSP },
32
33         { AMOVQ,        C_LOREG,C_NONE, C_REG,          20, 8, REGZERO },
34         { AMOVQ,        C_LEXT, C_NONE, C_REG,          20, 8, REGSB },
35         { AMOVQ,        C_LAUTO,C_NONE, C_REG,          20, 8, REGSP },
36 /*
37         { AMOVBU,       C_REG,  C_NONE, C_REG,           7, 4, 0 },
38         { AMOVB,        C_REG,  C_NONE, C_REG,          10, 8, 0 },
39 */
40         { AMOVT,        C_FREG, C_NONE, C_FREG,         17, 4, 0 },
41
42         { AMOVT,        C_FREG, C_NONE, C_SOREG,         8, 4, REGZERO },
43         { AMOVT,        C_FREG, C_NONE, C_SEXT,          8, 4, REGSB },
44         { AMOVT,        C_FREG, C_NONE, C_SAUTO,         8, 4, REGSP },
45
46         { AMOVT,        C_SOREG,C_NONE, C_FREG,          9, 4, REGZERO },
47         { AMOVT,        C_SEXT, C_NONE, C_FREG,          9, 4, REGSB },
48         { AMOVT,        C_SAUTO,C_NONE, C_FREG,          9, 4, REGSP },
49
50         { AMOVT,        C_FREG, C_NONE, C_LOREG,        19, 8, REGZERO },
51         { AMOVT,        C_FREG, C_NONE, C_LEXT,         19, 8, REGSB },
52         { AMOVT,        C_FREG, C_NONE, C_LAUTO,        19, 8, REGSP },
53
54         { AMOVT,        C_LOREG,C_NONE, C_FREG,         20, 8, REGZERO },
55         { AMOVT,        C_LEXT, C_NONE, C_FREG,         20, 8, REGSB },
56         { AMOVT,        C_LAUTO,C_NONE, C_FREG,         20, 8, REGSP },
57
58         { AADDQ,        C_REG,  C_REG,  C_REG,           2, 4, 0 },
59         { AADDL,        C_REG,  C_REG,  C_REG,           2, 4, 0 },
60         { AAND,         C_REG,  C_REG,  C_REG,           2, 4, 0 },
61         { AMULQ,        C_REG,  C_REG,  C_REG,           2, 4, 0 },
62         { AADDQ,        C_REG,  C_NONE, C_REG,           2, 4, 0 },
63         { AADDL,        C_REG,  C_NONE, C_REG,           2, 4, 0 },
64         { AAND,         C_REG,  C_NONE, C_REG,           2, 4, 0 },
65         { AMULQ,        C_REG,  C_NONE, C_REG,           2, 4, 0 },
66
67         { AADDQ,        C_SCON, C_REG,  C_REG,          12, 4, 0 },
68         { AADDQ,        C_SCON, C_NONE, C_REG,          12, 4, 0 },
69
70         { AADDL,        C_BCON, C_REG,  C_REG,           3, 4, 0 },
71         { AAND,         C_BCON, C_REG,  C_REG,           3, 4, 0 },
72         { AMULQ,        C_BCON, C_REG,  C_REG,           3, 4, 0 },
73         { AADDL,        C_BCON, C_NONE, C_REG,           3, 4, 0 },
74         { AAND,         C_BCON, C_NONE, C_REG,           3, 4, 0 },
75         { AMULQ,        C_BCON, C_NONE, C_REG,           3, 4, 0 },
76
77 /*      { AADDL,        C_NCON, C_REG,  C_REG,          34, 4, 0 }, */
78         { AAND,         C_NCON, C_REG,  C_REG,          34, 4, 0 },
79 /*      { AADDL,        C_NCON, C_NONE, C_REG,          34, 4, 0 }, */
80         { AAND,         C_NCON, C_NONE, C_REG,          34, 4, 0 },
81
82         { AADDL,        C_SCON, C_REG,  C_REG,          13, 8, 0 },
83         { AAND,         C_SCON, C_REG,  C_REG,          13, 8, 0 },
84         { AMULQ,        C_SCON, C_REG,  C_REG,          13, 8, 0 },
85         { AADDL,        C_SCON, C_NONE, C_REG,          13, 8, 0 },
86         { AAND,         C_SCON, C_NONE, C_REG,          13, 8, 0 },
87         { AMULQ,        C_SCON, C_NONE, C_REG,          13, 8, 0 },
88
89         { AADDQ,        C_LCON, C_REG,  C_REG,          14,12, 0 },
90         { AADDQ,        C_LCON, C_NONE, C_REG,          14,12, 0 },
91         { AADDL,        C_LCON, C_REG,  C_REG,          14,12, 0 },
92         { AAND,         C_LCON, C_REG,  C_REG,          14,12, 0 },
93         { AMULQ,        C_LCON, C_REG,  C_REG,          14,12, 0 },
94         { AADDL,        C_LCON, C_NONE, C_REG,          14,12, 0 },
95         { AAND,         C_LCON, C_NONE, C_REG,          14,12, 0 },
96         { AMULQ,        C_LCON, C_NONE, C_REG,          14,12, 0 },
97
98         { AADDQ,        C_QCON, C_REG,  C_REG,          23,24, 0 },
99         { AADDQ,        C_QCON, C_NONE, C_REG,          23,24, 0 },
100         { AADDL,        C_QCON, C_REG,  C_REG,          23,24, 0 },
101         { AAND,         C_QCON, C_REG,  C_REG,          23,24, 0 },
102         { AMULQ,        C_QCON, C_REG,  C_REG,          23,24, 0 },
103         { AADDL,        C_QCON, C_NONE, C_REG,          23,24, 0 },
104         { AAND,         C_QCON, C_NONE, C_REG,          23,24, 0 },
105         { AMULQ,        C_QCON, C_NONE, C_REG,          23,24, 0 },
106
107         { AADDT,        C_FREG, C_REG,  C_FREG,          2, 4, 0 },
108         { AADDT,        C_FREG, C_NONE, C_FREG,          2, 4, 0 },
109         { ACVTTQ,       C_FREG, C_NONE, C_FREG,         28, 4, 0 },
110
111         { ABEQ,         C_REG,  C_NONE, C_SBRA,          4, 4, 0 },
112         { AFBEQ,        C_FREG, C_NONE, C_SBRA,          4, 4, 0 },
113
114         { AJMP,         C_NONE, C_NONE, C_SBRA,         11, 4, 0 },
115         { AJSR,         C_NONE, C_NONE, C_SBRA,         11, 4, 0 },
116
117         { AJMP,         C_NONE, C_NONE, C_ZOREG,         5, 4, REGZERO },
118         { AJSR,         C_NONE, C_NONE, C_ZOREG,         5, 4, REGLINK },
119         { AJMP,         C_NONE, C_REG,  C_ZOREG,         5, 4, REGZERO },
120         { AJSR,         C_NONE, C_REG,  C_ZOREG,         5, 4, REGLINK },
121         { ACALL_PAL,    C_SCON, C_NONE, C_NONE,         18, 4, 0 },
122         { AWORD,        C_NONE, C_NONE, C_LCON,         40, 4, 0 },
123
124         { AMOVT,        C_FREG, C_NONE, C_FCREG,        24, 4, 0 },
125         { AMOVT,        C_FCREG,C_NONE, C_FREG,         25, 4, 0 },
126
127         { AMOVQ,        C_REG,  C_NONE, C_PREG,         26, 4, 0 },
128         { AMOVQ,        C_PREG, C_NONE, C_REG,          27, 4, 0 },
129         { AMOVQ,        C_PCC,  C_NONE, C_REG,          29, 4, 0 },
130
131         { AREI,         C_NONE, C_NONE, C_NONE,         30, 4, 0 },
132         { AFETCH,       C_ZOREG,C_NONE, C_NONE,         31, 4, REGZERO },
133
134         { AMOVQL,       C_SOREG,C_NONE, C_REG,           9, 4, REGZERO },
135         { AMOVQC,       C_REG,  C_NONE, C_SOREG,         8, 4, REGZERO },
136
137         { AMOVQP,       C_SOREG,C_NONE, C_REG,          33, 4, REGZERO },
138         { AMOVQP,       C_REG,  C_NONE, C_SOREG,        32, 4, REGZERO },
139
140         { AXXX,         C_NONE, C_NONE, C_NONE,          0, 4, 0 },
141 };