Skip to content

Commit 392e229

Browse files
CyberShadowGeod24
authored andcommitted
spec/iasm.dd: Expand definition of Register and Register64
These were previously defined as a set of tokens loosely arranged in a table. Unfortunately, this layout was ambiguous, and if interpreted literally (or by a program) in the same way as the rest of the grammar, they would mean that the tokens on the same line actually have to appear one after another in the source file in the specified order. As such, we gave to sacrifice a bit of human-readability to achieve machine readability. If necessary, the former can be later improved using CSS or additional macros, such as MULTICOLS.
1 parent bbb84a4 commit 392e229

File tree

1 file changed

+167
-31
lines changed

1 file changed

+167
-31
lines changed

spec/iasm.dd

Lines changed: 167 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -183,44 +183,180 @@ $(H2 $(LNAME2 opcodes, Opcodes))
183183

184184
$(GRAMMAR
185185
$(GNAME Register):
186-
$(D AL) $(D AH) $(D AX) $(D EAX)
187-
$(D BL) $(D BH) $(D BX) $(D EBX)
188-
$(D CL) $(D CH) $(D CX) $(D ECX)
189-
$(D DL) $(D DH) $(D DX) $(D EDX)
190-
$(D BP) $(D EBP)
191-
$(D SP) $(D ESP)
192-
$(D DI) $(D EDI)
193-
$(D SI) $(D ESI)
194-
$(D ES) $(D CS) $(D SS) $(D DS) $(D GS) $(D FS)
195-
$(D CR0) $(D CR2) $(D CR3) $(D CR4)
196-
$(D DR0) $(D DR1) $(D DR2) $(D DR3) $(D DR6) $(D DR7)
197-
$(D TR3) $(D TR4) $(D TR5) $(D TR6) $(D TR7)
186+
$(D AL)
187+
$(D AH)
188+
$(D AX)
189+
$(D EAX)
190+
191+
$(D BL)
192+
$(D BH)
193+
$(D BX)
194+
$(D EBX)
195+
196+
$(D CL)
197+
$(D CH)
198+
$(D CX)
199+
$(D ECX)
200+
201+
$(D DL)
202+
$(D DH)
203+
$(D DX)
204+
$(D EDX)
205+
206+
$(D BP)
207+
$(D EBP)
208+
209+
$(D SP)
210+
$(D ESP)
211+
212+
$(D DI)
213+
$(D EDI)
214+
215+
$(D SI)
216+
$(D ESI)
217+
218+
$(D ES)
219+
$(D CS)
220+
$(D SS)
221+
$(D DS)
222+
$(D GS)
223+
$(D FS)
224+
225+
$(D CR0)
226+
$(D CR2)
227+
$(D CR3)
228+
$(D CR4)
229+
230+
$(D DR0)
231+
$(D DR1)
232+
$(D DR2)
233+
$(D DR3)
234+
$(D DR6)
235+
$(D DR7)
236+
237+
$(D TR3)
238+
$(D TR4)
239+
$(D TR5)
240+
$(D TR6)
241+
$(D TR7)
242+
198243
$(D ST)
199-
$(D ST(0)) $(D ST(1)) $(D ST(2)) $(D ST(3)) $(D ST(4)) $(D ST(5)) $(D ST(6)) $(D ST(7))
200-
$(D MM0) $(D MM1) $(D MM2) $(D MM3) $(D MM4) $(D MM5) $(D MM6) $(D MM7)
201-
$(D XMM0) $(D XMM1) $(D XMM2) $(D XMM3) $(D XMM4) $(D XMM5) $(D XMM6) $(D XMM7)
244+
245+
$(D ST(0))
246+
$(D ST(1))
247+
$(D ST(2))
248+
$(D ST(3))
249+
$(D ST(4))
250+
$(D ST(5))
251+
$(D ST(6))
252+
$(D ST(7))
253+
254+
$(D MM0)
255+
$(D MM1)
256+
$(D MM2)
257+
$(D MM3)
258+
$(D MM4)
259+
$(D MM5)
260+
$(D MM6)
261+
$(D MM7)
262+
263+
$(D XMM0)
264+
$(D XMM1)
265+
$(D XMM2)
266+
$(D XMM3)
267+
$(D XMM4)
268+
$(D XMM5)
269+
$(D XMM6)
270+
$(D XMM7)
202271
)
203272

