diff options
-rw-r--r-- | src/processor.rs | 2 |
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 { |