aboutsummaryrefslogtreecommitdiffstats
path: root/asm/ext_std.py
diff options
context:
space:
mode:
Diffstat (limited to 'asm/ext_std.py')
-rw-r--r--asm/ext_std.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/asm/ext_std.py b/asm/ext_std.py
index f4751a3..247e605 100644
--- a/asm/ext_std.py
+++ b/asm/ext_std.py
@@ -78,24 +78,24 @@ def expand_sinc(imm: str) -> ExpandResult:
def expand_sdec(imm: str) -> ExpandResult:
return expand_subi("SP", imm, "SP")
-def expand_csr(addr_reg: str):
+def expand_csr(addr_reg: str, stratch_reg: str):
return [
- ["lpc", "CSR_SCRATCH"],
- *expand_addi("CSR_SCRATCH", "4", "CSR_SCRATCH"),
- *expand_spu("CSR_SCRATCH"),
+ ["lpc", stratch_reg],
+ *expand_addi(stratch_reg, "4", stratch_reg),
+ *expand_spu(stratch_reg),
["jpr", addr_reg]
]
-def expand_csi(addr_imm: str):
+def expand_csi(addr_imm: str, stratch_reg: str):
return [
- ["lpc", "CSR_SCRATCH"],
- *expand_addi("CSR_SCRATCH", "4", "CSR_SCRATCH"),
- *expand_spu("CSR_SCRATCH"),
+ ["lpc", stratch_reg],
+ *expand_addi(stratch_reg, "4", stratch_reg),
+ *expand_spu(stratch_reg),
["jpi", addr_imm]
]
-def expand_rsr():
- return expand_spo("CSR_SCRATCH") + [["jpr", "CSR_SCRATCH"]]
+def expand_rsr(stratch_reg: str):
+ return expand_spo(stratch_reg) + [["jpr", stratch_reg]]
def stack_stash(*rs: str):