204273
$(P $(D x86_64) adds these additional registers.)
205274

206275
$(GRAMMAR
207276
$(GNAME Register64):
208-
$(D RAX) $(D RBX) $(D RCX) $(D RDX)
209-
$(D BPL) $(D RBP)
210-
$(D SPL) $(D RSP)
211-
$(D DIL) $(D RDI)
212-
$(D SIL) $(D RSI)
213-
$(D R8B) $(D R8W) $(D R8D) $(D R8)
214-
$(D R9B) $(D R9W) $(D R9D) $(D R9)
215-
$(D R10B) $(D R10W) $(D R10D) $(D R10)
216-
$(D R11B) $(D R11W) $(D R11D) $(D R11)
217-
$(D R12B) $(D R12W) $(D R12D) $(D R12)
218-
$(D R13B) $(D R13W) $(D R13D) $(D R13)
219-
$(D R14B) $(D R14W) $(D R14D) $(D R14)
220-
$(D R15B) $(D R15W) $(D R15D) $(D R15)
221-
$(D XMM8) $(D XMM9) $(D XMM10) $(D XMM11) $(D XMM12) $(D XMM13) $(D XMM14) $(D XMM15)
222-
$(D YMM0) $(D YMM1) $(D YMM2) $(D YMM3) $(D YMM4) $(D YMM5) $(D YMM6) $(D YMM7)
223-
$(D YMM8) $(D YMM9) $(D YMM10) $(D YMM11) $(D YMM12) $(D YMM13) $(D YMM14) $(D YMM15)
277+
$(D RAX)
278+
$(D RBX)
279+
$(D RCX)
280+
$(D RDX)
281+
282+
$(D BPL)
283+
$(D RBP)
284+
285+
$(D SPL)
286+
$(D RSP)
287+
288+
$(D DIL)
289+
$(D RDI)
290+
291+
$(D SIL)
292+
$(D RSI)
293+
294+
$(D R8B)
295+
$(D R8W)
296+
$(D R8D)
297+
$(D R8)
298+
299+
$(D R9B)
300+
$(D R9W)
301+
$(D R9D)
302+
$(D R9)
303+
304+
$(D R10B)
305+
$(D R10W)
306+
$(D R10D)
307+
$(D R10)
308+
309+
$(D R11B)
310+
$(D R11W)
311+
$(D R11D)
312+
$(D R11)
313+
314+
$(D R12B)
315+
$(D R12W)
316+
$(D R12D)
317+
$(D R12)
318+
319+
$(D R13B)
320+
$(D R13W)
321+
$(D R13D)
322+
$(D R13)
323+
324+
$(D R14B)
325+
$(D R14W)
326+
$(D R14D)
327+
$(D R14)
328+
329+
$(D R15B)
330+
$(D R15W)
331+
$(D R15D)
332+
$(D R15)
333+
334+
$(D XMM8)
335+
$(D XMM9)
336+
$(D XMM10)
337+
$(D XMM11)
338+
$(D XMM12)
339+
$(D XMM13)
340+
$(D XMM14)
341+
$(D XMM15)
342+
343+
$(D YMM0)
344+
$(D YMM1)
345+
$(D YMM2)
346+
$(D YMM3)
347+
$(D YMM4)
348+
$(D YMM5)
349+
$(D YMM6)
350+
$(D YMM7)
351+
352+
$(D YMM8)
353+
$(D YMM9)
354+
$(D YMM10)
355+
$(D YMM11)
356+
$(D YMM12)
357+
$(D YMM13)
358+
$(D YMM14)
359+
$(D YMM15)
224360
)
225361

226362
$(H3 $(LNAME2 special_cases, Special Cases))

0 commit comments

Comments
 (0)