diff options
author | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-09-27 14:18:59 +0200 |
---|---|---|
committer | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-09-27 14:18:59 +0200 |
commit | 475d590db4877d0eddbba675d0c54343f4d04ccf (patch) | |
tree | 9880c4f3b2e0561fa42abd9babb585753c3d834c /kvx/SelectOpproof.v | |
parent | 2789e6179af061381f5b18a268adb562b28bcb8e (diff) | |
download | compcert-kvx-475d590db4877d0eddbba675d0c54343f4d04ccf.tar.gz compcert-kvx-475d590db4877d0eddbba675d0c54343f4d04ccf.zip |
recognize insf (missing one case)
Diffstat (limited to 'kvx/SelectOpproof.v')
-rw-r--r-- | kvx/SelectOpproof.v | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/kvx/SelectOpproof.v b/kvx/SelectOpproof.v index 45aa3343..392e1077 100644 --- a/kvx/SelectOpproof.v +++ b/kvx/SelectOpproof.v @@ -788,6 +788,29 @@ Proof. * apply DEFAULT. + apply DEFAULT. - set (zstop := (int_highest_bit mask)). + set (zstart := (Int.unsigned start)). + destruct (is_bitfield _ _) eqn:Risbitfield. + + destruct (and_dec _ _) as [[Rmask Rnmask] | ]. + * simpl in H6. + injection H6. + clear H6. + intro. subst y. subst x. + TrivialExists. + rewrite Val.or_commut. + simpl. f_equal. + unfold insf. + rewrite Risbitfield. + rewrite Rmask. + rewrite Rnmask. + simpl. + unfold bitfield_mask. + subst v1. + subst zstart. + rewrite Int.repr_unsigned. + reflexivity. + * apply DEFAULT. + + apply DEFAULT. + - set (zstop := (int_highest_bit mask)). set (zstart := 0). destruct (is_bitfield _ _) eqn:Risbitfield. + destruct (and_dec _ _) as [[Rmask Rnmask] | ]. |