diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/interp.lem | 2 | ||||
| -rw-r--r-- | src/lem_interp/interp_interface.lem | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem index 6396f51e..1a97f5db 100644 --- a/src/lem_interp/interp.lem +++ b/src/lem_interp/interp.lem @@ -463,6 +463,8 @@ let access_vector v n = retaint v (match (detaint v) with | V_unknown -> V_unknown | V_lit (L_aux L_undef _) -> v + | V_lit (L_aux L_zero _) -> v + | V_lit (L_aux L_one _ ) -> v | V_vector m dir vs -> list_nth vs (if is_inc(dir) then (n - m) else (m - n)) | V_vector_sparse _ _ _ vs d -> diff --git a/src/lem_interp/interp_interface.lem b/src/lem_interp/interp_interface.lem index baa20ada..e0c656eb 100644 --- a/src/lem_interp/interp_interface.lem +++ b/src/lem_interp/interp_interface.lem @@ -135,6 +135,14 @@ instance (Ord address) let (>=) a1 a2 = (addressCompare a1 a2) <> LT end +let addressEqual a1 a2 = (addressCompare a1 a2) = EQ + +instance (Eq address) + let (=) = addressEqual + let (<>) x y = not (addressEqual x y) +end + + instance (Ord register_value) let compare = defaultCompare let (<) = defaultLess |
