[llvm-commits] [compiler-rt] r129768 - in /compiler-rt/trunk/lib: adddf3.c addsf3.c arm/divsi3.S arm/udivsi3.S ashldi3.c ashrdi3.c assembly.h divdf3.c divsf3.c divsi3.c extendsfdf2.c fixdfdi.c fixdfsi.c fixsfdi.c fixsfsi.c fixunsdfdi.c fixunsdfsi.c fixunssfdi.c fixunssfsi.c floatdidf.c floatdisf.c floatsidf.c floatsisf.c floatundidf.c floatundisf.c floatunsidf.c floatunsisf.c int_lib.h lshrdi3.c muldf3.c muldi3.c mulsf3.c negdf2.c negsf2.c subdf3.c subsf3.c truncdfsf2.c udivmoddi4.c udivsi3.c

Anton Korobeynikov asl at math.spbu.ru
Tue Apr 19 10:51:24 PDT 2011


Author: asl
Date: Tue Apr 19 12:51:24 2011
New Revision: 129768

URL: http://llvm.org/viewvc/llvm-project?rev=129768&view=rev
Log:
Add ARM EABI function aliases to routines

Modified:
    compiler-rt/trunk/lib/adddf3.c
    compiler-rt/trunk/lib/addsf3.c
    compiler-rt/trunk/lib/arm/divsi3.S
    compiler-rt/trunk/lib/arm/udivsi3.S
    compiler-rt/trunk/lib/ashldi3.c
    compiler-rt/trunk/lib/ashrdi3.c
    compiler-rt/trunk/lib/assembly.h
    compiler-rt/trunk/lib/divdf3.c
    compiler-rt/trunk/lib/divsf3.c
    compiler-rt/trunk/lib/divsi3.c
    compiler-rt/trunk/lib/extendsfdf2.c
    compiler-rt/trunk/lib/fixdfdi.c
    compiler-rt/trunk/lib/fixdfsi.c
    compiler-rt/trunk/lib/fixsfdi.c
    compiler-rt/trunk/lib/fixsfsi.c
    compiler-rt/trunk/lib/fixunsdfdi.c
    compiler-rt/trunk/lib/fixunsdfsi.c
    compiler-rt/trunk/lib/fixunssfdi.c
    compiler-rt/trunk/lib/fixunssfsi.c
    compiler-rt/trunk/lib/floatdidf.c
    compiler-rt/trunk/lib/floatdisf.c
    compiler-rt/trunk/lib/floatsidf.c
    compiler-rt/trunk/lib/floatsisf.c
    compiler-rt/trunk/lib/floatundidf.c
    compiler-rt/trunk/lib/floatundisf.c
    compiler-rt/trunk/lib/floatunsidf.c
    compiler-rt/trunk/lib/floatunsisf.c
    compiler-rt/trunk/lib/int_lib.h
    compiler-rt/trunk/lib/lshrdi3.c
    compiler-rt/trunk/lib/muldf3.c
    compiler-rt/trunk/lib/muldi3.c
    compiler-rt/trunk/lib/mulsf3.c
    compiler-rt/trunk/lib/negdf2.c
    compiler-rt/trunk/lib/negsf2.c
    compiler-rt/trunk/lib/subdf3.c
    compiler-rt/trunk/lib/subsf3.c
    compiler-rt/trunk/lib/truncdfsf2.c
    compiler-rt/trunk/lib/udivmoddi4.c
    compiler-rt/trunk/lib/udivsi3.c

