diff --git a/src/backend.rs b/src/backend.rs index 0a168204e7..285f924ac2 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -51,6 +51,7 @@ extern "sysv64" fn println(len: u64, args: *const u8) { }); } +#[allow(unused_macros)] macro_rules! asm_println { ($asm:expr, $($args:tt)*) => {{ use std::mem; @@ -2243,6 +2244,8 @@ impl Context<'_> { let (reg_locals, temps) = locals_in_gprs.split_at((locals as usize).min(locals_in_gprs.len())); + // TODO: If we have less than some amount of extra scratch here, free + // up some callee-saved regs. for temp in temps { self.block_state.regs.release_scratch_gpr(*temp); } diff --git a/src/tests.rs b/src/tests.rs index f08d66291a..b9c5e0875c 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -977,6 +977,8 @@ fn nested_storage_calls() { assert_eq!(translated.execute_func::<(), i32>(0, ()), Ok(1)); } +// TODO: Signature mismatches correctly fail, but we can't add a test +// for that until we implement traps properly. #[test] fn call_indirect() { const CODE: &str = r#"