From c36fd5a174ab74465b8562c5fb4fa69a25dfca79 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Sun, 20 Aug 2017 14:47:15 +0200 Subject: Fourth --- Intermediate.hs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'Intermediate.hs') diff --git a/Intermediate.hs b/Intermediate.hs index f97d407..ad3cb89 100644 --- a/Intermediate.hs +++ b/Intermediate.hs @@ -50,17 +50,6 @@ data CmpType deriving (Show, Eq) -refSize :: Ref -> Size -refSize (Temp sz _) = sz -refSize (Argument sz _) = sz -refSize (Global sz _) = sz -refSize (Constant sz _) = sz - -isConstant :: Ref -> Bool -isConstant (Constant _ _) = True -isConstant _ = False - - instance Pretty BB where prettyI i (BB bid inss term) = "{{{(" ++ show bid ++ ")\n" ++ indent (i+1) ++ @@ -151,6 +140,20 @@ instance Pretty CmpType where prettyI _ CLeq = "jle" +blockIdOf :: BB -> Id +blockIdOf (BB bid _ _) = bid + +refSize :: Ref -> Size +refSize (Temp sz _) = sz +refSize (Argument sz _) = sz +refSize (Global sz _) = sz +refSize (Constant sz _) = sz + +isConstant :: Ref -> Bool +isConstant (Constant _ _) = True +isConstant _ = False + + evaluateArith :: ArithType -> Value -> Value -> Value evaluateArith at a b = case at of AAdd -> a + b -- cgit v1.2.3-54-g00ecf