Skip to content

Commit d6063cf

Browse files
committed
implement FuncTranslator::visit_return
1 parent fff5710 commit d6063cf

File tree

1 file changed

+10
-1
lines changed
  • crates/wasmi/src/engine/translator/func2

1 file changed

+10
-1
lines changed

crates/wasmi/src/engine/translator/func2/visit.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use crate::{
77
},
88
ir::Instruction,
99
Error,
10+
FuncType,
1011
};
1112
use wasmparser::VisitOperator;
1213

@@ -208,7 +209,15 @@ impl<'a> VisitOperator<'a> for FuncTranslator {
208209
}
209210

210211
fn visit_return(&mut self) -> Self::Output {
211-
todo!()
212+
bail_unreachable!(self);
213+
let consume_fuel_instr = self.stack.consume_fuel_instr();
214+
self.translate_return(consume_fuel_instr)?;
215+
let len_results = self.func_type_with(FuncType::len_results);
216+
for _ in 0..len_results {
217+
self.stack.pop();
218+
}
219+
self.reachable = false;
220+
Ok(())
212221
}
213222

214223
fn visit_call(&mut self, _function_index: u32) -> Self::Output {

0 commit comments

Comments
 (0)