aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/Asmgenproof.v
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2021-05-13 17:26:05 +0200
committerXavier Leroy <xavier.leroy@college-de-france.fr>2021-05-13 17:26:05 +0200
commit39710f78062a4a999c079b58181a58e62b78c30b (patch)
tree681bd58bbec1bdfb5b3b2074f4ad55193b8b7eb0 /riscV/Asmgenproof.v
parent7b3bc19117e48d601e392f2db2c135c7df1d8376 (diff)
downloadcompcert-kvx-39710f78062a4a999c079b58181a58e62b78c30b.tar.gz
compcert-kvx-39710f78062a4a999c079b58181a58e62b78c30b.zip
Register X1 is destroyed by some built-in functions
E.g. __builtin_bswap. Update Asm modeling of builtins accordingly.
Diffstat (limited to 'riscV/Asmgenproof.v')
-rw-r--r--riscV/Asmgenproof.v6
1 files changed, 4 insertions, 2 deletions
diff --git a/riscV/Asmgenproof.v b/riscV/Asmgenproof.v
index ab07d071..798dad9f 100644
--- a/riscV/Asmgenproof.v
+++ b/riscV/Asmgenproof.v
@@ -835,13 +835,15 @@ Local Transparent destroyed_by_op.
econstructor; eauto.
instantiate (2 := tf); instantiate (1 := x).
unfold nextinstr. rewrite Pregmap.gss.
- rewrite set_res_other. rewrite undef_regs_other_2. rewrite Pregmap.gso by congruence.
+ rewrite set_res_other. rewrite undef_regs_other_2.
+ rewrite ! Pregmap.gso by congruence.
rewrite <- H1. simpl. econstructor; eauto.
eapply code_tail_next_int; eauto.
rewrite preg_notin_charact. intros. auto with asmgen.
auto with asmgen.
apply agree_nextinstr. eapply agree_set_res; auto.
- eapply agree_undef_regs; eauto. intros. rewrite undef_regs_other_2; auto. apply Pregmap.gso; auto with asmgen.
+ eapply agree_undef_regs; eauto. intros. rewrite undef_regs_other_2; auto.
+ rewrite ! Pregmap.gso; auto with asmgen.
congruence.
- (* Mgoto *)