diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-13 16:44:33 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-13 16:44:33 +0200 |
commit | c785f245a68aab9078c37b729fa916f2feae76f0 (patch) | |
tree | 604f15e724b3cacb5b692756b541a5515a70896a /mppa_k1c/SelectOp.vp | |
parent | 5e53b6e6447b22eb34e5be1bc45320ca4e3d82a1 (diff) | |
download | compcert-kvx-c785f245a68aab9078c37b729fa916f2feae76f0.tar.gz compcert-kvx-c785f245a68aab9078c37b729fa916f2feae76f0.zip |
32-bit modulo now uses sign extend then call to the 64-bit function
Diffstat (limited to 'mppa_k1c/SelectOp.vp')
-rw-r--r-- | mppa_k1c/SelectOp.vp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp index c4b01d89..aac3010e 100644 --- a/mppa_k1c/SelectOp.vp +++ b/mppa_k1c/SelectOp.vp @@ -430,7 +430,11 @@ Definition divu_base (e1: expr) (e2: expr) := :::Enil). Definition modu_base (e1: expr) (e2: expr) := - Eexternal i32_umod sig_ii_i (e1 ::: e2 ::: Enil). + Eop Olowlong + ((Eexternal i64_umod sig_ll_l + ((Eop Ocast32unsigned (e1 ::: Enil))::: + (Eop Ocast32unsigned (e2 ::: Enil))::: Enil)) + :::Enil). Definition shrximm (e1: expr) (n2: int) := if Int.eq n2 Int.zero then e1 else Eop (Oshrximm n2) (e1:::Enil). |