You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add the fault check functionality related to pte value.
- add `check_fault` and `check_value` fields in `node` structure in `cycle.ml`,
,with default values being `None` for irrelevance. `check_fault` carries a boolean
and a string, that is, if the event should fault and a label for the instruction.
While `check_value` carries a boolean for if any memory effect check, i.e. read event,
should be check. This two new variables enable generating fault and value check when
there is previous change to pte or plain values respectively.
- Introduce `can_fault` function in `Pteval`, which currently check if `valid` is set,
i.e., being 1, in AArch64, while always returns `true` for other platform.
- Introduce FaultSet of element of an optional label string and a variable string.
This replace the StringSet used in the `final.ml` for printing the fault-related post-
condition such as `fault(P1:L02,y)`.
- Modify `AArch64Compile_gen.ml` for printing the label on load and store instruction,
when a fault check is needed.
Minor improvement:
- Merge the accumulators `cell` and `pte_cell` into CoSt `st` in cycle (`cycle.ml`) building,
functions `do_set_write_v` and `do_set_read_v`.
- Replace a few manual list foldings with a `List.fold_left`.
- Add some explanatory comments on some single-latter variables.
0 commit comments