summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/processor.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/processor.rs b/src/processor.rs
index cb1b2d5..9c9fb45 100644
--- a/src/processor.rs
+++ b/src/processor.rs
@@ -47,7 +47,7 @@ impl<D: DeviceBus> Processor<D> {
macro_rules! pc { () => { self.mem.read_pc() }; }
macro_rules! truth { ($x:expr) => { if $x {0xff} else {0x00} }; }
macro_rules! nyb { ($v:expr=>$h:ident,$l:ident) => { let $h=($v>>4); let $l=($v&0x0f); } }
- macro_rules! shf { ($x:expr,$y:expr) => { { nyb!($y=>l,r); $x.wrapping_shl(l as u32).wrapping_shr(r as u32) } } ; }
+ macro_rules! shf { ($x:expr,$y:expr) => { { nyb!($y=>l,r); $x.checked_shl(l as u32).unwrap_or(0).checked_shr(r as u32).unwrap_or(0) } } ; }
macro_rules! shc { ($x:expr,$y:expr) => { { nyb!($y=>l,r); $x.rotate_left( l as u32).rotate_right(r as u32) } }; }
for _ in 0..num_cycles {