Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Feb 2012 07:18:59 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r231062 - projects/arm_eabi/contrib/compiler-rt/lib
Message-ID:  <201202060718.q167Ixe9021698@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
+



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202060718.q167Ixe9021698>