diff options
Diffstat (limited to 'riscv/main.sail')
| -rw-r--r-- | riscv/main.sail | 14 |
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") - } + }*/ } |
