aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/Op.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-07 14:20:34 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-07 14:20:34 +0200
commit54846ce3ee63b8fff66ac5bf27d1c89ac701ed94 (patch)
tree305a5d18e95f1513c4d160467786c5527cbb634c /riscV/Op.v
parentd84a003dc41c1ce572e86f399f5a610a78eda15f (diff)
downloadcompcert-kvx-54846ce3ee63b8fff66ac5bf27d1c89ac701ed94.tar.gz
compcert-kvx-54846ce3ee63b8fff66ac5bf27d1c89ac701ed94.zip
fix for Risc-V
Diffstat (limited to 'riscV/Op.v')
-rw-r--r--riscV/Op.v14
1 files changed, 14 insertions, 0 deletions
diff --git a/riscV/Op.v b/riscV/Op.v
index 73d3f543..97bc301a 100644
--- a/riscV/Op.v
+++ b/riscV/Op.v
@@ -1343,6 +1343,20 @@ Proof.
econstructor; eauto. rewrite Ptrofs.add_zero_l; auto.
Qed.
+
+Lemma eval_addressing_inject_none:
+ forall addr vl1 vl2,
+ Val.inject_list f vl1 vl2 ->
+ eval_addressing genv (Vptr sp1 Ptrofs.zero) addr vl1 = None ->
+ eval_addressing genv (Vptr sp2 Ptrofs.zero) (shift_stack_addressing delta addr) vl2 = None.
+Proof.
+ intros.
+ rewrite eval_shift_stack_addressing.
+ eapply eval_addressing_inj_none with (sp1 := Vptr sp1 Ptrofs.zero); eauto.
+ intros. apply symbol_address_inject.
+ econstructor; eauto. rewrite Ptrofs.add_zero_l; auto.
+Qed.
+
Lemma eval_operation_inject:
forall op vl1 vl2 v1 m1 m2,
Val.inject_list f vl1 vl2 ->