From 87a210919c51093879604720e3030a8814377246 Mon Sep 17 00:00:00 2001 From: Lucas Clemente Vella Date: Mon, 29 Jan 2024 19:33:27 +0000 Subject: [PATCH] In off(reg) syntax, makes register optinal, defaulting to x0. --- riscv/src/compiler.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/riscv/src/compiler.rs b/riscv/src/compiler.rs index 8987f578e..cbe5eb718 100644 --- a/riscv/src/compiler.rs +++ b/riscv/src/compiler.rs @@ -885,6 +885,10 @@ fn rro(args: &[Argument]) -> (Register, Register, u32) { *r2, expression_to_number(off.as_ref().unwrap_or(&Expression::Number(0))), ), + [Argument::Register(r1), Argument::Expression(off)] => { + // If the register is not specified, it defaults to x0 + (*r1, Register::new(0), expression_to_number(off)) + } _ => panic!(), } } @@ -897,6 +901,10 @@ fn rrro(args: &[Argument]) -> (Register, Register, Register, u32) { *r3, expression_to_number(off.as_ref().unwrap_or(&Expression::Number(0))), ), + [Argument::Register(r1), Argument::Register(r2), Argument::Expression(off)] => { + // If the register is not specified, it defaults to x0 + (*r1, *r2, Register::new(0), expression_to_number(off)) + } _ => panic!(), } }