mod call;
mod decode;
mod multithreaded;
mod rep;
mod shim;
mod single_threaded;
use crate::err::MwemuError;
pub(crate) use crate::emu::Emu;
pub(crate) use super::assert_x86_arch;
impl Emu {
pub fn step_x86(&mut self) -> bool {
assert_x86_arch(self, "step_x86");
self.step_isa()
}
pub fn run_x86(&mut self, end_addr: Option<u64>) -> Result<u64, MwemuError> {
assert_x86_arch(self, "run_x86");
self.reset_active_instruction_cache();
self.run_preflight()?;
if self.cfg.enable_threading && self.threads.len() > 1 {
self.run_multi_threaded_x86(end_addr)
} else {
self.run_single_threaded_x86(end_addr)
}
}
pub fn decode_and_execute_x86(&mut self) -> (usize, bool) {
self::decode::decode_and_execute_x86(self)
}
#[inline]
pub fn advance_pc_x86(&mut self, sz: usize) {
self::decode::advance_pc_x86(self, sz)
}
}