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_double.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_double.S')
-rw-r--r-- | lib/libc/arm/aeabi/aeabi_vfp_double.S | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/libc/arm/aeabi/aeabi_vfp_double.S b/lib/libc/arm/aeabi/aeabi_vfp_double.S index 842412b..62100d2 100644 --- a/lib/libc/arm/aeabi/aeabi_vfp_double.S +++ b/lib/libc/arm/aeabi/aeabi_vfp_double.S @@ -33,6 +33,33 @@ __FBSDID("$FreeBSD$"); .fpu vfp .syntax unified +/* void __aeabi_cdcmpeq(double, double) */ +AEABI_ENTRY(cdcmpeq) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmp.f64 d0, d1 + vmrs APSR_nzcv, fpscr + RET +AEABI_END(cdcmpeq) + +/* void __aeabi_cdcmple(double, double) */ +AEABI_ENTRY(cdcmple) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmpe.f64 d0, d1 + vmrs APSR_nzcv, fpscr + RET +AEABI_END(cdcmple) + +/* void __aeabi_cdrcmple(double, double) */ +AEABI_ENTRY(cdrcmple) + LOAD_DREG(d0, r0, r1) + LOAD_DREG(d1, r2, r3) + vcmpe.f64 d1, d0 + vmrs APSR_nzcv, fpscr + RET +AEABI_END(cdrcmple) + /* int __aeabi_dcmpeq(double, double) */ AEABI_ENTRY(dcmpeq) LOAD_DREG(d0, r0, r1) |