diff options
| author | Kathy Gray | 2014-02-14 15:55:38 +0000 |
|---|---|---|
| committer | Kathy Gray | 2014-02-14 15:55:38 +0000 |
| commit | e63004599c19e8e741918c6e64ec0a5362abc8ed (patch) | |
| tree | febb92f46e3b83db9b4a96e36893d15660109de5 /src/lem_interp | |
| parent | 65c30622a25d10eebec650284949c6c3270df5ac (diff) | |
Fix infinite loop bug, and test1.sail type checking bug
Diffstat (limited to 'src/lem_interp')
| -rw-r--r-- | src/lem_interp/interp.lem | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem index 7aee25e3..f498295c 100644 --- a/src/lem_interp/interp.lem +++ b/src/lem_interp/interp.lem @@ -819,7 +819,14 @@ and interp_main t_level l_env l_mem exp = | (outcome,Just lexp_builder) -> resolve_outcome outcome (fun v lm le -> (Value v,lm,le)) - (fun a -> update_stack a (add_to_top_frame (fun e -> (E_assign (lexp_builder e) (to_exp v))))) end)) + (fun a -> + (match a with + | (Action (Write_reg regf range value) stack) -> + (Action (Write_reg regf range value) stack) + | (Action (Write_mem id a range value) stack) -> + (Action (Write_mem id a range value) stack) + | _ -> update_stack a (add_to_top_frame (fun e -> (E_assign (lexp_builder e) (to_exp v)))) end)) + end)) (fun a -> update_stack a (add_to_top_frame (fun v -> (E_assign lexp v)))) end |
