]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/vc/v.out.h
upas/fs: remove useless loop in rf822()
[plan9front.git] / sys / src / cmd / vc / v.out.h
1 #define NSNAME  8
2 #define NSYM    50
3 #define NREG    32
4
5 #define NOPROF  (1<<0)
6 #define DUPOK   (1<<1)
7
8 #define REGZERO         0
9 #define REGRET          1
10 #define REGARG          1
11 /* compiler allocates R1 up as temps */
12 /* compiler allocates register variables R3-R23 */
13 #define REGEXT          25
14 /* compiler allocates external registers R25 down */
15 /* dont use R26 R27 */
16 #define REGTMP          28
17 #define REGSP           29
18 #define REGSB           30
19 #define REGLINK         31
20
21 #define FREGRET         0
22 /* compiler allocates register variables F4-F22 */
23 /* compiler allocates external registers F22 down */
24 #define FREGEXT         22
25 #define FREGZERO        24      /* both float and double */
26 #define FREGHALF        26      /* double */
27 #define FREGONE         28      /* double */
28 #define FREGTWO         30      /* double */
29
30 enum    as
31 {
32         AXXX,
33
34         AABSD,
35         AABSF,
36         AABSW,
37         AADD,
38         AADDD,
39         AADDF,
40         AADDU,
41         AADDW,
42         AAND,
43         ABEQ,
44         ABFPF,
45         ABFPT,
46         ABGEZ,
47         ABGEZAL,
48         ABGTZ,
49         ABLEZ,
50         ABLTZ,
51         ABLTZAL,
52         ABNE,
53         ABREAK,
54         ACMPEQD,
55         ACMPEQF,
56         ACMPGED,
57         ACMPGEF,
58         ACMPGTD,
59         ACMPGTF,
60         ADATA,
61         ADIV,
62         ADIVD,
63         ADIVF,
64         ADIVU,
65         ADIVW,
66         AGLOBL,
67         AGOK,
68         AHISTORY,
69         AJAL,
70         AJMP,
71         AMOVB,
72         AMOVBU,
73         AMOVD,
74         AMOVDF,
75         AMOVDW,
76         AMOVF,
77         AMOVFD,
78         AMOVFW,
79         AMOVH,
80         AMOVHU,
81         AMOVW,
82         AMOVWD,
83         AMOVWF,
84         AMOVWL,
85         AMOVWR,
86         AMUL,
87         AMULD,
88         AMULF,
89         AMULU,
90         AMULW,
91         ANAME,
92         ANEGD,
93         ANEGF,
94         ANEGW,
95         ANOP,
96         ANOR,
97         AOR,
98         AREM,
99         AREMU,
100         ARET,
101         ARFE,
102         ASGT,
103         ASGTU,
104         ASLL,
105         ASRA,
106         ASRL,
107         ASUB,
108         ASUBD,
109         ASUBF,
110         ASUBU,
111         ASUBW,
112         ASYSCALL,
113         ATEXT,
114         ATLBP,
115         ATLBR,
116         ATLBWI,
117         ATLBWR,
118         AWORD,
119         AXOR,
120
121         AEND,
122
123         AMOVV,
124         AMOVVL,
125         AMOVVR,
126         ASLLV,
127         ASRAV,
128         ASRLV,
129         ADIVV,
130         ADIVVU,
131         AREMV,
132         AREMVU,
133         AMULV,
134         AMULVU,
135         AADDV,
136         AADDVU,
137         ASUBV,
138         ASUBVU,
139
140         ADYNT,
141         AINIT,
142
143         ABCASE,
144         ACASE,
145
146         ATRUNCFV,
147         ATRUNCDV,
148         ATRUNCFW,
149         ATRUNCDW,
150         AMOVWU,
151         AMOVFV,
152         AMOVDV,
153         AMOVVF,
154         AMOVVD,
155
156         ASIGNAME,
157
158         ALAST,
159 };
160
161 /* type/name */
162 #define D_GOK   0
163 #define D_NONE  1
164
165 /* type */
166 #define D_BRANCH (D_NONE+1)
167 #define D_OREG  (D_NONE+2)
168 #define D_EXTERN (D_NONE+3)     /* name */
169 #define D_STATIC (D_NONE+4)     /* name */
170 #define D_AUTO  (D_NONE+5)      /* name */
171 #define D_PARAM (D_NONE+6)      /* name */
172 #define D_CONST (D_NONE+7)
173 #define D_FCONST (D_NONE+8)
174 #define D_SCONST (D_NONE+9)
175 #define D_HI    (D_NONE+10)
176 #define D_LO    (D_NONE+11)
177 #define D_REG   (D_NONE+12)
178 #define D_FREG  (D_NONE+13)
179 #define D_FCREG (D_NONE+14)
180 #define D_MREG  (D_NONE+15)
181 #define D_FILE  (D_NONE+16)
182 #define D_OCONST (D_NONE+17)
183 #define D_FILE1 (D_NONE+18)
184 #define D_VCONST (D_NONE+19)
185
186 /*
187  * this is the ranlib header
188  */
189 #define SYMDEF  "__.SYMDEF"
190
191 /*
192  * this is the simulated IEEE floating point
193  */
194 typedef struct  ieee    Ieee;
195 struct  ieee
196 {
197         long    l;      /* contains ls-man      0xffffffff */
198         long    h;      /* contains sign        0x80000000
199                                     exp         0x7ff00000
200                                     ms-man      0x000fffff */
201 };