aboutsummaryrefslogtreecommitdiff
path: root/ocaml_emulator/platform.ml
diff options
context:
space:
mode:
authorJon French <jf451@cam.ac.uk>2019-04-12 14:42:33 +0100
committerJon French <jf451@cam.ac.uk>2019-04-12 14:42:33 +0100
commit4ddeb44d2eed3f97ddb3739f1a44af8973936b89 (patch)
treebf8af6ab037e98c9630e61abf25d81990a53b42b /ocaml_emulator/platform.ml
parentd8cd74d5ea994957a607819267afc03f05f3566b (diff)
parentca184a708aa5336efe573fed14d4dfcd9cb27dde (diff)
downloadsail-riscv-rmem_interpreter.zip
sail-riscv-rmem_interpreter.tar.gz
sail-riscv-rmem_interpreter.tar.bz2
Merge branch 'master' into rmem_interpreterrmem_interpreter
Diffstat (limited to 'ocaml_emulator/platform.ml')
-rw-r--r--ocaml_emulator/platform.ml29
1 files changed, 17 insertions, 12 deletions
diff --git a/ocaml_emulator/platform.ml b/ocaml_emulator/platform.ml
index 45e3d43..95e7c57 100644
--- a/ocaml_emulator/platform.ml
+++ b/ocaml_emulator/platform.ml
@@ -4,8 +4,10 @@ module Elf = Elf_loader;;
(* Platform configuration *)
-let config_enable_dirty_update = ref false
-let config_enable_misaligned_access = ref false
+let config_enable_rvc = ref true
+let config_enable_writable_misa = ref true
+let config_enable_dirty_update = ref false
+let config_enable_misaligned_access = ref false
let config_mtval_has_illegal_inst_bits = ref false
let platform_arch = ref P.RV64
@@ -65,24 +67,27 @@ let make_rom arch start_pc =
*)
rom )
-let enable_dirty_update () = !config_enable_dirty_update
-let enable_misaligned_access () = !config_enable_misaligned_access
-let mtval_has_illegal_inst_bits () = !config_mtval_has_illegal_inst_bits
+let enable_writable_misa () = !config_enable_writable_misa
+let enable_rvc () = !config_enable_rvc
+let enable_dirty_update () = !config_enable_dirty_update
+let enable_misaligned_access () = !config_enable_misaligned_access
+let mtval_has_illegal_inst_bits () = !config_mtval_has_illegal_inst_bits
-let rom_base () = arch_bits_of_int64 P.rom_base
-let rom_size () = arch_bits_of_int !rom_size_ref
+let rom_base () = arch_bits_of_int64 P.rom_base
+let rom_size () = arch_bits_of_int !rom_size_ref
-let dram_base () = arch_bits_of_int64 P.dram_base
-let dram_size () = arch_bits_of_int64 !P.dram_size_ref
-
-let htif_tohost () =
- arch_bits_of_int64 (Big_int.to_int64 (Elf.elf_tohost ()))
+let dram_base () = arch_bits_of_int64 P.dram_base
+let dram_size () = arch_bits_of_int64 !P.dram_size_ref
let clint_base () = arch_bits_of_int64 P.clint_base
let clint_size () = arch_bits_of_int64 P.clint_size
let insns_per_tick () = Big_int.of_int P.insns_per_tick
+let htif_tohost () =
+ arch_bits_of_int64 (Big_int.to_int64 (Elf.elf_tohost ()))
+
+
(* load reservation *)
let speculate_conditional () = true