aboutsummaryrefslogtreecommitdiff
path: root/asm.peg
diff options
context:
space:
mode:
authorAndrew Chambers <[email protected]>2021-10-14 02:27:56 +1300
committerAndrew Chambers <[email protected]>2021-10-14 02:27:56 +1300
commit3964d1dc536bce2e7da15569b42e9ad1c7258d78 (patch)
treeb73d57a8ad814e315e179619af256859828516e0 /asm.peg
parent946fe07401b98590fd5b9e34f2162a71eb235c69 (diff)
Tidy parser.
Diffstat (limited to 'asm.peg')
-rw-r--r--asm.peg172
1 files changed, 86 insertions, 86 deletions
diff --git a/asm.peg b/asm.peg
index b864dd5..4372b1f 100644
--- a/asm.peg
+++ b/asm.peg
@@ -542,107 +542,107 @@ imm =
'$' ws? val:value
{ $$ = (Parsev) { .imm = (Imm){ .kind = ASM_IMM, .v = val.value, .nbytes = 0} }; }
-al = "%al" { $$ = REG(ASM_AL); }
-cl = "%cl" { $$ = REG(ASM_CL); }
-ax = "%ax" { $$ = REG(ASM_AX); }
-eax = "%eax" { $$ = REG(ASM_EAX); }
-rax = "%rax" { $$ = REG(ASM_RAX); }
-rip = "%rip" { $$ = REG(ASM_RIP); }
+al = "%al" { $$ = REG(AL); }
+cl = "%cl" { $$ = REG(CL); }
+ax = "%ax" { $$ = REG(AX); }
+eax = "%eax" { $$ = REG(EAX); }
+rax = "%rax" { $$ = REG(RAX); }
+rip = "%rip" { $$ = REG(RIP); }
r8 = '%' (
- "al" { $$ = REG(ASM_AL); }
- | "cl" { $$ = REG(ASM_CL); }
- | "dl" { $$ = REG(ASM_DL); }
- | "bl" { $$ = REG(ASM_BL); }
- | "spl" { $$ = REG(ASM_SPL); }
- | "bpl" { $$ = REG(ASM_BPL); }
- | "sil" { $$ = REG(ASM_SIL); }
- | "dil" { $$ = REG(ASM_DIL); }
- | "r8b" { $$ = REG(ASM_R8B); }
- | "r9b" { $$ = REG(ASM_R9B); }
- | "r10b" { $$ = REG(ASM_R10B); }
- | "r11b" { $$ = REG(ASM_R11B); }
- | "r12b" { $$ = REG(ASM_R12B); }
- | "r13b" { $$ = REG(ASM_R13B); }
- | "r14b" { $$ = REG(ASM_R14B); }
- | "r15b" { $$ = REG(ASM_R15B); }
+ "al" { $$ = REG(AL); }
+ | "cl" { $$ = REG(CL); }
+ | "dl" { $$ = REG(DL); }
+ | "bl" { $$ = REG(BL); }
+ | "spl" { $$ = REG(SPL); }
+ | "bpl" { $$ = REG(BPL); }
+ | "sil" { $$ = REG(SIL); }
+ | "dil" { $$ = REG(DIL); }
+ | "r8b" { $$ = REG(R8B); }
+ | "r9b" { $$ = REG(R9B); }
+ | "r10b" { $$ = REG(R10B); }
+ | "r11b" { $$ = REG(R11B); }
+ | "r12b" { $$ = REG(R12B); }
+ | "r13b" { $$ = REG(R13B); }
+ | "r14b" { $$ = REG(R14B); }
+ | "r15b" { $$ = REG(R15B); }
)
r16 = '%' (
- "ax" { $$ = REG(ASM_AX); }
- | "cx" { $$ = REG(ASM_CX); }
- | "dx" { $$ = REG(ASM_DX); }
- | "bx" { $$ = REG(ASM_BX); }
- | "sp" { $$ = REG(ASM_SP); }
- | "bp" { $$ = REG(ASM_BP); }
- | "si" { $$ = REG(ASM_SI); }
- | "di" { $$ = REG(ASM_DI); }
- | "r8w" { $$ = REG(ASM_R8W); }
- | "r9w" { $$ = REG(ASM_R9W); }
- | "r10w" { $$ = REG(ASM_R10W); }
- | "r11w" { $$ = REG(ASM_R11W); }
- | "r12w" { $$ = REG(ASM_R12W); }
- | "r13w" { $$ = REG(ASM_R13W); }
- | "r14w" { $$ = REG(ASM_R14W); }
- | "r15w" { $$ = REG(ASM_R15W); }
+ "ax" { $$ = REG(AX); }
+ | "cx" { $$ = REG(CX); }
+ | "dx" { $$ = REG(DX); }
+ | "bx" { $$ = REG(BX); }
+ | "sp" { $$ = REG(SP); }
+ | "bp" { $$ = REG(BP); }
+ | "si" { $$ = REG(SI); }
+ | "di" { $$ = REG(DI); }
+ | "r8w" { $$ = REG(R8W); }
+ | "r9w" { $$ = REG(R9W); }
+ | "r10w" { $$ = REG(R10W); }
+ | "r11w" { $$ = REG(R11W); }
+ | "r12w" { $$ = REG(R12W); }
+ | "r13w" { $$ = REG(R13W); }
+ | "r14w" { $$ = REG(R14W); }
+ | "r15w" { $$ = REG(R15W); }
)
r32 = '%' (
- "eax" { $$ = REG(ASM_EAX); }
- | "ecx" { $$ = REG(ASM_ECX); }
- | "edx" { $$ = REG(ASM_EDX); }
- | "ebx" { $$ = REG(ASM_EBX); }
- | "esp" { $$ = REG(ASM_ESP); }
- | "ebp" { $$ = REG(ASM_EBP); }
- | "esi" { $$ = REG(ASM_ESI); }
- | "edi" { $$ = REG(ASM_EDI); }
- | "r8d" { $$ = REG(ASM_R8D); }
- | "r9d" { $$ = REG(ASM_R9D); }
- | "r10d" { $$ = REG(ASM_R10D); }
- | "r11d" { $$ = REG(ASM_R11D); }
- | "r12d" { $$ = REG(ASM_R12D); }
- | "r13d" { $$ = REG(ASM_R13D); }
- | "r14d" { $$ = REG(ASM_R14D); }
- | "r15d" { $$ = REG(ASM_R15D); }
+ "eax" { $$ = REG(EAX); }
+ | "ecx" { $$ = REG(ECX); }
+ | "edx" { $$ = REG(EDX); }
+ | "ebx" { $$ = REG(EBX); }
+ | "esp" { $$ = REG(ESP); }
+ | "ebp" { $$ = REG(EBP); }
+ | "esi" { $$ = REG(ESI); }
+ | "edi" { $$ = REG(EDI); }
+ | "r8d" { $$ = REG(R8D); }
+ | "r9d" { $$ = REG(R9D); }
+ | "r10d" { $$ = REG(R10D); }
+ | "r11d" { $$ = REG(R11D); }
+ | "r12d" { $$ = REG(R12D); }
+ | "r13d" { $$ = REG(R13D); }
+ | "r14d" { $$ = REG(R14D); }
+ | "r15d" { $$ = REG(R15D); }
)
r64 = "%r" (
- "ax" { $$ = REG(ASM_RAX); }
- | "cx" { $$ = REG(ASM_RCX); }
- | "dx" { $$ = REG(ASM_RDX); }
- | "bx" { $$ = REG(ASM_RBX); }
- | "sp" { $$ = REG(ASM_RSP); }
- | "bp" { $$ = REG(ASM_RBP); }
- | "si" { $$ = REG(ASM_RSI); }
- | "di" { $$ = REG(ASM_RDI); }
- | "8" ![lwb] { $$ = REG(ASM_R8); }
- | "9" ![lwb] { $$ = REG(ASM_R9); }
- | "10" ![lwb] { $$ = REG(ASM_R10); }
- | "11" ![lwb] { $$ = REG(ASM_R11); }
- | "12" ![lwb] { $$ = REG(ASM_R12); }
- | "13" ![lwb] { $$ = REG(ASM_R13); }
- | "14" ![lwb] { $$ = REG(ASM_R14); }
- | "15" ![lwb] { $$ = REG(ASM_R15); }
+ "ax" { $$ = REG(RAX); }
+ | "cx" { $$ = REG(RCX); }
+ | "dx" { $$ = REG(RDX); }
+ | "bx" { $$ = REG(RBX); }
+ | "sp" { $$ = REG(RSP); }
+ | "bp" { $$ = REG(RBP); }
+ | "si" { $$ = REG(RSI); }
+ | "di" { $$ = REG(RDI); }
+ | "8" ![lwb] { $$ = REG(R8); }
+ | "9" ![lwb] { $$ = REG(R9); }
+ | "10" ![lwb] { $$ = REG(R10); }
+ | "11" ![lwb] { $$ = REG(R11); }
+ | "12" ![lwb] { $$ = REG(R12); }
+ | "13" ![lwb] { $$ = REG(R13); }
+ | "14" ![lwb] { $$ = REG(R14); }
+ | "15" ![lwb] { $$ = REG(R15); }
)
xmm = "%x" (
# Reverse order due to peg ordering.
- "mm15" { $$ = REG(ASM_XMM15); }
- | "mm14" { $$ = REG(ASM_XMM14); }
- | "mm13" { $$ = REG(ASM_XMM13); }
- | "mm12" { $$ = REG(ASM_XMM12); }
- | "mm11" { $$ = REG(ASM_XMM11); }
- | "mm10" { $$ = REG(ASM_XMM10); }
- | "mm9" { $$ = REG(ASM_XMM7); }
- | "mm8" { $$ = REG(ASM_XMM7); }
- | "mm7" { $$ = REG(ASM_XMM7); }
- | "mm6" { $$ = REG(ASM_XMM6); }
- | "mm5" { $$ = REG(ASM_XMM5); }
- | "mm4" { $$ = REG(ASM_XMM4); }
- | "mm3" { $$ = REG(ASM_XMM3); }
- | "mm2" { $$ = REG(ASM_XMM2); }
- | "mm1" { $$ = REG(ASM_XMM1); }
- | "mm0" { $$ = REG(ASM_XMM0); }
+ "mm15" { $$ = REG(XMM15); }
+ | "mm14" { $$ = REG(XMM14); }
+ | "mm13" { $$ = REG(XMM13); }
+ | "mm12" { $$ = REG(XMM12); }
+ | "mm11" { $$ = REG(XMM11); }
+ | "mm10" { $$ = REG(XMM10); }
+ | "mm9" { $$ = REG(XMM7); }
+ | "mm8" { $$ = REG(XMM7); }
+ | "mm7" { $$ = REG(XMM7); }
+ | "mm6" { $$ = REG(XMM6); }
+ | "mm5" { $$ = REG(XMM5); }
+ | "mm4" { $$ = REG(XMM4); }
+ | "mm3" { $$ = REG(XMM3); }
+ | "mm2" { $$ = REG(XMM2); }
+ | "mm1" { $$ = REG(XMM1); }
+ | "mm0" { $$ = REG(XMM0); }
)
# We disallow newlines in our strings, it is simpler for lineno tracking.