diff --git a/arm-v8.5-a/model/aarch_mem.sail b/arm-v8.5-a/model/aarch_mem.sail index fe79456..6c44163 100644 --- a/arm-v8.5-a/model/aarch_mem.sail +++ b/arm-v8.5-a/model/aarch_mem.sail @@ -3686,7 +3686,16 @@ function CombineS1S2Desc (s1desc, s2desc) = { result.memattrs = __tc12 } }; - result.memattrs = MemAttrDefaults(result.memattrs); + /* TODO: BS: the original ASL contained just: + * + * result.memattrs = MemAttrDefaults(result.memattrs); + * + * but this reads some uninitialized fields, so + * I modify this to check if it wasn't a fault first + */ + if ~(IsFault(result)) then { + result.memattrs = MemAttrDefaults(result.memattrs); + }; result }