summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKathy Gray2014-11-13 14:16:15 +0000
committerKathy Gray2014-11-13 14:16:15 +0000
commit086b8375c4a39e519129e965930ccf5b4cfb8f11 (patch)
tree6cdf5390b978fe4304607b16347bf7ada3637933
parent55450b6ba4985e2863c957584f1d14fdcfda8be2 (diff)
Catch more cases of registers for extern_reg
-rw-r--r--src/lem_interp/interp_inter_imp.lem2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lem_interp/interp_inter_imp.lem b/src/lem_interp/interp_inter_imp.lem
index 92a0b238..58a92cef 100644
--- a/src/lem_interp/interp_inter_imp.lem
+++ b/src/lem_interp/interp_inter_imp.lem
@@ -66,6 +66,8 @@ let extern_reg r slice = match (r,slice) with
| (Interp.Reg (Id_aux (Id x) _) _,Nothing) -> Reg x
| (Interp.Reg (Id_aux (Id x) _) _,Just(i1,i2)) -> Reg_slice x (i1,i2)
| (Interp.SubReg (Id_aux (Id x) _) (Interp.Reg (Id_aux (Id y) _) _) (BF_aux(BF_single i) _),Nothing) -> Reg_field y x (i,i)
+ | (Interp.SubReg (Id_aux (Id x) _) (Interp.Reg (Id_aux (Id y) _) _) (BF_aux(BF_range i j) _), Nothing) -> Reg_field y x (i,j)
+ | (Interp.SubReg (Id_aux (Id x) _) (Interp.Reg (Id_aux (Id y) _) _) (BF_aux(BF_range i j) _), Just(i1,j1)) -> Reg_f_slice y x (i,j) (i1,j1)
end
let rec extern_value mode for_mem optional_start v = match v with