diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-28 09:05:14 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-28 09:05:14 +0200 |
commit | 39ee073b53eb49328cbd5d3d09375030f321424e (patch) | |
tree | 7d125d5fbf9801bdfbe4217e8494b5eb5038d110 /mppa_k1c | |
parent | e20c75e0d54c38b5fab9cb12058b9918ceff3ae4 (diff) | |
download | compcert-kvx-39ee073b53eb49328cbd5d3d09375030f321424e.tar.gz compcert-kvx-39ee073b53eb49328cbd5d3d09375030f321424e.zip |
some more on bit fields insert detection
Diffstat (limited to 'mppa_k1c')
-rw-r--r-- | mppa_k1c/SelectOp.vp | 4 | ||||
-rw-r--r-- | mppa_k1c/SelectOpproof.v | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp index 2987fd1d..2bd51f97 100644 --- a/mppa_k1c/SelectOp.vp +++ b/mppa_k1c/SelectOp.vp @@ -52,6 +52,7 @@ Require Import Op. Require Import CminorSel. Require Import OpHelpers. Require Import ExtValues. +Require Import DecBoolOps. Local Open Scope cminorsel_scope. @@ -342,7 +343,8 @@ Nondetfunction or (e1: expr) (e2: expr) := let zstart := Int.unsigned start in let zstop := int_highest_bit mask in let mask' := Int.repr (zbitfield_mask zstop zstart) in - if Int.eq_dec mask mask' + if and_dec (Int.eq_dec mask mask') + (Int.eq_dec nmask (Int.not mask')) then Eop Oor (e1:::e2:::Enil) else Eop Oor (e1:::e2:::Enil) | _, _ => Eop Oor (e1:::e2:::Enil) diff --git a/mppa_k1c/SelectOpproof.v b/mppa_k1c/SelectOpproof.v index 1bd727b9..b8f37c7b 100644 --- a/mppa_k1c/SelectOpproof.v +++ b/mppa_k1c/SelectOpproof.v @@ -33,6 +33,7 @@ Require Import SelectOp. Require Import Events. Require Import OpHelpers. Require Import OpHelpersproof. +Require Import DecBoolOps. Local Open Scope cminorsel_scope. Local Open Scope string_scope. @@ -700,7 +701,7 @@ Proof. rewrite Int.or_commut. rewrite Int.or_zero. reflexivity. - - destruct (Int.eq_dec _ _); apply DEFAULT. + - destruct (and_dec _ _); apply DEFAULT. - apply DEFAULT. Qed. |