aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/SelectOp.vp
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-25 10:32:38 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-25 10:32:38 +0200
commitbb185aa85ddf32feed61d7888c1b199fffdd821f (patch)
tree04b9489a4ad344b635f958eefba2126709d10cf7 /mppa_k1c/SelectOp.vp
parentb66d6034fb09e6129ca24dd458fbef49e4cb98d7 (diff)
downloadcompcert-kvx-bb185aa85ddf32feed61d7888c1b199fffdd821f.tar.gz
compcert-kvx-bb185aa85ddf32feed61d7888c1b199fffdd821f.zip
IT COMPILES
Diffstat (limited to 'mppa_k1c/SelectOp.vp')
-rw-r--r--mppa_k1c/SelectOp.vp10
1 files changed, 5 insertions, 5 deletions
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp
index 8f953425..3e36a51c 100644
--- a/mppa_k1c/SelectOp.vp
+++ b/mppa_k1c/SelectOp.vp
@@ -203,11 +203,11 @@ Nondetfunction shrimm (e1: expr) (n: int) :=
then Eop (Oshrimm (Int.add n n1)) (t1:::Enil)
else Eop (Oshrimm n) (e1:::Enil)
| Eop (Oshlimm n1) (t1:::Enil) =>
- let stop := Int.sub Int.iwordsize (Int.add n1 Int.one) in
- let start := Int.sub (Int.add (Int.add n stop) Int.one) Int.iwordsize in
- if (Int.cmp Cle start stop)
- && (Int.cmp Cge start Int.zero)
- && (Int.cmp Clt stop Int.iwordsize)
+ let stop := Z.sub Int.zwordsize (Z.add (Int.unsigned n1) Z.one) in
+ let start := Z.sub (Z.add (Z.add (Int.unsigned n) stop) Z.one) Int.zwordsize in
+ if (Z.leb start stop)
+ && (Z.geb start Z.zero)
+ && (Z.ltb stop Int.zwordsize)
then Eop (Oextfz stop start) (t1:::Enil)
else Eop (Oshrimm n) (e1:::Enil)
| _ =>