diff options
Diffstat (limited to 'crates/parser/src/visit.rs')
| -rw-r--r-- | crates/parser/src/visit.rs | 3 |
1 files changed, 2 insertions, 1 deletions
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())); |
