summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/CodeGenerator.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-09-08 02:08:13 +0200
committerEugen Wissner <belka@caraus.de>2024-09-08 02:08:13 +0200
commit1cbbef19afcf997315431e3aa45f824fe8a8a0e7 (patch)
tree8813df9aab3185a9c2b778499ecb041a6c58cead /lib/Language/Elna/CodeGenerator.hs
parenta625bbff505c912f8a19f62bcb92313a63c60ed4 (diff)
downloadelna-1cbbef19afcf997315431e3aa45f824fe8a8a0e7.tar.gz
Stub the implementation for all phases
Diffstat (limited to 'lib/Language/Elna/CodeGenerator.hs')
-rw-r--r--lib/Language/Elna/CodeGenerator.hs15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/Language/Elna/CodeGenerator.hs b/lib/Language/Elna/CodeGenerator.hs
index cdbfc01..6097843 100644
--- a/lib/Language/Elna/CodeGenerator.hs
+++ b/lib/Language/Elna/CodeGenerator.hs
@@ -1,3 +1,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
+ ]