Skip to content

Commit 92452e9

Browse files
committed
fold_left to foldlM
1 parent 4098260 commit 92452e9

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

ArchSemArm/VMPromising.v

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,21 +1012,20 @@ Module TLB.
10121012
let index := level_index va lvl in
10131013
sregs ← othrow "TTBR should exist in initial state"
10141014
$ TState.read_sreg_at ts ttbr time;
1015-
fold_left (λ prev sreg,
1015+
foldlM (λ prev sreg,
10161016
val_ttbr ← othrow "TTBR should be a 64 bit value"
10171017
$ regval_to_val ttbr sreg.1;
10181018
let asid := bv_extract 48 16 val_ttbr in
10191019
let ndctxt := NDCtxt.make pva (Some asid) in
10201020
let ctxt := existT plvl ndctxt in
10211021
(* parent entries should be from the original TLB (in the parent level) *)
10221022
let tes := elements (VATLB.get ctxt tlb.(vatlb)) in
1023-
fold_left (λ prev te,
1024-
'(vatlb_prev, is_changed_prev) ← prev;
1023+
foldlM (λ '(vatlb_prev, is_changed_prev) te,
10251024
'(vatlb_lvl, is_changed_lvl) ←
10261025
va_fill_lvl vatlb_prev ts init mem time ctxt te index ttbr;
10271026
mret (vatlb_lvl, is_changed_lvl || is_changed_prev)
1028-
) tes prev
1029-
) sregs (mret (tlb.(vatlb), false))
1027+
) prev tes
1028+
) (tlb.(vatlb), false) sregs
10301029
end;
10311030
mret $ (TLB.make vatlb_new, is_changed).
10321031

@@ -1040,11 +1039,10 @@ Module TLB.
10401039
(time : nat)
10411040
(va : bv 64)
10421041
(ttbr : reg) : result string (t * bool) :=
1043-
fold_left (λ prev lvl,
1044-
'(tlb_prev, is_changed_prev) ← prev;
1042+
foldlM (λ '(tlb_prev, is_changed_prev) lvl,
10451043
'(tlb_new, is_changed) ← va_fill tlb_prev ts init mem time lvl va ttbr;
10461044
mret (tlb_new, is_changed || is_changed_prev)
1047-
) (enum Level) (mret (tlb, false)).
1045+
) (tlb, false) (enum Level).
10481046

10491047
(** ** TLB invalidation *)
10501048

0 commit comments

Comments
 (0)