diff --git a/src/lib.rs b/src/lib.rs index 41300e0..2a67b6d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -292,6 +292,22 @@ impl Icicle { self.architecture.to_string() } + #[getter] + pub fn get_isa_mode(&self) -> u8 { + self.vm + .cpu + .arch + .reg_isa_mode + .map(|reg| self.vm.cpu.read_var(reg)) + .unwrap_or(0) + } + + #[setter] + pub fn set_isa_mode(&mut self, mode: u8) { + self.vm.cpu.set_isa_mode(mode); + self.set_pc(self.get_pc()); + } + #[getter] pub fn get_pc(&self) -> u64 { self.vm.cpu.read_pc()