Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 1
/* ------------------------------------------------------------------ */
2
/* WARNING: relative order of tokens is important. */
3
 
4
/* register */
5
 DEF_ASM(al)
6
 DEF_ASM(cl)
7
 DEF_ASM(dl)
8
 DEF_ASM(bl)
9
 DEF_ASM(ah)
10
 DEF_ASM(ch)
11
 DEF_ASM(dh)
12
 DEF_ASM(bh)
13
 DEF_ASM(ax)
14
 DEF_ASM(cx)
15
 DEF_ASM(dx)
16
 DEF_ASM(bx)
17
 DEF_ASM(sp)
18
 DEF_ASM(bp)
19
 DEF_ASM(si)
20
 DEF_ASM(di)
21
 DEF_ASM(eax)
22
 DEF_ASM(ecx)
23
 DEF_ASM(edx)
24
 DEF_ASM(ebx)
25
 DEF_ASM(esp)
26
 DEF_ASM(ebp)
27
 DEF_ASM(esi)
28
 DEF_ASM(edi)
29
#ifdef TCC_TARGET_X86_64
30
 DEF_ASM(rax)
31
 DEF_ASM(rcx)
32
 DEF_ASM(rdx)
33
 DEF_ASM(rbx)
34
 DEF_ASM(rsp)
35
 DEF_ASM(rbp)
36
 DEF_ASM(rsi)
37
 DEF_ASM(rdi)
38
#endif
39
 DEF_ASM(mm0)
40
 DEF_ASM(mm1)
41
 DEF_ASM(mm2)
42
 DEF_ASM(mm3)
43
 DEF_ASM(mm4)
44
 DEF_ASM(mm5)
45
 DEF_ASM(mm6)
46
 DEF_ASM(mm7)
47
 DEF_ASM(xmm0)
48
 DEF_ASM(xmm1)
49
 DEF_ASM(xmm2)
50
 DEF_ASM(xmm3)
51
 DEF_ASM(xmm4)
52
 DEF_ASM(xmm5)
53
 DEF_ASM(xmm6)
54
 DEF_ASM(xmm7)
55
 DEF_ASM(cr0)
56
 DEF_ASM(cr1)
57
 DEF_ASM(cr2)
58
 DEF_ASM(cr3)
59
 DEF_ASM(cr4)
60
 DEF_ASM(cr5)
61
 DEF_ASM(cr6)
62
 DEF_ASM(cr7)
63
 DEF_ASM(tr0)
64
 DEF_ASM(tr1)
65
 DEF_ASM(tr2)
66
 DEF_ASM(tr3)
67
 DEF_ASM(tr4)
68
 DEF_ASM(tr5)
69
 DEF_ASM(tr6)
70
 DEF_ASM(tr7)
71
 DEF_ASM(db0)
72
 DEF_ASM(db1)
73
 DEF_ASM(db2)
74
 DEF_ASM(db3)
75
 DEF_ASM(db4)
76
 DEF_ASM(db5)
77
 DEF_ASM(db6)
78
 DEF_ASM(db7)
79
 DEF_ASM(dr0)
80
 DEF_ASM(dr1)
81
 DEF_ASM(dr2)
82
 DEF_ASM(dr3)
83
 DEF_ASM(dr4)
84
 DEF_ASM(dr5)
85
 DEF_ASM(dr6)
86
 DEF_ASM(dr7)
87
 DEF_ASM(es)
88
 DEF_ASM(cs)
89
 DEF_ASM(ss)
90
 DEF_ASM(ds)
91
 DEF_ASM(fs)
92
 DEF_ASM(gs)
93
 DEF_ASM(st)
94
 
95
 /* generic two operands */
96
 DEF_BWLX(mov)
97
 
98
 DEF_BWLX(add)
99
 DEF_BWLX(or)
100
 DEF_BWLX(adc)
101
 DEF_BWLX(sbb)
102
 DEF_BWLX(and)
103
 DEF_BWLX(sub)
104
 DEF_BWLX(xor)
105
 DEF_BWLX(cmp)
106
 
107
 /* unary ops */
108
 DEF_BWLX(inc)
109
 DEF_BWLX(dec)
110
 DEF_BWLX(not)
111
 DEF_BWLX(neg)
112
 DEF_BWLX(mul)
113
 DEF_BWLX(imul)
114
 DEF_BWLX(div)
115
 DEF_BWLX(idiv)
116
 
117
 DEF_BWLX(xchg)
118
 DEF_BWLX(test)
119
 
120
 /* shifts */
121
 DEF_BWLX(rol)
122
 DEF_BWLX(ror)
123
 DEF_BWLX(rcl)
