diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-28 12:51:18 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-28 12:51:18 +0200 |
commit | ac205c117a809aa40132f4184d04371e0e467b6c (patch) | |
tree | dcfaeb8ab12b5539609d58d22ef88592ed8728cf /mppa_k1c/SelectOpproof.v | |
parent | 6d904a7952816b1e1c6ba5c560e938713f2093db (diff) | |
download | compcert-kvx-ac205c117a809aa40132f4184d04371e0e467b6c.tar.gz compcert-kvx-ac205c117a809aa40132f4184d04371e0e467b6c.zip |
more insf detection
Diffstat (limited to 'mppa_k1c/SelectOpproof.v')
-rw-r--r-- | mppa_k1c/SelectOpproof.v | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mppa_k1c/SelectOpproof.v b/mppa_k1c/SelectOpproof.v index 8bfcf1b2..c94f9c0c 100644 --- a/mppa_k1c/SelectOpproof.v +++ b/mppa_k1c/SelectOpproof.v @@ -722,6 +722,37 @@ Proof. 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] | ]. + * subst y. subst x. + TrivialExists. simpl. f_equal. + unfold insf. + rewrite Risbitfield. + rewrite Rmask. + rewrite Rnmask. + simpl. + unfold bitfield_mask. + subst zstart. + rewrite (Val.or_commut (Val.and v1 _)). + rewrite (Val.or_commut (Val.and v1 _)). + destruct v0; simpl; trivial. + unfold Int.ltu, Int.iwordsize, Int.zwordsize. + rewrite Int.unsigned_repr. + ** rewrite Int.unsigned_repr. + *** simpl. + rewrite Int.shl_zero. + reflexivity. + *** simpl. + unfold Int.max_unsigned, Int.modulus. + simpl. + omega. + ** unfold Int.max_unsigned, Int.modulus. + simpl. + omega. + * apply DEFAULT. + + apply DEFAULT. - apply DEFAULT. Qed. |