Add Definition kind for asm register operand

This commit is contained in:
Lukas Wirth 2024-09-05 10:53:07 +02:00
parent 164b15bc62
commit a600e1df73
12 changed files with 59 additions and 35 deletions

View file

@ -453,9 +453,13 @@ fn parse_clobber_abi(p: &mut Parser<'_>) {
fn parse_reg(p: &mut Parser<'_>) {
p.expect(T!['(']);
if p.at(T![ident]) {
name_ref(p)
let m = p.start();
name_ref(p);
m.complete(p, ASM_REG_SPEC);
} else if p.at(T![string]) {
p.bump_any()
let m = p.start();
p.bump_any();
m.complete(p, ASM_REG_SPEC);
} else {
p.err_and_bump("expected register name");
}

View file

@ -35,16 +35,18 @@ SOURCE_FILE
STRING "\"add {x}, {tmp}\""
COMMA ","
WHITESPACE "\n "
NAME
IDENT "x"
WHITESPACE " "
EQ "="
WHITESPACE " "
ASM_REG_OPERAND
INOUT_KW "inout"
NAME
IDENT "x"
WHITESPACE " "
EQ "="
WHITESPACE " "
ASM_DIR_SPEC
INOUT_KW "inout"
L_PAREN "("
NAME_REF
IDENT "reg"
ASM_REG_SPEC
NAME_REF
IDENT "reg"
R_PAREN ")"
WHITESPACE " "
PATH_EXPR
@ -54,16 +56,18 @@ SOURCE_FILE
IDENT "x"
COMMA ","
WHITESPACE "\n "
NAME
IDENT "tmp"
WHITESPACE " "
EQ "="
WHITESPACE " "
ASM_REG_OPERAND
OUT_KW "out"
NAME
IDENT "tmp"
WHITESPACE " "
EQ "="
WHITESPACE " "
ASM_DIR_SPEC
OUT_KW "out"
L_PAREN "("
NAME_REF
IDENT "reg"
ASM_REG_SPEC
NAME_REF
IDENT "reg"
R_PAREN ")"
WHITESPACE " "
UNDERSCORE_EXPR