124
 DEF_BWLX(rcr)
125
 DEF_BWLX(shl)
126
 DEF_BWLX(shr)
127
 DEF_BWLX(sar)
128
 
129
 DEF_ASM(shldw)
130
 DEF_ASM(shldl)
131
 DEF_ASM(shld)
132
 DEF_ASM(shrdw)
133
 DEF_ASM(shrdl)
134
 DEF_ASM(shrd)
135
 
136
 DEF_ASM(pushw)
137
 DEF_ASM(pushl)
138
#ifdef TCC_TARGET_X86_64
139
 DEF_ASM(pushq)
140
#endif
141
 DEF_ASM(push)
142
 
143
 DEF_ASM(popw)
144
 DEF_ASM(popl)
145
#ifdef TCC_TARGET_X86_64
146
 DEF_ASM(popq)
147
#endif
148
 DEF_ASM(pop)
149
 
150
 DEF_BWL(in)
151
 DEF_BWL(out)
152
 
153
 DEF_WL(movzb)
154
 DEF_ASM(movzwl)
155
 DEF_ASM(movsbw)
156
 DEF_ASM(movsbl)
157
 DEF_ASM(movswl)
158
#ifdef TCC_TARGET_X86_64
159
 DEF_ASM(movslq)
160
#endif
161
 
162
 DEF_WLX(lea)
163
 
164
 DEF_ASM(les)
165
 DEF_ASM(lds)
166
 DEF_ASM(lss)
167
 DEF_ASM(lfs)
168
 DEF_ASM(lgs)
169
 
170
 DEF_ASM(call)
171
 DEF_ASM(jmp)
172
 DEF_ASM(lcall)
173
 DEF_ASM(ljmp)
174
 
175
 DEF_ASMTEST(j,)
176
 
177
 DEF_ASMTEST(set,)
178
 DEF_ASMTEST(set,b)
179
 DEF_ASMTEST(cmov,)
180
 
181
 DEF_WLX(bsf)
182
 DEF_WLX(bsr)
183
 DEF_WLX(bt)
184
 DEF_WLX(bts)
185
 DEF_WLX(btr)
186
 DEF_WLX(btc)
187
 
188
 DEF_WLX(lsl)
189
 
190
 /* generic FP ops */
191
 DEF_FP(add)
192
 DEF_FP(mul)
193
 
194
 DEF_ASM(fcom)
195
 DEF_ASM(fcom_1) /* non existent op, just to have a regular table */
196
 DEF_FP1(com)
197
 
198
 DEF_FP(comp)
199
 DEF_FP(sub)
200
 DEF_FP(subr)
201
 DEF_FP(div)
202
 DEF_FP(divr)
203
 
204
 DEF_BWLX(xadd)
205
 DEF_BWLX(cmpxchg)
206
 
207
 /* string ops */
208
 DEF_BWLX(cmps)
209
 DEF_BWLX(scmp)
210
 DEF_BWL(ins)
211
 DEF_BWL(outs)
212
 DEF_BWLX(lods)
213
 DEF_BWLX(slod)
214
 DEF_BWLX(movs)
215
 DEF_BWLX(smov)
216
 DEF_BWLX(scas)
217
 DEF_BWLX(ssca)
218
 DEF_BWLX(stos)
219
 DEF_BWLX(ssto)
220
 
221
 /* generic asm ops */
222
#define ALT(x)
223
#define DEF_ASM_OP0(name, opcode) DEF_ASM(name)
224
#define DEF_ASM_OP0L(name, opcode, group, instr_type)
225
#define DEF_ASM_OP1(name, opcode, group, instr_type, op0)
226
#define DEF_ASM_OP2(name, opcode, group, instr_type, op0, op1)
227
#define DEF_ASM_OP3(name, opcode, group, instr_type, op0, op1, op2)
228
#ifdef TCC_TARGET_X86_64
229
# include "x86_64-asm.h"
230
#else
231
# include "i386-asm.h"
232
#endif
233
 
234
#define ALT(x)
235
#define DEF_ASM_OP0(name, opcode)
236
#define DEF_ASM_OP0L(name, opcode, group, instr_type) DEF_ASM(name)
237
#define DEF_ASM_OP1(name, opcode, group, instr_type, op0) DEF_ASM(name)
238
#define DEF_ASM_OP2(name, opcode, group, instr_type, op0, op1) DEF_ASM(name)
239
#define DEF_ASM_OP3(name, opcode, group, instr_type, op0, op1, op2) DEF_ASM(name)
240
#ifdef TCC_TARGET_X86_64
241
# include "x86_64-asm.h"
242
#else
243
# include "i386-asm.h"
244
#endif