diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2021-05-13 17:26:05 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2021-05-13 17:26:05 +0200 |
commit | 39710f78062a4a999c079b58181a58e62b78c30b (patch) | |
tree | 681bd58bbec1bdfb5b3b2074f4ad55193b8b7eb0 /riscV/Asmgenproof.v | |
parent | 7b3bc19117e48d601e392f2db2c135c7df1d8376 (diff) | |
download | compcert-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.v | 6 |
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 *) |