aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/SelectOp.vp
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-18 11:57:17 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-18 11:57:17 +0100
commit19e9d0ca5d4ba59db9c1bc40842ac08b5ca4ac41 (patch)
tree16c28f9cb84e99b7ef9e171092b041df6c7fcbe8 /mppa_k1c/SelectOp.vp
parentcfc949a5fce43f2d4e094b52ea42d619f64692c1 (diff)
downloadcompcert-kvx-19e9d0ca5d4ba59db9c1bc40842ac08b5ca4ac41.tar.gz
compcert-kvx-19e9d0ca5d4ba59db9c1bc40842ac08b5ca4ac41.zip
andn/orn start being generated
Diffstat (limited to 'mppa_k1c/SelectOp.vp')
-rw-r--r--mppa_k1c/SelectOp.vp2
1 files changed, 2 insertions, 0 deletions
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp
index 2878da1a..18234286 100644
--- a/mppa_k1c/SelectOp.vp
+++ b/mppa_k1c/SelectOp.vp
@@ -223,6 +223,7 @@ Nondetfunction and (e1: expr) (e2: expr) :=
match e1, e2 with
| Eop (Ointconst n1) Enil, t2 => andimm n1 t2
| t1, Eop (Ointconst n2) Enil => andimm n2 t1
+ | (Eop Onot (t1:::Enil)), t2 => Eop Oandn (t1:::t2:::Enil)
| _, _ => Eop Oand (e1:::e2:::Enil)
end.
@@ -253,6 +254,7 @@ Nondetfunction or (e1: expr) (e2: expr) :=
if Int.eq (Int.add n1 n2) Int.iwordsize && same_expr_pure t1 t2
then Eop (Ororimm n2) (t1:::Enil)
else Eop Oor (e1:::e2:::Enil)
+ | (Eop Onot (t1:::Enil)), t2 => Eop Oorn (t1:::t2:::Enil)
| _, _ => Eop Oor (e1:::e2:::Enil)
end.