diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-10-04 18:26:10 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-10-04 18:26:10 +0200 |
| commit | 35742aa52587400950cf25170c2247f98f498d4d (patch) | |
| tree | 78d0fd208e2e08d30c18ada33c52bc76a91267d6 /lib/Language/Elna/Backend | |
| parent | fdf56ce9d0de459dc5bd65537847ded7b02ad5c2 (diff) | |
| download | elna-35742aa52587400950cf25170c2247f98f498d4d.tar.gz | |
Add printc and exit builtin functions
Diffstat (limited to 'lib/Language/Elna/Backend')
| -rw-r--r-- | lib/Language/Elna/Backend/Allocator.hs | 2 | ||||
| -rw-r--r-- | lib/Language/Elna/Backend/Intermediate.hs | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Language/Elna/Backend/Allocator.hs b/lib/Language/Elna/Backend/Allocator.hs index 9ad849e..1ffc85d 100644 --- a/lib/Language/Elna/Backend/Allocator.hs +++ b/lib/Language/Elna/Backend/Allocator.hs @@ -36,6 +36,8 @@ allocate MachineConfiguration{..} = fmap function SubtractionQuadruple (operand operand1) (operand operand2) (Store temporaryRegister) quadruple (NegationQuadruple operand1 _) = NegationQuadruple (operand operand1) (Store temporaryRegister) + quadruple (ProductQuadruple operand1 operand2 _) = + ProductQuadruple (operand operand1) (operand operand2) (Store temporaryRegister) operand :: Operand Variable -> Operand (Store r) operand (IntOperand x) = IntOperand x operand (VariableOperand _) = VariableOperand (Store temporaryRegister) diff --git a/lib/Language/Elna/Backend/Intermediate.hs b/lib/Language/Elna/Backend/Intermediate.hs index 01a026b..e7c66cf 100644 --- a/lib/Language/Elna/Backend/Intermediate.hs +++ b/lib/Language/Elna/Backend/Intermediate.hs @@ -30,11 +30,11 @@ data Quadruple v | AddQuadruple (Operand v) (Operand v) v | SubtractionQuadruple (Operand v) (Operand v) v | NegationQuadruple (Operand v) v + | ProductQuadruple (Operand v) (Operand v) v {-| GoToQuadruple Label | AssignQuadruple Operand Variable | ArrayQuadruple Variable Operand Variable | ArrayAssignQuadruple Operand Operand Variable - | ProductQuadruple Operand Operand Variable | DivisionQuadruple Operand Operand Variable | EqualQuadruple Operand Operand Label | NonEqualQuadruple Operand Operand Label |
