History

fixed and added missing file for x86_64 assembly

Frederic Feret committed 17 years ago

Commit ae23c461 parent b7d7af42 files · +215 −1Browse files

Unified · Split

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

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t