diff options
| author | Thomas Bauereiss | 2017-08-17 15:52:23 +0100 |
|---|---|---|
| committer | Thomas Bauereiss | 2017-08-17 15:52:23 +0100 |
| commit | d074a4eaad0f7164b44c3351660c5ee48381550d (patch) | |
| tree | 2a073247ed9014ad5e8bb8087451349d726f17a2 /src/gen_lib/sail_values.lem | |
| parent | e9badcc77afe07e95a1ace1598d50875e5331893 (diff) | |
Add support for register types other than bitvector to state monad
Make state monad parametric in register state, and generate a record with
registers from the Sail spec
Diffstat (limited to 'src/gen_lib/sail_values.lem')
| -rw-r--r-- | src/gen_lib/sail_values.lem | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gen_lib/sail_values.lem b/src/gen_lib/sail_values.lem index b4a15432..b5019df6 100644 --- a/src/gen_lib/sail_values.lem +++ b/src/gen_lib/sail_values.lem @@ -884,6 +884,14 @@ type register = | UndefinedRegister of integer (* length *) | RegisterPair of register * register +type register_ref 'regstate 'a = + <| read_from : 'regstate -> 'a; + write_to : 'regstate -> 'a -> 'regstate |> + +type field_ref 'regtype 'a = + <| get_field : 'regtype -> 'a; + set_field : 'regtype -> 'a -> 'regtype |> + let name_of_reg = function | Register name _ _ _ _ -> name | UndefinedRegister _ -> failwith "name_of_reg UndefinedRegister" |
