From e20c75e0d54c38b5fab9cb12058b9918ceff3ae4 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sun, 28 Apr 2019 08:48:15 +0200 Subject: progress on bitfield detection --- mppa_k1c/SelectOp.vp | 7 ++++++- mppa_k1c/SelectOpproof.v | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp index bdceced8..2987fd1d 100644 --- a/mppa_k1c/SelectOp.vp +++ b/mppa_k1c/SelectOp.vp @@ -339,7 +339,12 @@ Nondetfunction or (e1: expr) (e2: expr) := | (Eop (Oandimm nmask) (prev:::Enil)), (Eop (Oandimm mask) ((Eop (Oshlimm start) (fld:::Enil)):::Enil)) => - Eop Oor (e1:::e2:::Enil) + 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' + then Eop Oor (e1:::e2:::Enil) + else Eop Oor (e1:::e2:::Enil) | _, _ => Eop Oor (e1:::e2:::Enil) end. diff --git a/mppa_k1c/SelectOpproof.v b/mppa_k1c/SelectOpproof.v index dc8f16ab..1bd727b9 100644 --- a/mppa_k1c/SelectOpproof.v +++ b/mppa_k1c/SelectOpproof.v @@ -700,7 +700,7 @@ Proof. rewrite Int.or_commut. rewrite Int.or_zero. reflexivity. - - apply DEFAULT. + - destruct (Int.eq_dec _ _); apply DEFAULT. - apply DEFAULT. Qed. -- cgit