re-add accidentally deleted printf("\n"); to tests2/97*.c
[tinycc.git] / arm-tok.h
blobf73add1410879689ac2ff4f5d9751daaa95ac999
1 /* ------------------------------------------------------------------ */
2 /* WARNING: relative order of tokens is important. */
4 /* register */
6 DEF_ASM(r0)
7 DEF_ASM(r1)
8 DEF_ASM(r2)
9 DEF_ASM(r3)
10 DEF_ASM(r4)
11 DEF_ASM(r5)
12 DEF_ASM(r6)
13 DEF_ASM(r7)
14 DEF_ASM(r8)
15 DEF_ASM(r9)
16 DEF_ASM(r10)
17 DEF_ASM(r11) /* fp */
18 DEF_ASM(r12) /* ip[c] */
19 DEF_ASM(r13) /* sp */
20 DEF_ASM(r14) /* lr */
21 DEF_ASM(r15) /* pc */
23 /* register macros */
25 DEF_ASM(fp) /* alias for r11 */
26 DEF_ASM(ip) /* alias for r12 */
27 DEF_ASM(sp) /* alias for r13 */
28 DEF_ASM(lr) /* alias for r14 */
29 DEF_ASM(pc) /* alias for r15 */
31 /* data processing directives */
33 DEF_ASM(asl)
35 #define ARM_INSTRUCTION_GROUP(tok) ((((tok) - TOK_ASM_nopeq) & 0xFFFFFFF0) + TOK_ASM_nopeq)
37 /* Note: condition code is 4 bits */
38 #define DEF_ASM_CONDED(x) \
39 DEF(TOK_ASM_ ## x ## eq, #x "eq") \
40 DEF(TOK_ASM_ ## x ## ne, #x "ne") \
41 DEF(TOK_ASM_ ## x ## cs, #x "cs") \
42 DEF(TOK_ASM_ ## x ## cc, #x "cc") \
43 DEF(TOK_ASM_ ## x ## mi, #x "mi") \
44 DEF(TOK_ASM_ ## x ## pl, #x "pl") \
45 DEF(TOK_ASM_ ## x ## vs, #x "vs") \
46 DEF(TOK_ASM_ ## x ## vc, #x "vc") \
47 DEF(TOK_ASM_ ## x ## hi, #x "hi") \
48 DEF(TOK_ASM_ ## x ## ls, #x "ls") \
49 DEF(TOK_ASM_ ## x ## ge, #x "ge") \
50 DEF(TOK_ASM_ ## x ## lt, #x "lt") \
51 DEF(TOK_ASM_ ## x ## gt, #x "gt") \
52 DEF(TOK_ASM_ ## x ## le, #x "le") \
53 DEF(TOK_ASM_ ## x, #x) \
54 DEF(TOK_ASM_ ## x ## rsvd, #x "rsvd")
56 /* Note: add new tokens after nop (MUST always use DEF_ASM_CONDED) */
58 DEF_ASM_CONDED(nop)
59 DEF_ASM_CONDED(wfe)
60 DEF_ASM_CONDED(wfi)
61 DEF_ASM_CONDED(swi)
63 /* misc */
64 DEF_ASM_CONDED(clz)
66 /* size conversion */
68 DEF_ASM_CONDED(sxtb)
69 DEF_ASM_CONDED(sxth)
70 DEF_ASM_CONDED(uxtb)
71 DEF_ASM_CONDED(uxth)
72 DEF_ASM_CONDED(movt)
73 DEF_ASM_CONDED(movw)
75 /* multiplication */
77 DEF_ASM_CONDED(mul)
78 DEF_ASM_CONDED(muls)
79 DEF_ASM_CONDED(mla)
80 DEF_ASM_CONDED(mlas)
81 DEF_ASM_CONDED(smull)
82 DEF_ASM_CONDED(smulls)
83 DEF_ASM_CONDED(umull)
84 DEF_ASM_CONDED(umulls)
85 DEF_ASM_CONDED(smlal)
86 DEF_ASM_CONDED(smlals)
87 DEF_ASM_CONDED(umlal)
88 DEF_ASM_CONDED(umlals)
90 /* load/store */
92 DEF_ASM_CONDED(ldr)
93 DEF_ASM_CONDED(ldrb)
94 DEF_ASM_CONDED(str)
95 DEF_ASM_CONDED(strb)
96 DEF_ASM_CONDED(ldrex)
97 DEF_ASM_CONDED(ldrexb)
98 DEF_ASM_CONDED(strex)
99 DEF_ASM_CONDED(strexb)
100 DEF_ASM_CONDED(ldrh)
101 DEF_ASM_CONDED(ldrsh)
102 DEF_ASM_CONDED(ldrsb)
103 DEF_ASM_CONDED(strh)
105 DEF_ASM_CONDED(stmda)
106 DEF_ASM_CONDED(ldmda)
107 DEF_ASM_CONDED(stm)
108 DEF_ASM_CONDED(ldm)
109 DEF_ASM_CONDED(stmia)
110 DEF_ASM_CONDED(ldmia)
111 DEF_ASM_CONDED(stmdb)
112 DEF_ASM_CONDED(ldmdb)
113 DEF_ASM_CONDED(stmib)
114 DEF_ASM_CONDED(ldmib)
116 /* instruction macros */
118 DEF_ASM_CONDED(push)
119 DEF_ASM_CONDED(pop)
121 /* branches */
123 DEF_ASM_CONDED(b)
124 DEF_ASM_CONDED(bl)
125 DEF_ASM_CONDED(bx)
126 DEF_ASM_CONDED(blx)
128 /* data processing instructions; order is important */
130 DEF_ASM_CONDED(and)
131 DEF_ASM_CONDED(ands)
132 DEF_ASM_CONDED(eor)
133 DEF_ASM_CONDED(eors)
134 DEF_ASM_CONDED(sub)
135 DEF_ASM_CONDED(subs)
136 DEF_ASM_CONDED(rsb)
137 DEF_ASM_CONDED(rsbs)
138 DEF_ASM_CONDED(add)
139 DEF_ASM_CONDED(adds)
140 DEF_ASM_CONDED(adc)
141 DEF_ASM_CONDED(adcs)
142 DEF_ASM_CONDED(sbc)
143 DEF_ASM_CONDED(sbcs)
144 DEF_ASM_CONDED(rsc)
145 DEF_ASM_CONDED(rscs)
146 DEF_ASM_CONDED(tst)
147 DEF_ASM_CONDED(tsts) // necessary here--but not useful to the user
148 DEF_ASM_CONDED(teq)
149 DEF_ASM_CONDED(teqs) // necessary here--but not useful to the user
150 DEF_ASM_CONDED(cmp)
151 DEF_ASM_CONDED(cmps) // necessary here--but not useful to the user
152 DEF_ASM_CONDED(cmn)
153 DEF_ASM_CONDED(cmns) // necessary here--but not useful to the user
154 DEF_ASM_CONDED(orr)
155 DEF_ASM_CONDED(orrs)
156 DEF_ASM_CONDED(mov)
157 DEF_ASM_CONDED(movs)
158 DEF_ASM_CONDED(bic)
159 DEF_ASM_CONDED(bics)
160 DEF_ASM_CONDED(mvn)
161 DEF_ASM_CONDED(mvns)
163 DEF_ASM_CONDED(lsl)
164 DEF_ASM_CONDED(lsls)
165 DEF_ASM_CONDED(lsr)
166 DEF_ASM_CONDED(lsrs)
167 DEF_ASM_CONDED(asr)
168 DEF_ASM_CONDED(asrs)
169 DEF_ASM_CONDED(ror)
170 DEF_ASM_CONDED(rors)
171 DEF_ASM_CONDED(rrx)
172 DEF_ASM_CONDED(rrxs)