use crate::error::VmResult;
use crate::state::VmState;
pub fn handle_sext8(state: &mut VmState) -> VmResult<()> {
let value = state.pop()?;
let result = (value as i8) as i64 as u64;
state.push(result)
}
pub fn handle_sext16(state: &mut VmState) -> VmResult<()> {
let value = state.pop()?;
let result = (value as i16) as i64 as u64;
state.push(result)
}
pub fn handle_sext32(state: &mut VmState) -> VmResult<()> {
let value = state.pop()?;
let result = (value as i32) as i64 as u64;
state.push(result)
}
pub fn handle_trunc8(state: &mut VmState) -> VmResult<()> {
let value = state.pop()?;
let result = value & 0xFF;
state.push(result)
}
pub fn handle_trunc16(state: &mut VmState) -> VmResult<()> {
let value = state.pop()?;
let result = value & 0xFFFF;
state.push(result)
}
pub fn handle_trunc32(state: &mut VmState) -> VmResult<()> {
let value = state.pop()?;
let result = value & 0xFFFFFFFF;
state.push(result)
}