diff options
| author | Andrew Chambers <[email protected]> | 2021-10-14 02:27:56 +1300 |
|---|---|---|
| committer | Andrew Chambers <[email protected]> | 2021-10-14 02:27:56 +1300 |
| commit | 3964d1dc536bce2e7da15569b42e9ad1c7258d78 (patch) | |
| tree | b73d57a8ad814e315e179619af256859828516e0 /asm.peg | |
| parent | 946fe07401b98590fd5b9e34f2162a71eb235c69 (diff) | |
Tidy parser.
Diffstat (limited to 'asm.peg')
| -rw-r--r-- | asm.peg | 172 |
1 files changed, 86 insertions, 86 deletions
@@ -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. |
