mirror of
https://github.com/odin-lang/Odin.git
synced 2026-08-25 06:21:35 +00:00
Handle disp parameter correctly
This commit is contained in:
@@ -977,7 +977,9 @@ gb_internal void check_asm_instruction_operand(AsmCtx *asm_ctx, CheckerContext *
|
||||
default:
|
||||
{
|
||||
gbString s = expr_to_string(index.expr);
|
||||
error(index.expr, "An index must be an integer register, got %s", s);
|
||||
gbString t = type_to_string(index.type);
|
||||
error(index.expr, "An index must be an integer register, got %s of type %s", s, t);
|
||||
gb_string_free(t);
|
||||
gb_string_free(s);
|
||||
ok_kind = false;
|
||||
}
|
||||
|
||||
@@ -2459,12 +2459,12 @@ gb_internal Ast *parse_asm_operand(AstFile *f, bool allow_memory_operand) {
|
||||
scale_op = f->prev_token;
|
||||
index = possible_index;
|
||||
scale = parse_asm_operand(f, false);
|
||||
if (allow_token(f, Token_Add)) {
|
||||
disp = parse_asm_operand(f, false);
|
||||
}
|
||||
} else {
|
||||
index = possible_index;
|
||||
}
|
||||
if (allow_token(f, Token_Add)) {
|
||||
disp = parse_asm_operand(f, false);
|
||||
}
|
||||
}
|
||||
|
||||
Token close = expect_token(f, Token_CloseBracket);
|
||||
|
||||
Reference in New Issue
Block a user