diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-10-11 16:14:01 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-10-11 16:14:01 +0200 |
| commit | 0850f0a8d66af028e32a79063cdad328b70db909 (patch) | |
| tree | 8c1fa49d5476e706e94a7af62ce37b12ef65e32d /lib/Language/Elna/Backend/Allocator.hs | |
| parent | 87f183baad01f2b572f5f9051895b5876a56dd4c (diff) | |
| download | elna-0850f0a8d66af028e32a79063cdad328b70db909.tar.gz | |
Implement if statements with equality
Diffstat (limited to 'lib/Language/Elna/Backend/Allocator.hs')
| -rw-r--r-- | lib/Language/Elna/Backend/Allocator.hs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Language/Elna/Backend/Allocator.hs b/lib/Language/Elna/Backend/Allocator.hs index 701beb8..bdbccab 100644 --- a/lib/Language/Elna/Backend/Allocator.hs +++ b/lib/Language/Elna/Backend/Allocator.hs @@ -50,6 +50,10 @@ allocate MachineConfiguration{..} = fmap function = DivisionQuadruple (operand operand1) (operand operand2) $ Store $ temporaryRegisters !! fromIntegral index + quadruple (LabelQuadruple label) = LabelQuadruple label + quadruple (GoToQuadruple label) = GoToQuadruple label + quadruple (EqualQuadruple operand1 operand2 goToLabel) = + EqualQuadruple (operand operand1) (operand operand2) goToLabel operand :: Operand Variable -> Operand (Store r) operand (IntOperand x) = IntOperand x operand (VariableOperand (TempVariable index)) |
