Skip to content

Commit b9faf2f

Browse files
committed
implement visit_{i64,f32,f64}_const trait methods
1 parent da2a397 commit b9faf2f

File tree

1 file changed

+15
-7
lines changed
  • crates/wasmi/src/engine/translator/func2

1 file changed

+15
-7
lines changed

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::{ControlFrame, ControlFrameKind, FuncTranslator, LocalIdx};
22
use crate::{
3-
core::{wasm, TrapCode},
3+
core::{wasm, TrapCode, F32, F64},
44
engine::{
55
translator::func2::{
66
stack::{AcquiredTarget, IfReachability},
@@ -414,16 +414,24 @@ impl<'a> VisitOperator<'a> for FuncTranslator {
414414
Ok(())
415415
}
416416

417-
fn visit_i64_const(&mut self, _value: i64) -> Self::Output {
418-
todo!()
417+
fn visit_i64_const(&mut self, value: i64) -> Self::Output {
418+
bail_unreachable!(self);
419+
self.stack.push_immediate(value)?;
420+
Ok(())
419421
}
420422

421-
fn visit_f32_const(&mut self, _value: wasmparser::Ieee32) -> Self::Output {
422-
todo!()
423+
fn visit_f32_const(&mut self, value: wasmparser::Ieee32) -> Self::Output {
424+
bail_unreachable!(self);
425+
let value = F32::from_bits(value.bits());
426+
self.stack.push_immediate(value)?;
427+
Ok(())
423428
}
424429

425-
fn visit_f64_const(&mut self, _value: wasmparser::Ieee64) -> Self::Output {
426-
todo!()
430+
fn visit_f64_const(&mut self, value: wasmparser::Ieee64) -> Self::Output {
431+
bail_unreachable!(self);
432+
let value = F64::from_bits(value.bits());
433+
self.stack.push_immediate(value)?;
434+
Ok(())
427435
}
428436

429437
fn visit_i32_eqz(&mut self) -> Self::Output {

0 commit comments

Comments
 (0)