diff options
| author | Thomas Bauereiss | 2018-07-07 22:20:51 +0100 |
|---|---|---|
| committer | Thomas Bauereiss | 2018-07-09 14:39:25 +0100 |
| commit | 90ea9c794ffe47365b7e856eba4ee8af0aefa0ca (patch) | |
| tree | 04fbffe50e96917913d257c0ab4d7e4cdb93ebc0 /aarch64 | |
| parent | edc2be164fcf53c333796e55b93f94bf6c9ed152 (diff) | |
Patch some potential uses of uninitialised variables in AArch64
Diffstat (limited to 'aarch64')
| -rw-r--r-- | aarch64/mono/demo/aarch64_no_vector/spec.sail | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/aarch64/mono/demo/aarch64_no_vector/spec.sail b/aarch64/mono/demo/aarch64_no_vector/spec.sail index 19a06c57..ecb3a050 100644 --- a/aarch64/mono/demo/aarch64_no_vector/spec.sail +++ b/aarch64/mono/demo/aarch64_no_vector/spec.sail @@ -5713,6 +5713,11 @@ function AArch64_TranslationTableWalk (ipaddress, vaddress, acctype, iswrite, se outputaddress = (slice(desc, 12, 4) @ slice(desc, asb, negate(asb) + 48)) @ slice(inputaddr, 0, asb) else outputaddress = ZeroExtend(slice(desc, asb, negate(asb) + 48) @ slice(inputaddr, 0, asb)); + __tmp_33 : DescriptorUpdate = result.descupdate; + __tmp_33.AF = false; + __tmp_33.AP = false; + __tmp_33.descaddr = descaddr; + result.descupdate = __tmp_33; if [desc[10]] == 0b0 then if ~(update_AF) then { __tmp_29 : AddressDescriptor = result.addrdesc; @@ -5738,9 +5743,6 @@ function AArch64_TranslationTableWalk (ipaddress, vaddress, acctype, iswrite, se result.descupdate = __tmp_32 } else () else (); - __tmp_33 : DescriptorUpdate = result.descupdate; - __tmp_33.descaddr = descaddr; - result.descupdate = __tmp_33; xn : bits(1) = undefined; pxn : bits(1) = undefined; if apply_nvnv1_effect then { @@ -6715,7 +6717,7 @@ function AArch64_SecondStageTranslate (S1, vaddress, acctype, iswrite, wasaligne function AArch64_CheckAndUpdateDescriptor (result, fault, secondstage, vaddress, acctype, iswrite, s2fs1walk, hwupdatewalk__arg) = { hwupdatewalk = hwupdatewalk__arg; hw_update_AF : bool = undefined; - if result.AF then if fault.typ == Fault_None then hw_update_AF = true else if ConstrainUnpredictable(Unpredictable_AFUPDATE) == Constraint_TRUE then hw_update_AF = true else hw_update_AF = false else (); + if result.AF then if fault.typ == Fault_None then hw_update_AF = true else if ConstrainUnpredictable(Unpredictable_AFUPDATE) == Constraint_TRUE then hw_update_AF = true else hw_update_AF = false else hw_update_AF = false; hw_update_AP : bool = undefined; write_perm_req : bool = undefined; if result.AP & fault.typ == Fault_None then { |
