summaryrefslogtreecommitdiff
path: root/aarch64
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64')
-rw-r--r--aarch64/mono/demo/aarch64_no_vector/spec.sail10
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 {