Modified: compiler-rt/trunk/lib/adddf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/adddf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/adddf3.c (original)
+++ compiler-rt/trunk/lib/adddf3.c Tue Apr 19 12:51:24 2011
@@ -12,9 +12,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "int_lib.h"
+
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+ARM_EABI_FNALIAS(dadd, adddf3);
+
 fp_t __adddf3(fp_t a, fp_t b) {
     
     rep_t aRep = toRep(a);

Modified: compiler-rt/trunk/lib/addsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/addsf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/addsf3.c (original)
+++ compiler-rt/trunk/lib/addsf3.c Tue Apr 19 12:51:24 2011
@@ -15,6 +15,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(fadd, addsf3);
+
 fp_t __addsf3(fp_t a, fp_t b) {
 
     rep_t aRep = toRep(a);

Modified: compiler-rt/trunk/lib/arm/divsi3.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/divsi3.S?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/arm/divsi3.S (original)
+++ compiler-rt/trunk/lib/arm/divsi3.S Tue Apr 19 12:51:24 2011
@@ -22,6 +22,8 @@
 
 .syntax unified
 .align 3
+// Ok, APCS and AAPCS agree on 32 bit args, so it's safe to use the same routine.
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_idiv, __divsi3)
 DEFINE_COMPILERRT_FUNCTION(__divsi3)
     ESTABLISH_FRAME
 //  Set aside the sign of the quotient.

Modified: compiler-rt/trunk/lib/arm/udivsi3.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/udivsi3.S?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/arm/udivsi3.S (original)
+++ compiler-rt/trunk/lib/arm/udivsi3.S Tue Apr 19 12:51:24 2011
@@ -30,6 +30,8 @@
 
 .syntax unified
 .align 3
+// Ok, APCS and AAPCS agree on 32 bit args, so it's safe to use the same routine.
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_uidiv, __udivsi3)
 DEFINE_COMPILERRT_FUNCTION(__udivsi3)
 //  We use a simple digit by digit algorithm; before we get into the actual 
 //  divide loop, we must calculate the left-shift amount necessary to align

Modified: compiler-rt/trunk/lib/ashldi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ashldi3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/ashldi3.c (original)
+++ compiler-rt/trunk/lib/ashldi3.c Tue Apr 19 12:51:24 2011
@@ -18,6 +18,8 @@
 
 /* Precondition:  0 <= b < bits_in_dword */
 
