summaryrefslogtreecommitdiff
path: root/riscv/main.sail
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/main.sail')
-rw-r--r--riscv/main.sail14
1 files changed, 11 insertions, 3 deletions
diff --git a/riscv/main.sail b/riscv/main.sail
index 0a46181b..e108c3dc 100644
--- a/riscv/main.sail
+++ b/riscv/main.sail
@@ -34,15 +34,23 @@ val elf_entry = {
c: "elf_entry"
} : unit -> int
-val main : unit -> unit effect {barr, eamem, escape, exmem, rmem, rreg, wmv, wreg}
+val main : unit -> unit effect pure //{barr, eamem, escape, exmem, rmem, rreg, wmv, wreg}
function main () = {
- PC = __GetSlice_int(64, elf_entry(), 0);
+
+ print(assembly(ITYPE(0b000000000000, 0b00000, 0b11010, RISCV_ADDI)));
+ print(assembly(assembly("addi zero, zero, 0x0")));
+ print(assembly(assembly("ldu.aq zero, zero, 0x0")));
+ print_bits("assembled lui zero, 0x0: ", encdec(assembly("lui zero, 0x0")));
+ print_bits("assembled jal zero, 0x123456 : ", encdec(assembly("jal zero, 0x123456")));
+ print(assembly(assembly("beq zero, zero, 0x124")));
+ print_bits("assembled beq zero, zero, 0x124 : ", encdec(assembly("beq zero, zero, 0x124")));
+ /*PC = __GetSlice_int(64, elf_entry(), 0);
try {
init_sys ();
loop ()
} catch {
Error_not_implemented(s) => print_string("Error: Not implemented: ", s),
Error_internal_error() => print("Error: internal error")
- }
+ }*/
}