diff options
| -rw-r--r-- | src/lem_interp/interp_inter_imp.lem | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lem_interp/interp_inter_imp.lem b/src/lem_interp/interp_inter_imp.lem index bfca32d3..7b96aef5 100644 --- a/src/lem_interp/interp_inter_imp.lem +++ b/src/lem_interp/interp_inter_imp.lem @@ -336,13 +336,14 @@ let rec find_reg_name reg = function | [] -> Nothing | (reg_name,v)::registers -> match (reg,reg_name) with - | (Reg i, Reg n) -> if i = n then v else find_reg_name reg registers + | (Reg i, Reg n) -> if i = n then (Just v) else find_reg_name reg registers | (Reg_slice i (p1,p2), Reg_slice n (p3,p4)) -> - if i=n && p1=p3 && p2 = p4 then v else find_reg_name reg registers + if i=n && p1=p3 && p2 = p4 then (Just v) else find_reg_name reg registers | (Reg_field i f _,Reg_field n fn _) -> - if i=n && f = fn then v else find_reg_name reg registers + if i=n && f = fn then (Just v) else find_reg_name reg registers | (Reg_f_slice i f _ (p1,p2), Reg_f_slice n fn _ (p3,p4)) -> - if i=n && f=fn && p1=p3 && p2=p3 then v else find_reg_name reg registers + if i=n && f=fn && p1=p3 && p2=p3 then (Just v) else find_reg_name reg registers + | _ -> find_reg_name reg registers end end let rec ie_loop mode register_values i_state = |