+ARM_EABI_FNALIAS(llsl, ashldi3);
+
 di_int
 __ashldi3(di_int a, si_int b)
 {

Modified: compiler-rt/trunk/lib/ashrdi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ashrdi3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/ashrdi3.c (original)
+++ compiler-rt/trunk/lib/ashrdi3.c Tue Apr 19 12:51:24 2011
@@ -18,6 +18,8 @@
 
 /* Precondition:  0 <= b < bits_in_dword */
 
+ARM_EABI_FNALIAS(lasr, ashrdi3);
+
 di_int
 __ashrdi3(di_int a, si_int b)
 {

Modified: compiler-rt/trunk/lib/assembly.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/assembly.h?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/assembly.h (original)
+++ compiler-rt/trunk/lib/assembly.h Tue Apr 19 12:51:24 2011
@@ -55,4 +55,15 @@
   HIDDEN_DIRECTIVE name SEPARATOR                          \
   name:
 
+#define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target)     \
+  .globl SYMBOL_NAME(name) SEPARATOR                       \
+  .set SYMBOL_NAME(name), SYMBOL_NAME(target) SEPARATOR
+
+#if defined (__ARM_EABI__)
+# define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)      \
+  DEFINE_COMPILERRT_FUNCTION_ALIAS(aeabi_name, name)
+#else
+# define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
+#endif
+
 #endif /* COMPILERRT_ASSEMBLY_H */

Modified: compiler-rt/trunk/lib/divdf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/divdf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/divdf3.c (original)
+++ compiler-rt/trunk/lib/divdf3.c Tue Apr 19 12:51:24 2011
@@ -19,6 +19,10 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ddiv, divdf3);
+
 fp_t __divdf3(fp_t a, fp_t b) {
     
     const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;

Modified: compiler-rt/trunk/lib/divsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/divsf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/divsf3.c (original)
+++ compiler-rt/trunk/lib/divsf3.c Tue Apr 19 12:51:24 2011
@@ -19,6 +19,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(fdiv, divsf3);
+
 fp_t __divsf3(fp_t a, fp_t b) {
     
     const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;

Modified: compiler-rt/trunk/lib/divsi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/divsi3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/divsi3.c (original)
+++ compiler-rt/trunk/lib/divsi3.c Tue Apr 19 12:51:24 2011
@@ -18,6 +18,8 @@
 
 /* Returns: a / b */
 
+ARM_EABI_FNALIAS(idiv, divsi3);
+
 si_int
 __divsi3(si_int a, si_int b)
 {

Modified: compiler-rt/trunk/lib/extendsfdf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/extendsfdf2.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/extendsfdf2.c (original)
+++ compiler-rt/trunk/lib/extendsfdf2.c Tue Apr 19 12:51:24 2011
@@ -41,6 +41,8 @@
 #include <stdint.h>
 #include <limits.h>
 
+#include "int_lib.h"
+
 typedef float src_t;
 typedef uint32_t src_rep_t;
 #define SRC_REP_C UINT32_C
@@ -67,6 +69,8 @@
 
 // End helper routines.  Conversion implementation follows.
 
+ARM_EABI_FNALIAS(f2d, extendsfdf2);
+
 dst_t __extendsfdf2(src_t a) {
     
     // Various constants whose values follow from the type parameters.

Modified: compiler-rt/trunk/lib/fixdfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixdfdi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixdfdi.c (original)
+++ compiler-rt/trunk/lib/fixdfdi.c Tue Apr 19 12:51:24 2011
@@ -23,6 +23,8 @@
 
 /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
 
+ARM_EABI_FNALIAS(d2lz, fixdfdi);
+
 di_int
 __fixdfdi(double a)
 {

Modified: compiler-rt/trunk/lib/fixdfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixdfsi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixdfsi.c (original)
+++ compiler-rt/trunk/lib/fixdfsi.c Tue Apr 19 12:51:24 2011
@@ -16,6 +16,10 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(d2iz, fixdfsi);
+
 int __fixdfsi(fp_t a) {
     
     // Break a into sign, exponent, significand

Modified: compiler-rt/trunk/lib/fixsfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixsfdi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixsfdi.c (original)
+++ compiler-rt/trunk/lib/fixsfdi.c Tue Apr 19 12:51:24 2011
@@ -23,6 +23,8 @@
 
 /* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
 
+ARM_EABI_FNALIAS(d2lz, fixsfdi);
+
 di_int
 __fixsfdi(float a)
 {

Modified: compiler-rt/trunk/lib/fixsfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixsfsi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixsfsi.c (original)
+++ compiler-rt/trunk/lib/fixsfsi.c Tue Apr 19 12:51:24 2011
@@ -16,6 +16,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(f2iz, fixsfsi);
+
 int __fixsfsi(fp_t a) {
     
     // Break a into sign, exponent, significand

Modified: compiler-rt/trunk/lib/fixunsdfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixunsdfdi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixunsdfdi.c (original)
+++ compiler-rt/trunk/lib/fixunsdfdi.c Tue Apr 19 12:51:24 2011
@@ -26,6 +26,8 @@
 
 /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
 
+ARM_EABI_FNALIAS(d2ulz, fixunsdfdi);
+
 du_int
 __fixunsdfdi(double a)
 {

Modified: compiler-rt/trunk/lib/fixunsdfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixunsdfsi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixunsdfsi.c (original)
+++ compiler-rt/trunk/lib/fixunsdfsi.c Tue Apr 19 12:51:24 2011
@@ -26,6 +26,8 @@
 
 /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
 
+ARM_EABI_FNALIAS(d2uiz, fixunsdfsi);
+
 su_int
 __fixunsdfsi(double a)
 {

Modified: compiler-rt/trunk/lib/fixunssfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixunssfdi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixunssfdi.c (original)
+++ compiler-rt/trunk/lib/fixunssfdi.c Tue Apr 19 12:51:24 2011
@@ -26,6 +26,10 @@
 
 /* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(f2ulz, fixunssfdi);
+
 du_int
 __fixunssfdi(float a)
 {

Modified: compiler-rt/trunk/lib/fixunssfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/fixunssfsi.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/fixunssfsi.c (original)
+++ compiler-rt/trunk/lib/fixunssfsi.c Tue Apr 19 12:51:24 2011
@@ -26,6 +26,8 @@
 
 /* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
 
+ARM_EABI_FNALIAS(f2uiz, fixunssfsi);
+
 su_int
 __fixunssfsi(float a)
 {

Modified: compiler-rt/trunk/lib/floatdidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatdidf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatdidf.c (original)
+++ compiler-rt/trunk/lib/floatdidf.c Tue Apr 19 12:51:24 2011
@@ -23,6 +23,10 @@
 
 /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(l2d, floatdidf);
+
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; we'll set the inexact flag
  * as a side-effect of this computation.

Modified: compiler-rt/trunk/lib/floatdisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatdisf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatdisf.c (original)
+++ compiler-rt/trunk/lib/floatdisf.c Tue Apr 19 12:51:24 2011
@@ -23,6 +23,10 @@
 
 /* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(l2f, floatdisf);
+
 float
 __floatdisf(di_int a)
 {

Modified: compiler-rt/trunk/lib/floatsidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatsidf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatsidf.c (original)
+++ compiler-rt/trunk/lib/floatsidf.c Tue Apr 19 12:51:24 2011
@@ -16,6 +16,10 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(i2d, floatsidf);
+
 fp_t __floatsidf(int a) {
     
     const int aWidth = sizeof a * CHAR_BIT;

Modified: compiler-rt/trunk/lib/floatsisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatsisf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatsisf.c (original)
+++ compiler-rt/trunk/lib/floatsisf.c Tue Apr 19 12:51:24 2011
@@ -16,6 +16,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(i2f, floatsisf);
+
 fp_t __floatsisf(int a) {
     
     const int aWidth = sizeof a * CHAR_BIT;

Modified: compiler-rt/trunk/lib/floatundidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatundidf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatundidf.c (original)
+++ compiler-rt/trunk/lib/floatundidf.c Tue Apr 19 12:51:24 2011
@@ -23,6 +23,10 @@
 
 /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ul2d, floatundidf);
+
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; we'll set the inexact flag
  * as a side-effect of this computation.

Modified: compiler-rt/trunk/lib/floatundisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatundisf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatundisf.c (original)
+++ compiler-rt/trunk/lib/floatundisf.c Tue Apr 19 12:51:24 2011
@@ -23,6 +23,10 @@
 
 /* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ul2f, floatundisf);
+
 float
 __floatundisf(du_int a)
 {

Modified: compiler-rt/trunk/lib/floatunsidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatunsidf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatunsidf.c (original)
+++ compiler-rt/trunk/lib/floatunsidf.c Tue Apr 19 12:51:24 2011
@@ -16,6 +16,10 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ui2d, floatunsidf);
+
 fp_t __floatunsidf(unsigned int a) {
     
     const int aWidth = sizeof a * CHAR_BIT;

Modified: compiler-rt/trunk/lib/floatunsisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/floatunsisf.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/floatunsisf.c (original)
+++ compiler-rt/trunk/lib/floatunsisf.c Tue Apr 19 12:51:24 2011
@@ -16,6 +16,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ui2f, floatunsisf);
+
 fp_t __floatunsisf(unsigned int a) {
     
     const int aWidth = sizeof a * CHAR_BIT;

Modified: compiler-rt/trunk/lib/int_lib.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/int_lib.h?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/int_lib.h (original)
+++ compiler-rt/trunk/lib/int_lib.h Tue Apr 19 12:51:24 2011
@@ -37,6 +37,13 @@
 #define INFINITY HUGE_VAL
 #endif /* INFINITY */
 
+#if __ARM_EABI__
+# define ARM_EABI_FNALIAS(aeabi_name, name)         \
+  void __aeabi_##aeabi_name() __attribute__((alias("__" #name)));
+#else
+# define ARM_EABI_FNALIAS(aeabi_name, name)
+#endif
+
 typedef      int si_int;
 typedef unsigned su_int;
 

Modified: compiler-rt/trunk/lib/lshrdi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lshrdi3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/lshrdi3.c (original)
+++ compiler-rt/trunk/lib/lshrdi3.c Tue Apr 19 12:51:24 2011
@@ -18,6 +18,8 @@
 
 /* Precondition:  0 <= b < bits_in_dword */
 
+ARM_EABI_FNALIAS(llsr, lshrdi3);
+
 di_int
 __lshrdi3(di_int a, si_int b)
 {

Modified: compiler-rt/trunk/lib/muldf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/muldf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/muldf3.c (original)
+++ compiler-rt/trunk/lib/muldf3.c Tue Apr 19 12:51:24 2011
@@ -15,6 +15,10 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(dmul, muldf3);
+
 fp_t __muldf3(fp_t a, fp_t b) {
     
     const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;

Modified: compiler-rt/trunk/lib/muldi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/muldi3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/muldi3.c (original)
+++ compiler-rt/trunk/lib/muldi3.c Tue Apr 19 12:51:24 2011
@@ -40,6 +40,8 @@
 
 /* Returns: a * b */
 
+ARM_EABI_FNALIAS(lmul, muldi3);
+
 di_int
 __muldi3(di_int a, di_int b)
 {

Modified: compiler-rt/trunk/lib/mulsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/mulsf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/mulsf3.c (original)
+++ compiler-rt/trunk/lib/mulsf3.c Tue Apr 19 12:51:24 2011
@@ -15,6 +15,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(fmul, mulsf3);
+
 fp_t __mulsf3(fp_t a, fp_t b) {
     
     const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;

Modified: compiler-rt/trunk/lib/negdf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/negdf2.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/negdf2.c (original)
+++ compiler-rt/trunk/lib/negdf2.c Tue Apr 19 12:51:24 2011
@@ -14,6 +14,10 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(dneg, negdf2);
+
 fp_t __negdf2(fp_t a) {
     return fromRep(toRep(a) ^ signBit);
 }

Modified: compiler-rt/trunk/lib/negsf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/negsf2.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/negsf2.c (original)
+++ compiler-rt/trunk/lib/negsf2.c Tue Apr 19 12:51:24 2011
@@ -14,6 +14,10 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(fneg, negsf2);
+
 fp_t __negsf2(fp_t a) {
     return fromRep(toRep(a) ^ signBit);
 }

Modified: compiler-rt/trunk/lib/subdf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/subdf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/subdf3.c (original)
+++ compiler-rt/trunk/lib/subdf3.c Tue Apr 19 12:51:24 2011
@@ -15,9 +15,16 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
 fp_t __adddf3(fp_t a, fp_t b);
 
+
+ARM_EABI_FNALIAS(dsub, subdf3);
+
 // Subtraction; flip the sign bit of b and add.
 fp_t __subdf3(fp_t a, fp_t b) {
     return __adddf3(a, fromRep(toRep(b) ^ signBit));
 }
+
+/* FIXME: rsub for ARM EABI */

Modified: compiler-rt/trunk/lib/subsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/subsf3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/subsf3.c (original)
+++ compiler-rt/trunk/lib/subsf3.c Tue Apr 19 12:51:24 2011
@@ -15,9 +15,15 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
+#include "int_lib.h"
+
 fp_t __addsf3(fp_t a, fp_t b);
 
+ARM_EABI_FNALIAS(fsub, subsf3);
+
 // Subtraction; flip the sign bit of b and add.
 fp_t __subsf3(fp_t a, fp_t b) {
     return __addsf3(a, fromRep(toRep(b) ^ signBit));
 }
+
+/* FIXME: rsub for ARM EABI */

Modified: compiler-rt/trunk/lib/truncdfsf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/truncdfsf2.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/truncdfsf2.c (original)
+++ compiler-rt/trunk/lib/truncdfsf2.c Tue Apr 19 12:51:24 2011
@@ -41,6 +41,8 @@
 #include <limits.h>
 #include <stdbool.h>
 
+#include "int_lib.h"
+
 typedef double src_t;
 typedef uint64_t src_rep_t;
 #define SRC_REP_C UINT64_C
@@ -66,6 +68,8 @@
 
 // End helper routines.  Conversion implementation follows.
 
+ARM_EABI_FNALIAS(d2f, truncdfsf2);
+
 dst_t __truncdfsf2(src_t a) {
     
     // Various constants whose values follow from the type parameters.

Modified: compiler-rt/trunk/lib/udivmoddi4.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/udivmoddi4.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/udivmoddi4.c (original)
+++ compiler-rt/trunk/lib/udivmoddi4.c Tue Apr 19 12:51:24 2011
@@ -20,6 +20,8 @@
 
 /* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
 
+ARM_EABI_FNALIAS(uldivmod, udivmoddi4);
+
 du_int
 __udivmoddi4(du_int a, du_int b, du_int* rem)
 {

Modified: compiler-rt/trunk/lib/udivsi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/udivsi3.c?rev=129768&r1=129767&r2=129768&view=diff
==============================================================================
--- compiler-rt/trunk/lib/udivsi3.c (original)
+++ compiler-rt/trunk/lib/udivsi3.c Tue Apr 19 12:51:24 2011
@@ -18,6 +18,8 @@
 
 /* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
 
+ARM_EABI_FNALIAS(uidiv, udivsi3);
+
 su_int
 __udivsi3(su_int n, su_int d)
 {





More information about the llvm-commits mailing list