diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-16 14:47:28 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-16 14:47:28 +0200 |
commit | be0b9e66ce1fd71830d9316a13afc64d9a71552e (patch) | |
tree | 47e7c4350a107cdd7615761065cc823ed1abec60 /runtime/mppa_k1c/vararg.S | |
parent | aecc44ba24c68b03f5cd978ce193ac9b7bc9bb42 (diff) | |
download | compcert-kvx-be0b9e66ce1fd71830d9316a13afc64d9a71552e.tar.gz compcert-kvx-be0b9e66ce1fd71830d9316a13afc64d9a71552e.zip |
udiv
Diffstat (limited to 'runtime/mppa_k1c/vararg.S')
-rw-r--r-- | runtime/mppa_k1c/vararg.S | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/runtime/mppa_k1c/vararg.S b/runtime/mppa_k1c/vararg.S index e7b05893..9869eb0b 100644 --- a/runtime/mppa_k1c/vararg.S +++ b/runtime/mppa_k1c/vararg.S @@ -59,7 +59,6 @@ __compcert_acswapw: .globl __compcert_i32_umod __compcert_i32_sdiv: __compcert_i32_smod: -__compcert_i32_udiv: __compcert_i32_umod: sxwd $r0 = $r0 sxwd $r1 = $r1 @@ -87,3 +86,31 @@ __compcert_i32_umod: fixedd.rz $r0 = $r0, 0 ret ;; + +__compcert_i32_udiv: + zxwd $r0 = $r0 + zxwd $r1 = $r1 + make $r2 = 0x3ff0000000000000 + ;; + floatud.rn.s $r0 = $r0, 0 + ;; + floatud.rn.s $r3 = $r1, 0 + ;; + floatuw.rn.s $r1 = $r1, 0 + ;; + finvw $r1=$r1 + ;; + fwidenlwd $r1 = $r1 + ;; + fmuld $r0 = $r0, $r1 + ;; + ffmsd $r2 = $r1, $r3 + copyd $r1 = $r0 + ;; + ffmad $r1 = $r2, $r0 + ;; + ffmad $r0 = $r2, $r1 + ;; + fixedud.rz $r0 = $r0, 0 + ret + ;; |