summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Backend/Allocator.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-10-13 12:59:47 +0200
committerEugen Wissner <belka@caraus.de>2024-10-13 12:59:47 +0200
commit582040e5d3f6a5fb5b9046964b6823891d2802dd (patch)
tree522ecf75521f03c5dbd33921cc716fd5130da0b3 /lib/Language/Elna/Backend/Allocator.hs
parent0850f0a8d66af028e32a79063cdad328b70db909 (diff)
downloadelna-582040e5d3f6a5fb5b9046964b6823891d2802dd.tar.gz
Implement comparison operators
Diffstat (limited to 'lib/Language/Elna/Backend/Allocator.hs')
-rw-r--r--lib/Language/Elna/Backend/Allocator.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Language/Elna/Backend/Allocator.hs b/lib/Language/Elna/Backend/Allocator.hs
index bdbccab..2b410a3 100644
--- a/lib/Language/Elna/Backend/Allocator.hs
+++ b/lib/Language/Elna/Backend/Allocator.hs
@@ -54,6 +54,16 @@ allocate MachineConfiguration{..} = fmap function
quadruple (GoToQuadruple label) = GoToQuadruple label
quadruple (EqualQuadruple operand1 operand2 goToLabel) =
EqualQuadruple (operand operand1) (operand operand2) goToLabel
+ quadruple (NonEqualQuadruple operand1 operand2 goToLabel) =
+ NonEqualQuadruple (operand operand1) (operand operand2) goToLabel
+ quadruple (LessQuadruple operand1 operand2 goToLabel) =
+ LessQuadruple (operand operand1) (operand operand2) goToLabel
+ quadruple (GreaterQuadruple operand1 operand2 goToLabel) =
+ GreaterQuadruple (operand operand1) (operand operand2) goToLabel
+ quadruple (LessOrEqualQuadruple operand1 operand2 goToLabel) =
+ LessOrEqualQuadruple (operand operand1) (operand operand2) goToLabel
+ quadruple (GreaterOrEqualQuadruple operand1 operand2 goToLabel) =
+ GreaterOrEqualQuadruple (operand operand1) (operand operand2) goToLabel
operand :: Operand Variable -> Operand (Store r)
operand (IntOperand x) = IntOperand x
operand (VariableOperand (TempVariable index))