From 8bc916ef0afdede9edce6bb9045dc555e4d3b218 Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 22 Jul 2026 22:27:37 +0200 Subject: fix: dropkeep not being emited correctly Signed-off-by: Henry --- crates/parser/src/visit.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'crates/parser/src') diff --git a/crates/parser/src/visit.rs b/crates/parser/src/visit.rs index cb13387..dae9ff2 100644 --- a/crates/parser/src/visit.rs +++ b/crates/parser/src/visit.rs @@ -1017,7 +1017,8 @@ impl FunctionBuilder<'_> { /// Emits the stack-shaping instruction required by a branch. fn emit_dropkeep(&mut self, base: ValueCounts, keep: ValueCounts) { - if base.is_empty() && keep.is_empty() { + let target = ValueCounts { c32: base.c32 + keep.c32, c64: base.c64 + keep.c64, c128: base.c128 + keep.c128 }; + if self.lane_counts == target { return; } self.instructions.push(Instruction::DropKeep((base, keep).into())); -- cgit v1.3.1