aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-04-20 23:51:53 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-04-20 23:51:53 +0200
commitadb864a2a9e607f45e73c518f267264fdb570a19 (patch)
treee1556e6eadd0fcda9aaef3fe4dc9db0d59353dba /backend
parentfcf5b5c840f93d8c8b09ba299ab3962f43f080d3 (diff)
downloadcompcert-kvx-adb864a2a9e607f45e73c518f267264fdb570a19.tar.gz
compcert-kvx-adb864a2a9e607f45e73c518f267264fdb570a19.zip
forward moves into store source
Diffstat (limited to 'backend')
-rw-r--r--backend/CSE2.v6
-rw-r--r--backend/CSE2proof.v5
2 files changed, 7 insertions, 4 deletions
diff --git a/backend/CSE2.v b/backend/CSE2.v
index d9fe5799..dabbaa22 100644
--- a/backend/CSE2.v
+++ b/backend/CSE2.v
@@ -389,10 +389,10 @@ Definition apply_external_call ef (rel : RELATION.t) : RELATION.t :=
| Some bf => rel
| None => kill_mem rel
end
- | EF_malloc (* FIXME *)
+ | EF_malloc (* would need lessdef *)
| EF_external _ _
| EF_vstore _
- | EF_free (* FIXME *)
+ | EF_free (* would need lessdef? *)
| EF_memcpy _ _ (* FIXME *)
| EF_inline_asm _ _ _ => kill_mem rel
| _ => rel
@@ -476,7 +476,7 @@ Definition transf_instr (fmap : option (PMap.t RB.t))
| Some src => Iop Omove (src::nil) dst s
end
| Istore chunk addr args src s =>
- Istore chunk addr (subst_args fmap pc args) src s
+ Istore chunk addr (subst_args fmap pc args) (subst_arg fmap pc src) s
| Icall sig ros args dst s =>
Icall sig ros (subst_args fmap pc args) dst s
| Itailcall sig ros args =>
diff --git a/backend/CSE2proof.v b/backend/CSE2proof.v
index 9e0ad909..f9c7b400 100644
--- a/backend/CSE2proof.v
+++ b/backend/CSE2proof.v
@@ -1527,7 +1527,10 @@ Proof.
assert (eval_addressing tge sp addr rs ## args = Some a).
rewrite <- H0. apply eval_addressing_preserved. exact symbols_preserved.
eapply exec_Istore; eauto.
- rewrite (subst_args_ok' sp m); assumption.
+ - rewrite (subst_args_ok' sp m) by assumption.
+ eassumption.
+ - rewrite (subst_arg_ok' sp m) by assumption.
+ eassumption.
}
constructor; auto.