]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/kl/optab.c
disk/format: implement long name support
[plan9front.git] / sys / src / cmd / kl / 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         { ANOP,         C_NONE, C_NONE, C_NONE,          0, 0, 0 },
10
11         { AMOVW,        C_REG,  C_NONE, C_REG,           1, 4, 0 },
12
13         { AMOVW,        C_SCON, C_NONE, C_REG,           2, 4, 0 },
14         { AMOVW,        C_SACON,C_NONE, C_REG,           2, 4, REGSP },
15         { AMOVW,        C_SECON,C_NONE, C_REG,           2, 4, REGSB },
16
17         { AMOVW,        C_SOREG,C_NONE, C_REG,           3, 4, 0 },
18         { AMOVW,        C_ZOREG,C_REG,  C_REG,           3, 4, 0 },
19         { AMOVW,        C_SAUTO,C_NONE, C_REG,           3, 4, REGSP },
20         { AMOVW,        C_SEXT, C_NONE, C_REG,           3, 4, REGSB },
21         { AMOVB,        C_SOREG,C_NONE, C_REG,           3, 4, 0 },
22         { AMOVB,        C_ZOREG,C_REG,  C_REG,           3, 4, 0 },
23         { AMOVB,        C_SAUTO,C_NONE, C_REG,           3, 4, REGSP },
24         { AMOVB,        C_SEXT, C_NONE, C_REG,           3, 4, REGSB },
25         { AMOVD,        C_SOREG,C_NONE, C_REG,           3, 4, 0 },
26         { AMOVD,        C_ZOREG,C_REG,  C_REG,           3, 4, 0 },
27         { AMOVD,        C_SAUTO,C_NONE, C_REG,           3, 4, REGSP },
28         { AMOVD,        C_SEXT, C_NONE, C_REG,           3, 4, REGSB },
29
30         { AMOVW,        C_REG,  C_NONE, C_SOREG,         4, 4, 0 },
31         { AMOVW,        C_REG,  C_REG,  C_ZOREG,         4, 4, 0 },
32         { AMOVW,        C_REG,  C_NONE, C_SAUTO,         4, 4, REGSP },
33         { AMOVW,        C_REG,  C_NONE, C_SEXT,          4, 4, REGSB },
34         { AMOVB,        C_REG,  C_NONE, C_SOREG,         4, 4, 0 },
35         { AMOVB,        C_REG,  C_REG,  C_ZOREG,         4, 4, 0 },
36         { AMOVB,        C_REG,  C_NONE, C_SAUTO,         4, 4, REGSP },
37         { AMOVB,        C_REG,  C_NONE, C_SEXT,          4, 4, REGSB },
38         { AMOVD,        C_REG,  C_NONE, C_SOREG,         4, 4, 0 },
39         { AMOVD,        C_REG,  C_REG,  C_ZOREG,         4, 4, 0 },
40         { AMOVD,        C_REG,  C_NONE, C_SAUTO,         4, 4, REGSP },
41         { AMOVD,        C_REG,  C_NONE, C_SEXT,          4, 4, REGSB },
42
43         { AMOVW,        C_LCON, C_NONE, C_REG,           5, 8, 0 },
44
45         { AMOVW,        C_ASI,  C_NONE, C_REG,           6, 4, 0 },
46         { AMOVW,        C_ASI,  C_REG,  C_REG,           6, 4, 0 },
47         { AMOVB,        C_ASI,  C_NONE, C_REG,           6, 4, 0 },
48         { AMOVB,        C_ASI,  C_REG,  C_REG,           6, 4, 0 },
49         { AMOVD,        C_ASI,  C_NONE, C_REG,           6, 4, 0 },
50         { AMOVD,        C_ASI,  C_REG,  C_REG,           6, 4, 0 },
51
52         { AMOVW,        C_REG,  C_NONE, C_ASI,           7, 4, 0 },
53         { AMOVW,        C_REG,  C_REG,  C_ASI,           7, 4, 0 },
54         { AMOVB,        C_REG,  C_NONE, C_ASI,           7, 4, 0 },
55         { AMOVB,        C_REG,  C_REG,  C_ASI,           7, 4, 0 },
56         { AMOVD,        C_REG,  C_NONE, C_ASI,           7, 4, 0 },
57         { AMOVD,        C_REG,  C_REG,  C_ASI,           7, 4, 0 },
58
59         { AMOVW,        C_REG,  C_NONE, C_PREG,          8, 4, 0 },
60         { AMOVW,        C_PREG, C_NONE, C_REG,           8, 4, 0 },
61
62         { AMOVB,        C_REG,  C_NONE, C_REG,           9, 8, 0 },
63
64         { AMOVW,        C_LACON,C_NONE, C_REG,          10,12, REGSP },
65         { AMOVW,        C_LECON,C_NONE, C_REG,          10,12, REGSB },
66
67         { AMOVW,        C_LOREG,C_NONE, C_REG,          11,12, 0 },
68         { AMOVW,        C_LAUTO,C_NONE, C_REG,          11,12, REGSP },
69         { AMOVW,        C_LEXT, C_NONE, C_REG,          11,12, REGSB },
70         { AMOVB,        C_LOREG,C_NONE, C_REG,          11,12, 0 },
71         { AMOVB,        C_LAUTO,C_NONE, C_REG,          11,12, REGSP },
72         { AMOVB,        C_LEXT, C_NONE, C_REG,          11,12, REGSB },
73         { AMOVD,        C_LOREG,C_NONE, C_REG,          11,12, 0 },
74         { AMOVD,        C_LAUTO,C_NONE, C_REG,          11,12, REGSP },
75         { AMOVD,        C_LEXT, C_NONE, C_REG,          11,12, REGSB },
76
77         { AMOVW,        C_REG,  C_NONE, C_LOREG,        12,12, 0 },
78         { AMOVW,        C_REG,  C_NONE, C_LAUTO,        12,12, REGSP },
79         { AMOVW,        C_REG,  C_NONE, C_LEXT,         12,12, REGSB },
80         { AMOVB,        C_REG,  C_NONE, C_LOREG,        12,12, 0 },
81         { AMOVB,        C_REG,  C_NONE, C_LAUTO,        12,12, REGSP },
82         { AMOVB,        C_REG,  C_NONE, C_LEXT,         12,12, REGSB },
83         { AMOVD,        C_REG,  C_NONE, C_LOREG,        12,12, 0 },
84         { AMOVD,        C_REG,  C_NONE, C_LAUTO,        12,12, REGSP },
85         { AMOVD,        C_REG,  C_NONE, C_LEXT,         12,12, REGSB },
86
87         { AMOVW,        C_UCON, C_NONE, C_REG,          13, 4, 0 },
88
89         { AADD,         C_SCON, C_NONE, C_REG,          20, 4, 0 },
90         { AADD,         C_SCON, C_REG,  C_REG,          20, 4, 0 },
91
92         { AADD,         C_REG,  C_NONE, C_REG,          21, 4, 0 },
93         { AADD,         C_REG,  C_REG,  C_REG,          21, 4, 0 },
94
95         { AADD,         C_LCON, C_NONE, C_REG,          22,12, 0 },
96         { AADD,         C_LCON, C_REG,  C_REG,          22,12, 0 },
97
98         { ACMP,         C_REG,  C_NONE, C_REG,          23, 4, 0 },
99         { ACMP,         C_REG,  C_NONE, C_SCON,         24, 4, 0 },
100         { ACMP,         C_SCON, C_NONE, C_REG,          25, 8, 0 },
101
102         { AADD,         C_UCON, C_NONE, C_REG,          26, 8, 0 },
103         { AADD,         C_UCON, C_REG,  C_REG,          26, 8, 0 },
104
105         { AJMP,         C_NONE, C_NONE, C_SOREG,        30, 4, 0 },
106         { AJMPL,        C_NONE, C_NONE, C_SOREG,        30, 4, 0 },
107
108         { AJMP,         C_NONE, C_NONE, C_SBRA,         31, 4, 0 },
109         { ABA,          C_NONE, C_NONE, C_SBRA,         31, 4, 0 },
110
111         { AJMPL,        C_NONE, C_NONE, C_LBRA,         32, 4, 0 },
112
113         { ATA,          C_REG,  C_NONE, C_NONE,         33, 4, 0 },
114         { ARETT,        C_REG,  C_NONE, C_REG,          34, 8, 0 },
115
116         { AMOVW,        C_SOREG,C_NONE, C_FSR,          40, 4, 0 },
117         { AMOVW,        C_SAUTO,C_NONE, C_FSR,          40, 4, REGSP },
118         { AMOVW,        C_SEXT, C_NONE, C_FSR,          40, 4, REGSB },
119         { AMOVW,        C_FSR,  C_NONE, C_SOREG,        40, 4, 0 },
120         { AMOVW,        C_FSR,  C_NONE, C_SAUTO,        40, 4, REGSP },
121         { AMOVW,        C_FSR,  C_NONE, C_SEXT,         40, 4, REGSB },
122         { AMOVD,        C_FQ,   C_NONE, C_SOREG,        40, 4, 0 },
123         { AMOVD,        C_FQ,   C_NONE, C_SAUTO,        40, 4, REGSP },
124         { AMOVD,        C_FQ,   C_NONE, C_SEXT,         40, 4, REGSB },
125
126         { AFMOVF,       C_SOREG,C_NONE, C_FREG,         41, 4, 0 },
127         { AFMOVF,       C_SAUTO,C_NONE, C_FREG,         41, 4, REGSP },
128         { AFMOVF,       C_SEXT, C_NONE, C_FREG,         41, 4, REGSB },
129         { AMOVW,        C_SOREG,C_NONE, C_FREG,         41, 4, 0 },
130         { AMOVW,        C_SAUTO,C_NONE, C_FREG,         41, 4, REGSP },
131         { AMOVW,        C_SEXT, C_NONE, C_FREG,         41, 4, REGSB },
132         { AMOVD,        C_SOREG,C_NONE, C_FREG,         41, 4, 0 },
133         { AMOVD,        C_SAUTO,C_NONE, C_FREG,         41, 4, REGSP },
134         { AFMOVD,       C_ESAUTO,C_NONE,C_FREG,         41, 4, REGSP },
135         { AMOVD,        C_SEXT, C_NONE, C_FREG,         41, 4, REGSB },
136         { AFMOVD,       C_ESEXT,C_NONE, C_FREG,         41, 4, REGSB },
137
138         { AFMOVD,       C_SOREG,C_NONE, C_FREG,         42, 8, 0 },
139         { AFMOVD,       C_SAUTO,C_NONE, C_FREG,         42, 8, REGSP },
140         { AFMOVD,       C_SEXT, C_NONE, C_FREG,         42, 8, REGSB },
141
142         { AFMOVF,       C_FREG, C_NONE, C_SOREG,        43, 4, 0 },
143         { AFMOVF,       C_FREG, C_NONE, C_SAUTO,        43, 4, REGSP },
144         { AFMOVF,       C_FREG, C_NONE, C_SEXT,         43, 4, REGSB },
145         { AMOVW,        C_FREG, C_NONE, C_SOREG,        43, 4, 0 },
146         { AMOVW,        C_FREG, C_NONE, C_SAUTO,        43, 4, REGSP },
147         { AMOVW,        C_FREG, C_NONE, C_SEXT,         43, 4, REGSB },
148         { AMOVD,        C_FREG, C_NONE, C_SOREG,        43, 4, 0 },
149         { AMOVD,        C_FREG, C_NONE, C_SAUTO,        43, 4, REGSP },
150         { AFMOVD,       C_FREG, C_NONE, C_ESAUTO,       43, 4, REGSP },
151         { AMOVD,        C_FREG, C_NONE, C_SEXT,         43, 4, REGSB },
152         { AFMOVD,       C_FREG, C_NONE, C_ESEXT,        43, 4, REGSB },
153
154         { AFMOVD,       C_FREG, C_NONE, C_SOREG,        44, 8, 0 },
155         { AFMOVD,       C_FREG, C_NONE, C_SAUTO,        44, 8, REGSP },
156         { AFMOVD,       C_FREG, C_NONE, C_SEXT,         44, 8, REGSB },
157
158         { AFMOVF,       C_LOREG,C_NONE, C_FREG,         45,12, 0 },
159         { AFMOVF,       C_LAUTO,C_NONE, C_FREG,         45,12, REGSP },
160         { AFMOVF,       C_LEXT, C_NONE, C_FREG,         45,12, REGSB },
161
162         { AFMOVD,       C_LOREG,C_NONE, C_FREG,         46,16, 0 },
163         { AFMOVD,       C_LAUTO,C_NONE, C_FREG,         46,16, REGSP },
164         { AFMOVD,       C_LEXT, C_NONE, C_FREG,         46,16, REGSB },
165
166         { AFMOVF,       C_FREG, C_NONE, C_LOREG,        47,12, 0 },
167         { AFMOVF,       C_FREG, C_NONE, C_LAUTO,        47,12, REGSP },
168         { AFMOVF,       C_FREG, C_NONE, C_LEXT,         47,12, REGSB },
169
170         { AFMOVD,       C_FREG, C_NONE, C_LOREG,        48,16, 0 },
171         { AFMOVD,       C_FREG, C_NONE, C_LAUTO,        48,16, REGSP },
172         { AFMOVD,       C_FREG, C_NONE, C_LEXT,         48,16, REGSB },
173
174         { AFMOVD,       C_FREG, C_NONE, C_FREG,         49, 8, 0 },
175         { AFCMPD,       C_FREG, C_NONE, C_FREG,         50, 4, 0 },
176
177         { AFABSF,       C_FREG, C_NONE, C_FREG,         57, 4, 0 },
178         { AFMOVF,       C_FREG, C_NONE, C_FREG,         57, 4, 0 },
179         { AFADDD,       C_FREG, C_NONE, C_FREG,         21, 4, 0 },
180         { AFADDD,       C_FREG, C_REG,  C_FREG,         21, 4, 0 },
181
182         { AWORD,        C_LCON, C_NONE, C_NONE,         51, 4, 0 },
183
184         { ADIV,         C_REG,  C_NONE, C_REG,          52,12, 0 },
185         { ADIV,         C_REG,  C_REG,  C_REG,          52,12, 0 },
186
187         { ADIVL,        C_REG,  C_NONE, C_REG,          53, 8, 0 },
188         { ADIVL,        C_REG,  C_REG,  C_REG,          53, 8, 0 },
189
190         { AMOD,         C_REG,  C_NONE, C_REG,          54,20, 0 },
191         { AMOD,         C_REG,  C_REG,  C_REG,          54,20, 0 },
192
193         { AMODL,        C_REG,  C_NONE, C_REG,          55,16, 0 },
194         { AMODL,        C_REG,  C_REG,  C_REG,          55,16, 0 },
195
196         { ABE,          C_NONE, C_NONE, C_SBRA,         56, 4, 0 },
197
198         { AXXX,         C_NONE, C_NONE, C_NONE,          0, 4, 0 },
199 };