svn commit: r231062 - projects/arm_eabi/contrib/compiler-rt/lib

Andrew Turner andrew at FreeBSD.org
Mon Feb 6 07:18:59 UTC 2012


Author: andrew
Date: Mon Feb  6 07:18:59 2012
New Revision: 231062
URL: http://svn.freebsd.org/changeset/base/231062

Log:
  Implement __aeabi_{d,f}cmp*

Modified:
  projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c
  projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c

Modified: projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c
==============================================================================
--- projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c	Mon Feb  6 07:16:13 2012	(r231061)
+++ projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c	Mon Feb  6 07:18:59 2012	(r231062)
@@ -130,3 +130,31 @@ enum GE_RESULT __gtdf2(fp_t a, fp_t b) {
     return __gedf2(a, b);
 }
 
+#ifdef __ARM_EABI__
+// The following are required for the ARM EABI.
+
+int __aeabi_dcmpeq(fp_t a, fp_t b) {
+    return __ledf2(a, b) == 0;
+}
+
+int __aeabi_dcmplt(fp_t a, fp_t b) {
+    return __ledf2(a, b) < 0;
+}
+
+int __aeabi_dcmple(fp_t a, fp_t b) {
+    return __ledf2(a, b) <= 0;
+}
+
+int __aeabi_dcmpge(fp_t a, fp_t b) {
+    return __gedf2(a, b) >= 0;
+}
+
+int __aeabi_dcmpgt(fp_t a, fp_t b) {
+    return __gedf2(a, b) > 0;
+}
+
+int __aeabi_dcmpun(fp_t a, fp_t b) {
+    return __unorddf2(a, b);
+}
+#endif
+

Modified: projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c
==============================================================================
--- projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c	Mon Feb  6 07:16:13 2012	(r231061)
+++ projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c	Mon Feb  6 07:18:59 2012	(r231062)
@@ -129,3 +129,32 @@ enum LE_RESULT __nesf2(fp_t a, fp_t b) {
 enum GE_RESULT __gtsf2(fp_t a, fp_t b) {
     return __gesf2(a, b);
 }
+
+#ifdef __ARM_EABI__
+// The following are required for the ARM EABI.
+
+int __aeabi_fcmpeq(fp_t a, fp_t b) {
+    return __lesf2(a, b) == 0;
+}
+
+int __aeabi_fcmplt(fp_t a, fp_t b) {
+    return __lesf2(a, b) < 0;
+}
+
+int __aeabi_fcmple(fp_t a, fp_t b) {
+    return __lesf2(a, b) <= 0;
+}
+
+int __aeabi_fcmpge(fp_t a, fp_t b) {
+    return __gesf2(a, b) >= 0;
+}
+
+int __aeabi_fcmpgt(fp_t a, fp_t b) {
+    return __gesf2(a, b) > 0;
+}
+
+int __aeabi_fcmpun(fp_t a, fp_t b) {
+    return __unordsf2(a, b);
+}
+#endif
+


More information about the svn-src-projects mailing list