No more const where it is not needed

This commit is contained in:
2026-03-30 13:10:23 +02:00
parent 437b6e9bbc
commit e63111ea98

View File

@@ -108,12 +108,12 @@ execute cpu = \case
H -> cpu ^. registers . h H -> cpu ^. registers . h
L -> cpu ^. registers . l L -> cpu ^. registers . l
(newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in
cpu & registers . a %~ const newValue & registers . flags %~ const newFlags cpu & registers . a .~ newValue & registers . flags .~ newFlags
AddHL _c -> let value = fetch cpu . getHL $ cpu ^. registers AddHL _c -> let value = fetch cpu . getHL $ cpu ^. registers
(newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in
cpu & registers . a %~ const newValue & registers . flags %~ const newFlags cpu & registers . a .~ newValue & registers . flags .~ newFlags
AddN value _c -> let (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in AddN value _c -> let (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in
cpu & registers . a %~ const newValue & registers . flags %~ const newFlags cpu & registers . a .~ newValue & registers . flags .~ newFlags
SubR t _c -> let value = case t of SubR t _c -> let value = case t of
A -> cpu ^. registers . a A -> cpu ^. registers . a
B -> cpu ^. registers . b B -> cpu ^. registers . b
@@ -123,12 +123,12 @@ execute cpu = \case
H -> cpu ^. registers . h H -> cpu ^. registers . h
L -> cpu ^. registers . l L -> cpu ^. registers . l
(newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in
cpu & registers . a %~ const newValue & registers . flags %~ const newFlags cpu & registers . a .~ newValue & registers . flags .~ newFlags
SubHL _c -> let value = fetch cpu . getHL $ cpu ^. registers SubHL _c -> let value = fetch cpu . getHL $ cpu ^. registers
(newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in
cpu & registers . a %~ const newValue & registers . flags %~ const newFlags cpu & registers . a .~ newValue & registers . flags .~ newFlags
SubN value _c -> let (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in SubN value _c -> let (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in
cpu & registers . a %~ const newValue & registers . flags %~ const newFlags cpu & registers . a .~ newValue & registers . flags .~ newFlags
CpR t _c -> let value = case t of CpR t _c -> let value = case t of
A -> cpu ^. registers . a A -> cpu ^. registers . a
B -> cpu ^. registers . b B -> cpu ^. registers . b
@@ -138,12 +138,12 @@ execute cpu = \case
H -> cpu ^. registers . h H -> cpu ^. registers . h
L -> cpu ^. registers . l L -> cpu ^. registers . l
(_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in
cpu & registers . flags %~ const newFlags cpu & registers . flags .~ newFlags
CpHL _c -> let value = fetch cpu . getHL $ cpu ^. registers CpHL _c -> let value = fetch cpu . getHL $ cpu ^. registers
(_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in
cpu & registers . flags %~ const newFlags cpu & registers . flags .~ newFlags
CpN value _c -> let (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in CpN value _c -> let (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in
cpu & registers . flags %~ const newFlags cpu & registers . flags .~ newFlags
IncR t -> let (target, target') = case t of IncR t -> let (target, target') = case t of
A -> (a,a) A -> (a,a)
B -> (b,b) B -> (b,b)
@@ -153,11 +153,11 @@ execute cpu = \case
H -> (h,h) H -> (h,h)
L -> (l,l) L -> (l,l)
(value, newFlags) = add (cpu ^. registers . target) 1 False in (value, newFlags) = add (cpu ^. registers . target) 1 False in
cpu & registers . target' %~ const value & registers . flags %~ const newFlags cpu & registers . target' .~ value & registers . flags .~ newFlags
IncHL -> let target = getHL $ cpu ^. registers IncHL -> let target = getHL $ cpu ^. registers
value = fetch cpu target value = fetch cpu target
(newValue, newFlags) = add value 1 False in (newValue, newFlags) = add value 1 False in
cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags %~ const newFlags cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags .~ newFlags
DecR t -> let (target, target') = case t of DecR t -> let (target, target') = case t of
A -> (a,a) A -> (a,a)
B -> (b,b) B -> (b,b)
@@ -167,11 +167,11 @@ execute cpu = \case
H -> (h,h) H -> (h,h)
L -> (l,l) L -> (l,l)
(value, newFlags) = sub (cpu ^. registers . target) 1 False in (value, newFlags) = sub (cpu ^. registers . target) 1 False in
cpu & registers . target' %~ const value & registers . flags %~ const newFlags cpu & registers . target' .~ value & registers . flags .~ newFlags
DecHL -> let target = getHL $ cpu ^. registers DecHL -> let target = getHL $ cpu ^. registers
value = fetch cpu target value = fetch cpu target
(newValue, newFlags) = sub value 1 False in (newValue, newFlags) = sub value 1 False in
cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags %~ const newFlags cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags .~ newFlags
where where
add :: Word8 -> Word8 -> Bool -> (Word8, FlagRegister) add :: Word8 -> Word8 -> Bool -> (Word8, FlagRegister)
add o n _c = let new = o + n + if _c then 1 else 0 add o n _c = let new = o + n + if _c then 1 else 0