diff options
author | andrew <andrew@FreeBSD.org> | 2014-10-22 13:50:38 +0000 |
---|---|---|
committer | andrew <andrew@FreeBSD.org> | 2014-10-22 13:50:38 +0000 |
commit | 58b9da93f03431d6fcab3cd00dd912dbb9b13e20 (patch) | |
tree | 6bd00b106ee88f162bf7d09fc60afd27155dd062 /lib/libc/arm/aeabi/aeabi_vfp_float.S | |
parent | eb3582e16fc01e7c3e10471374605153ea6bd1f2 (diff) | |
download | FreeBSD-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.S | 24 |
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) |