summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/CodeGenerator.hs
blob: 6097843838ee5612dcca5a9d44bf3f2e9dd8e546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module Language.Elna.CodeGenerator
    ( generateCode
    ) where

import Data.Vector (Vector)
import qualified Data.Vector as Vector
import Language.Elna.Intermediate (Quadruple(..))
import qualified Language.Elna.Architecture.RiscV as RiscV
import Language.Elna.SymbolTable (SymbolTable)

generateCode :: SymbolTable -> Vector Quadruple -> Vector RiscV.Instruction
generateCode _ _ = Vector.fromList
    [ RiscV.Instruction RiscV.OpImm $ RiscV.I RiscV.A0 RiscV.ADDI RiscV.Zero 0
    , RiscV.Instruction RiscV.OpImm $ RiscV.I RiscV.A7 RiscV.ADDI RiscV.Zero 93
    , RiscV.Instruction RiscV.System $ RiscV.Type RiscV.Zero RiscV.PRIV RiscV.Zero RiscV.ECALL
    ]