|
1 | 1 | use super::{ControlFrame, ControlFrameKind, FuncTranslator, LocalIdx};
|
2 | 2 | use crate::{
|
3 |
| - core::{wasm, TrapCode}, |
| 3 | + core::{wasm, TrapCode, F32, F64}, |
4 | 4 | engine::{
|
5 | 5 | translator::func2::{
|
6 | 6 | stack::{AcquiredTarget, IfReachability},
|
@@ -414,16 +414,24 @@ impl<'a> VisitOperator<'a> for FuncTranslator {
|
414 | 414 | Ok(())
|
415 | 415 | }
|
416 | 416 |
|
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(()) |
419 | 421 | }
|
420 | 422 |
|
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(()) |
423 | 428 | }
|
424 | 429 |
|
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(()) |
427 | 435 | }
|
428 | 436 |
|
429 | 437 | fn visit_i32_eqz(&mut self) -> Self::Output {
|
|
0 commit comments