use crate::error::VmResult;
use crate::state::VmState;
pub fn handle_load8(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.read_input_u8(offset)? as u64;
state.push(value)
}
pub fn handle_load16(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.read_input_u16(offset)? as u64;
state.push(value)
}
pub fn handle_load32(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.read_input_u32(offset)? as u64;
state.push(value)
}
pub fn handle_load64(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.read_input_u64(offset)?;
state.push(value)
}
pub fn handle_store8(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.pop()?;
state.write_output_u8(offset, value as u8)
}
pub fn handle_store16(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.pop()?;
state.write_output_u16(offset, value as u16)
}
pub fn handle_store32(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.pop()?;
state.write_output_u32(offset, value as u32)
}
pub fn handle_store64(state: &mut VmState) -> VmResult<()> {
let offset = state.read_u16()? as usize;
let value = state.pop()?;
state.write_output_u64(offset, value)
}