aboutsummaryrefslogtreecommitdiffstats
path: root/src/ext_std.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext_std.py')
-rw-r--r--src/ext_std.py97
1 files changed, 0 insertions, 97 deletions
diff --git a/src/ext_std.py b/src/ext_std.py
deleted file mode 100644
index 11da8aa..0000000
--- a/src/ext_std.py
+++ /dev/null
@@ -1,97 +0,0 @@
-from asm_ops import *
-
-def expand_add(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_plus", left, right, target]]
-
-def expand_sub(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_minus", left, right, target]]
-
-def expand_addi(left: str, imm: str, target: str) -> ExpandResult:
- return [["ali", "al_plus", left, imm, target]]
-
-def expand_subi(left: str, imm: str, target: str) -> ExpandResult:
- return [["ali", "al_minus", left, imm, target]]
-
-def expand_and(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_and", left, right, target]]
-
-def expand_or(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_or", left, right, target]]
-
-def expand_xor(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_xor", left, right, target]]
-
-def expand_sll(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_sll", left, right, target]]
-
-def expand_slr(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_slr", left, right, target]]
-
-def expand_sar(left: str, right: str, target: str) -> ExpandResult:
- return [["alr", "al_sar", left, right, target]]
-
-def expand_slli(left: str, imm: str, target: str) -> ExpandResult:
- return [["ali", "al_sll", left, imm, target]]
-
-def expand_slri(left: str, imm: str, target: str) -> ExpandResult:
- return [["ali", "al_slr", left, imm, target]]
-
-def expand_sari(left: str, imm: str, target: str) -> ExpandResult:
- return [["ali", "al_sar", left, imm, target]]
-
-def expand_inc(reg: str) -> ExpandResult:
- return [["ali", "al_plus", reg, "1", reg]]
-
-def expand_dec(reg: str) -> ExpandResult:
- return [["ali", "al_minus", reg, "1", reg]]
-
-def expand_mov(from_reg: str, to_reg: str) -> ExpandResult:
- return [["ali", "al_plus", from_reg, "0", to_reg]]
-
-def expand_spu(reg: str) -> ExpandResult:
- return [["str", reg, "__STACK_POINTER"]] + expand_inc("__STACK_POINTER")
-
-def expand_spo(reg: str):
- return expand_dec("__STACK_POINTER") + [["ldr", "__STACK_POINTER", reg]]
-
-def expand_csr(addr_reg: str):
- return [
- ["lpc", "__CSR_SCRATCH"],
- *expand_addi("__CSR_SCRATCH", "4", "__CSR_SCRATCH"),
- *expand_spu("__CSR_SCRATCH"),
- ["jpr", addr_reg]
- ]
-
-def expand_csi(addr_imm: str):
- return [
- ["lpc", "__CSR_SCRATCH"],
- *expand_addi("__CSR_SCRATCH", "4", "__CSR_SCRATCH"),
- *expand_spu("__CSR_SCRATCH"),
- ["jpi", addr_imm]
- ]
-def expand_rsr():
- return expand_spo("__CSR_SCRATCH") + [["jpr", "__CSR_SCRATCH"]]
-
-expansions: OpExpansionDict = {
- "add": expand_add,
- "sub": expand_sub,
- "addi": expand_addi,
- "subi": expand_subi,
- "and": expand_and,
- "or": expand_or,
- "xor": expand_xor,
- "sll": expand_sll,
- "slr": expand_slr,
- "sar": expand_sar,
- "slli": expand_slli,
- "slri": expand_slri,
- "sari": expand_sari,
- "inc": expand_inc,
- "dec": expand_dec,
- "mov": expand_mov,
- "spu": expand_spu,
- "spo": expand_spo,
- "csr": expand_csr,
- "csi": expand_csi,
- "rsr": expand_rsr,
-}