summaryrefslogtreecommitdiffstats
path: root/lib/libc/arm/aeabi/aeabi_vfp_float.S
diff options
context:
space:
mode:
authorandrew <andrew@FreeBSD.org>2014-10-22 13:50:38 +0000
committerandrew <andrew@FreeBSD.org>2014-10-22 13:50:38 +0000
commit58b9da93f03431d6fcab3cd00dd912dbb9b13e20 (patch)
tree6bd00b106ee88f162bf7d09fc60afd27155dd062 /lib/libc/arm/aeabi/aeabi_vfp_float.S
parenteb3582e16fc01e7c3e10471374605153ea6bd1f2 (diff)
downloadFreeBSD-src-58b9da93f03431d6fcab3cd00dd912dbb9b13e20.zip
FreeBSD-src-58b9da93f03431d6fcab3cd00dd912dbb9b13e20.tar.gz
MFC r273088:
Add support for the __aeabi_c*cmp* functions. These are similar to the existing functions with the exception they use the condition flags to store the result.
Diffstat (limited to 'lib/libc/arm/aeabi/aeabi_vfp_float.S')
-rw-r--r--lib/libc/arm/aeabi/aeabi_vfp_float.S24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/libc/arm/aeabi/aeabi_vfp_float.S b/lib/libc/arm/aeabi/aeabi_vfp_float.S
index d81b2b2..c9a9a7e 100644
--- a/lib/libc/arm/aeabi/aeabi_vfp_float.S
+++ b/lib/libc/arm/aeabi/aeabi_vfp_float.S
@@ -33,6 +33,30 @@ __FBSDID("$FreeBSD$");
.fpu vfp
.syntax unified
+/* void __aeabi_cfcmpeq(float, float) */
+AEABI_ENTRY(cfcmpeq)
+ LOAD_SREGS(s0, s1, r0, r1)
+ vcmp.f32 s0, s1
+ vmrs APSR_nzcv, fpscr
+ RET
+AEABI_END(cfcmpeq)
+
+/* void __aeabi_cfcmple(float, float) */
+AEABI_ENTRY(cfcmple)
+ LOAD_SREGS(s0, s1, r0, r1)
+ vcmpe.f32 s0, s1
+ vmrs APSR_nzcv, fpscr
+ RET
+AEABI_END(cfcmple)
+
+/* void __aeabi_cfrcmple(float, float) */
+AEABI_ENTRY(cfrcmple)
+ LOAD_SREGS(s0, s1, r0, r1)
+ vcmpe.f32 s1, s0
+ vmrs APSR_nzcv, fpscr
+ RET
+AEABI_END(cfrcmple)
+
/* int __aeabi_fcmpeq(float, float) */
AEABI_ENTRY(fcmpeq)
LOAD_SREGS(s0, s1, r0, r1)
OpenPOWER on IntegriCloud