summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Norton2016-05-10 16:56:09 +0100
committerRobert Norton2016-05-10 16:56:09 +0100
commit2662247c6c70f0d0b448adfe14a701e669580880 (patch)
tree91f6ff883936a435197288142a679b475463be1c
parent31f621287e75e4214673433c1eb11f7bdc38ccfe (diff)
Initialise CP0Status BEV bit.
-rw-r--r--src/lem_interp/run_with_elf.ml4
-rw-r--r--src/lem_interp/run_with_elf_cheri.ml1
2 files changed, 4 insertions, 1 deletions
diff --git a/src/lem_interp/run_with_elf.ml b/src/lem_interp/run_with_elf.ml
index ee9dfcc6..0f8e86ad 100644
--- a/src/lem_interp/run_with_elf.ml
+++ b/src/lem_interp/run_with_elf.ml
@@ -500,7 +500,9 @@ let mips_register_data_all = [
let initial_stack_and_reg_data_of_MIPS_elf_file e_entry all_data_memory =
let initial_stack_data = [] in
- let initial_register_abi_data : (string * Interp_interface.register_value) list = [] in
+ let initial_register_abi_data : (string * Interp_interface.register_value) list = [
+ ("CP0Status", Interp_interface.register_value_of_integer 32 31 D_decreasing (Nat_big_num.of_string "0x00400000"));
+ ] in
(initial_stack_data, initial_register_abi_data)
let initial_reg_file reg_data init =
diff --git a/src/lem_interp/run_with_elf_cheri.ml b/src/lem_interp/run_with_elf_cheri.ml
index 1d016453..f50720c5 100644
--- a/src/lem_interp/run_with_elf_cheri.ml
+++ b/src/lem_interp/run_with_elf_cheri.ml
@@ -542,6 +542,7 @@ let initial_stack_and_reg_data_of_MIPS_elf_file e_entry all_data_memory =
let initial_cap_val_int = Nat_big_num.of_string "115792089264276142078167421332581561412618036492862375629811892344162380414975" (*"0x100000000fffffffe00000000000000000000000000000000ffffffffffffffff"*) in
let initial_cap_val_reg = Interp_interface.register_value_of_integer 257 256 D_decreasing initial_cap_val_int in
let initial_register_abi_data : (string * Interp_interface.register_value) list = [
+ ("CP0Status", Interp_interface.register_value_of_integer 32 31 D_decreasing (Nat_big_num.of_string "0x00400000"));
("PCC", initial_cap_val_reg);
("nextPCC", initial_cap_val_reg);
("delayedPCC", initial_cap_val_reg);