aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/CSE2depsproof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-11-23 18:02:15 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-11-23 18:02:15 +0100
commitd4f3b8645c3c94cc376a8f35513bcb28da9b1722 (patch)
tree1d2f8cb4ca9477d52f13ebf9aea302206604782f /riscV/CSE2depsproof.v
parent36c82ee8b0ac340a663a3790d70fd200d3f35ef9 (diff)
downloadcompcert-kvx-d4f3b8645c3c94cc376a8f35513bcb28da9b1722.tar.gz
compcert-kvx-d4f3b8645c3c94cc376a8f35513bcb28da9b1722.zip
fix bug #223 on Risc-V
Diffstat (limited to 'riscV/CSE2depsproof.v')
-rw-r--r--riscV/CSE2depsproof.v12
1 files changed, 10 insertions, 2 deletions
diff --git a/riscV/CSE2depsproof.v b/riscV/CSE2depsproof.v
index f283c8ac..cf9e62b1 100644
--- a/riscV/CSE2depsproof.v
+++ b/riscV/CSE2depsproof.v
@@ -123,7 +123,7 @@ Proof.
intros until rs.
intros ADDR ADDR' OVERLAP STORE.
destruct addr; destruct addr'; try discriminate.
- { (* Aindexed / Aindexed *)
+- (* Aindexed / Aindexed *)
destruct args as [ | base [ | ]]. 1,3: discriminate.
destruct args' as [ | base' [ | ]]. 1,3: discriminate.
simpl in OVERLAP.
@@ -133,7 +133,15 @@ Proof.
2: discriminate.
simpl in *.
eapply load_store_away with (F:=F) (V:=V) (genv:=genv) (sp:=sp); eassumption.
- }
+
+- (* Ainstack / Ainstack *)
+ destruct args. 2: discriminate.
+ destruct args'. 2: discriminate.
+ cbn in OVERLAP.
+ destruct (can_swap_accesses_ofs (Ptrofs.unsigned i0) chunk' (Ptrofs.unsigned i) chunk) eqn:SWAP.
+ 2: discriminate.
+ cbn in *.
+ eapply load_store_away with (F:=F) (V:=V) (genv:=genv) (sp:=sp); eassumption.
Qed.
End SOUNDNESS.