From 81a32ec305ee871d8129978bf3d57bc108bec46b Mon Sep 17 00:00:00 2001 From: noneofyourbusiness Date: Sat, 2 Dec 2023 17:07:16 +0100 Subject: [PATCH] riscv64-asm.c: asm_emit_j: correct check of immediate --- riscv64-asm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/riscv64-asm.c b/riscv64-asm.c index 8da006fc..1e6bada8 100644 --- a/riscv64-asm.c +++ b/riscv64-asm.c @@ -291,8 +291,9 @@ static void asm_emit_j(int token, uint32_t opcode, const Operand* rd, const Oper imm = rs2->e.v; - if (imm >= 0x100000) { - tcc_error("'%s': Expected second source operand that is an immediate value between 0 and 0xfffff", get_tok_str(token, NULL)); + /* even offsets in a +- 1 MiB range */ + if (imm > 0x1ffffe) { + tcc_error("'%s': Expected second source operand that is an immediate value between 0 and 0x1fffff", get_tok_str(token, NULL)); return; }