diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-09-13 11:44:32 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-09-13 11:44:32 +0200 |
commit | 378ac3925503e6efd24cc34796e85d95c031e72d (patch) | |
tree | 98005d8fc2dfdd4b0e48aebbd3aaaa1c3b8adc0e /powerpc/Asmgen.v | |
parent | 470f6402ea49a81a5c861fcce66cb05ebff977c1 (diff) | |
download | compcert-kvx-378ac3925503e6efd24cc34796e85d95c031e72d.tar.gz compcert-kvx-378ac3925503e6efd24cc34796e85d95c031e72d.zip |
Use PowerPC 64 bits instructions (when available) for int<->FP conversions.
Also: implement __builtin_isel on non-EREF platforms with a branch-free instruction sequence.
Also: extend ./configure so that it recognizes "ppc64-" and "e5500-" platforms in addition to "ppc-".
Diffstat (limited to 'powerpc/Asmgen.v')
-rw-r--r-- | powerpc/Asmgen.v | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/powerpc/Asmgen.v b/powerpc/Asmgen.v index db3b7028..fe3a6441 100644 --- a/powerpc/Asmgen.v +++ b/powerpc/Asmgen.v @@ -496,6 +496,15 @@ Definition transl_op | Ointoffloat, a1 :: nil => do r1 <- freg_of a1; do r <- ireg_of res; OK (Pfcti r r1 :: k) + | Ointuoffloat, a1 :: nil => + do r1 <- freg_of a1; do r <- ireg_of res; + OK (Pfctiu r r1 :: k) + | Ofloatofint, a1 :: nil => + do r1 <- ireg_of a1; do r <- freg_of res; + OK (Pfcfi r r1 :: k) + | Ofloatofintu, a1 :: nil => + do r1 <- ireg_of a1; do r <- freg_of res; + OK (Pfcfiu r r1 :: k) | Ofloatofwords, a1 :: a2 :: nil => do r1 <- ireg_of a1; do r2 <- ireg_of a2; do r <- freg_of res; OK (Pfmake r r1 r2 :: k) |