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:
571f434
)
Add a anyset operation to HighOrdAlu, using foldl.
author
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Thu, 25 Jun 2009 14:45:30 +0000
(16:45 +0200)
committer
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Thu, 25 Jun 2009 14:45:30 +0000
(16:45 +0200)
HighOrdAlu.hs
patch
|
blob
|
history
diff --git
a/HighOrdAlu.hs
b/HighOrdAlu.hs
index f49d5110c5673b0cca7d1164a80972b5a4028525..331fa1debd0b4f20a071b126398ee498b552967d 100644
(file)
--- a/
HighOrdAlu.hs
+++ b/
HighOrdAlu.hs
@@
-19,6
+19,15
@@
invop a b = map hwnot a
andop :: Op n Bit
andop a b = zipWith hwand a b
andop :: Op n Bit
andop a b = zipWith hwand a b
+-- Is any bit set?
+--anyset :: (PositiveT n) => Op n Bit
+anyset :: Op D4 Bit
+--anyset a b = copy undefined (a' `hwor` b')
+anyset a b = constant (a' `hwor` b') a b
+ where
+ a' = foldl hwor Low a
+ b' = foldl hwor Low b
+
type Op n e = (TFVec n e -> TFVec n e -> TFVec n e)
type Opcode = Bit
type Op n e = (TFVec n e -> TFVec n e -> TFVec n e)
type Opcode = Bit
@@
-30,4
+39,4
@@
alu op1 op2 opc a b =
actual_alu :: Opcode -> TFVec D4 Bit -> TFVec D4 Bit -> TFVec D4 Bit
--actual_alu = alu (constant Low) andop
actual_alu :: Opcode -> TFVec D4 Bit -> TFVec D4 Bit -> TFVec D4 Bit
--actual_alu = alu (constant Low) andop
-actual_alu = alu
invop
andop
+actual_alu = alu
anyset
andop