projects
/
matthijs
/
master-project
/
cλash.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c69f7a9
)
Remove the empty state of the alu function.
author
Matthijs Kooijman
<matthijs@stdin.nl>
Thu, 5 Feb 2009 08:18:08 +0000
(09:18 +0100)
committer
Matthijs Kooijman
<matthijs@stdin.nl>
Thu, 5 Feb 2009 08:18:08 +0000
(09:18 +0100)
Alu.hs
patch
|
blob
|
history
diff --git
a/Alu.hs
b/Alu.hs
index 40f76220ade83a2116b6f0bb928e8853cff34863..b888fc9dca18419523a4b33234c6e8e900d083ac 100644
(file)
--- a/
Alu.hs
+++ b/
Alu.hs
@@
-14,7
+14,7
@@
program = [
(High, High, DontCare) -- r1 = z (0)
]
(High, High, DontCare) -- r1 = z (0)
]
-initial_state = (Regs Low High,
(),
Low, Low)
+initial_state = (Regs Low High, Low, Low)
-- Register bank
-- Register bank
@@
-43,31
+43,30
@@
register_bank (addr, High, d) s = -- Write
-- ALU
-- ALU
-type AluState = ()
type AluOp = Bit
type AluOp = Bit
-alu :: (AluOp, Bit, Bit) ->
AluState -> (AluState, Bit)
-alu (High, a, b)
s = ((), a `hwand` b)
-alu (Low, a, b)
s = ((), a `hwor` b)
+alu :: (AluOp, Bit, Bit) ->
Bit
+alu (High, a, b)
= a `hwand` b
+alu (Low, a, b)
= a `hwor` b
-type ExecState = (RegisterBankState,
AluState,
Bit, Bit)
+type ExecState = (RegisterBankState, Bit, Bit)
exec :: (RegAddr, Bit, AluOp) -> ExecState -> (ExecState, ())
-- Read & Exec
exec (addr, Low, op) s =
(s', ())
where
exec :: (RegAddr, Bit, AluOp) -> ExecState -> (ExecState, ())
-- Read & Exec
exec (addr, Low, op) s =
(s', ())
where
- (reg_s,
alu_s,
t, z) = s
+ (reg_s, t, z) = s
(reg_s', t') = register_bank (addr, Low, DontCare) reg_s
(reg_s', t') = register_bank (addr, Low, DontCare) reg_s
- (alu_s', z') = alu (op, t', t) alu_s
- s' = (reg_s',
alu_s',
t', z')
+ z' = alu (op, t', t)
+ s' = (reg_s', t', z')
-- Write
exec (addr, High, op) s =
(s', ())
where
-- Write
exec (addr, High, op) s =
(s', ())
where
- (reg_s,
alu_s,
t, z) = s
+ (reg_s, t, z) = s
(reg_s', _) = register_bank (addr, High, z) reg_s
(reg_s', _) = register_bank (addr, High, z) reg_s
- s' = (reg_s',
alu_s,
t, z)
+ s' = (reg_s', t, z)
-- vim: set ts=8 sw=2 sts=2 expandtab:
-- vim: set ts=8 sw=2 sts=2 expandtab: