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/SelectOp.vp | |
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/SelectOp.vp')
-rw-r--r-- | mppa_k1c/SelectOp.vp | 4 |
1 files changed, 3 insertions, 1 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) |