summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-10-27 17:49:50 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-10-27 17:49:50 +0000
commit19336a2d6b9b375ac106125950f4ff09742d1aec (patch)
treeeb2b4b2223c21a78fa78c553d750417da7e8b2dd
parent51c80ccf6f7779c3b88e9ede81c0e0cfc35dc959 (diff)
Add assembly.h for use in .S files.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@85263 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/arm/Makefile.mk2
-rw-r--r--lib/arm/adddf3vfp.S1
-rw-r--r--lib/arm/addsf3vfp.S1
-rw-r--r--lib/arm/bswapdi2.S1
-rw-r--r--lib/arm/bswapsi2.S1
-rw-r--r--lib/arm/divdf3vfp.S1
-rw-r--r--lib/arm/divsf3vfp.S1
-rw-r--r--lib/arm/eqdf2vfp.S1
-rw-r--r--lib/arm/eqsf2vfp.S1
-rw-r--r--lib/arm/extendsfdf2vfp.S1
-rw-r--r--lib/arm/fixdfsivfp.S1
-rw-r--r--lib/arm/fixsfsivfp.S1
-rw-r--r--lib/arm/fixunsdfsivfp.S1
-rw-r--r--lib/arm/fixunssfsivfp.S1
-rw-r--r--lib/arm/floatsidfvfp.S1
-rw-r--r--lib/arm/floatsisfvfp.S1
-rw-r--r--lib/arm/floatunssidfvfp.S1
-rw-r--r--lib/arm/floatunssisfvfp.S1
-rw-r--r--lib/arm/gedf2vfp.S1
-rw-r--r--lib/arm/gesf2vfp.S1
-rw-r--r--lib/arm/gtdf2vfp.S1
-rw-r--r--lib/arm/gtsf2vfp.S1
-rw-r--r--lib/arm/ledf2vfp.S1
-rw-r--r--lib/arm/lesf2vfp.S1
-rw-r--r--lib/arm/ltdf2vfp.S1
-rw-r--r--lib/arm/ltsf2vfp.S1
-rw-r--r--lib/arm/muldf3vfp.S1
-rw-r--r--lib/arm/mulsf3vfp.S1
-rw-r--r--lib/arm/nedf2vfp.S1
-rw-r--r--lib/arm/negdf2vfp.S1
-rw-r--r--lib/arm/negsf2vfp.S1
-rw-r--r--lib/arm/nesf2vfp.S1
-rw-r--r--lib/arm/subdf3vfp.S1
-rw-r--r--lib/arm/subsf3vfp.S1
-rw-r--r--lib/arm/switch.S2
-rw-r--r--lib/arm/truncdfsf2vfp.S1
-rw-r--r--lib/arm/unorddf2vfp.S1
-rw-r--r--lib/arm/unordsf2vfp.S1
-rw-r--r--lib/assembly.h42
-rw-r--r--lib/i386/Makefile.mk2
-rw-r--r--lib/i386/ashldi3.S2
-rw-r--r--lib/i386/ashrdi3.S2
-rw-r--r--lib/i386/divdi3.S2
-rw-r--r--lib/i386/floatdidf.S2
-rw-r--r--lib/i386/floatdisf.S2
-rw-r--r--lib/i386/floatdixf.S2
-rw-r--r--lib/i386/floatundidf.S2
-rw-r--r--lib/i386/floatundisf.S2
-rw-r--r--lib/i386/floatundixf.S2
-rw-r--r--lib/i386/lshrdi3.S2
-rw-r--r--lib/i386/moddi3.S2
-rw-r--r--lib/i386/muldi3.S2
-rw-r--r--lib/i386/udivdi3.S2
-rw-r--r--lib/i386/umoddi3.S2
-rw-r--r--lib/ppc/Makefile.mk2
-rw-r--r--lib/ppc/restFP.S1
-rw-r--r--lib/ppc/saveFP.S1
-rw-r--r--lib/x86_64/Makefile.mk2
-rw-r--r--lib/x86_64/floatundidf.S2
-rw-r--r--lib/x86_64/floatundisf.S2
-rw-r--r--lib/x86_64/floatundixf.S2
61 files changed, 120 insertions, 4 deletions
diff --git a/lib/arm/Makefile.mk b/lib/arm/Makefile.mk
index 7f9a98220..ac08a61a3 100644
--- a/lib/arm/Makefile.mk
+++ b/lib/arm/Makefile.mk
@@ -17,6 +17,6 @@ ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
Target := Optimized
# FIXME: use automatic dependencies?
-Dependencies := $(wildcard $(Dir)/*.h)
+Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
include make/subdir.mk
diff --git a/lib/arm/adddf3vfp.S b/lib/arm/adddf3vfp.S
index f4bb1ce4c..b1f7077ab 100644
--- a/lib/arm/adddf3vfp.S
+++ b/lib/arm/adddf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// double __adddf3vfp(double a, double b) { return a + b; }
diff --git a/lib/arm/addsf3vfp.S b/lib/arm/addsf3vfp.S
index 81b114f67..4a4a041aa 100644
--- a/lib/arm/addsf3vfp.S
+++ b/lib/arm/addsf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __addsf3vfp(float a, float b);
diff --git a/lib/arm/bswapdi2.S b/lib/arm/bswapdi2.S
index 7e1aeb177..70c13e6b9 100644
--- a/lib/arm/bswapdi2.S
+++ b/lib/arm/bswapdi2.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern uint64_t __bswapdi2(uint64_t);
diff --git a/lib/arm/bswapsi2.S b/lib/arm/bswapsi2.S
index d7f977e8f..8f0e1d349 100644
--- a/lib/arm/bswapsi2.S
+++ b/lib/arm/bswapsi2.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern uint32_t __bswapsi2(uint32_t);
diff --git a/lib/arm/divdf3vfp.S b/lib/arm/divdf3vfp.S
index 59421ef14..c62c61e68 100644
--- a/lib/arm/divdf3vfp.S
+++ b/lib/arm/divdf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __divdf3vfp(double a, double b);
diff --git a/lib/arm/divsf3vfp.S b/lib/arm/divsf3vfp.S
index 62c79ea56..4bf74636a 100644
--- a/lib/arm/divsf3vfp.S
+++ b/lib/arm/divsf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __divsf3vfp(float a, float b);
diff --git a/lib/arm/eqdf2vfp.S b/lib/arm/eqdf2vfp.S
index 8111a0d54..25cc95914 100644
--- a/lib/arm/eqdf2vfp.S
+++ b/lib/arm/eqdf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __eqdf2vfp(double a, double b);
diff --git a/lib/arm/eqsf2vfp.S b/lib/arm/eqsf2vfp.S
index 7d995b5a1..a87b76748 100644
--- a/lib/arm/eqsf2vfp.S
+++ b/lib/arm/eqsf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __eqsf2vfp(float a, float b);
diff --git a/lib/arm/extendsfdf2vfp.S b/lib/arm/extendsfdf2vfp.S
index 024bbf0f1..ea251e2bb 100644
--- a/lib/arm/extendsfdf2vfp.S
+++ b/lib/arm/extendsfdf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __extendsfdf2vfp(float a);
diff --git a/lib/arm/fixdfsivfp.S b/lib/arm/fixdfsivfp.S
index 75c322de9..41788597b 100644
--- a/lib/arm/fixdfsivfp.S
+++ b/lib/arm/fixdfsivfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __fixdfsivfp(double a);
diff --git a/lib/arm/fixsfsivfp.S b/lib/arm/fixsfsivfp.S
index cd2fbe8cc..d48039059 100644
--- a/lib/arm/fixsfsivfp.S
+++ b/lib/arm/fixsfsivfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __fixsfsivfp(float a);
diff --git a/lib/arm/fixunsdfsivfp.S b/lib/arm/fixunsdfsivfp.S
index ab6c4df9b..bd9c1b836 100644
--- a/lib/arm/fixunsdfsivfp.S
+++ b/lib/arm/fixunsdfsivfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern unsigned int __fixunsdfsivfp(double a);
diff --git a/lib/arm/fixunssfsivfp.S b/lib/arm/fixunssfsivfp.S
index c39c69839..c8ce25f3a 100644
--- a/lib/arm/fixunssfsivfp.S
+++ b/lib/arm/fixunssfsivfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern unsigned int __fixunssfsivfp(float a);
diff --git a/lib/arm/floatsidfvfp.S b/lib/arm/floatsidfvfp.S
index d40292481..b268d04d7 100644
--- a/lib/arm/floatsidfvfp.S
+++ b/lib/arm/floatsidfvfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __floatsidfvfp(int a);
diff --git a/lib/arm/floatsisfvfp.S b/lib/arm/floatsisfvfp.S
index 29e7e0df5..dea5a4eb5 100644
--- a/lib/arm/floatsisfvfp.S
+++ b/lib/arm/floatsisfvfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __floatsisfvfp(int a);
diff --git a/lib/arm/floatunssidfvfp.S b/lib/arm/floatunssidfvfp.S
index 148945f66..077385ec0 100644
--- a/lib/arm/floatunssidfvfp.S
+++ b/lib/arm/floatunssidfvfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __floatunssidfvfp(unsigned int a);
diff --git a/lib/arm/floatunssisfvfp.S b/lib/arm/floatunssisfvfp.S
index c8322787a..3ad719422 100644
--- a/lib/arm/floatunssisfvfp.S
+++ b/lib/arm/floatunssisfvfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __floatunssisfvfp(unsigned int a);
diff --git a/lib/arm/gedf2vfp.S b/lib/arm/gedf2vfp.S
index 77d07bd89..3f2f6c14d 100644
--- a/lib/arm/gedf2vfp.S
+++ b/lib/arm/gedf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __gedf2vfp(double a, double b);
diff --git a/lib/arm/gesf2vfp.S b/lib/arm/gesf2vfp.S
index 205c3650e..83b2f0961 100644
--- a/lib/arm/gesf2vfp.S
+++ b/lib/arm/gesf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __gesf2vfp(float a, float b);
diff --git a/lib/arm/gtdf2vfp.S b/lib/arm/gtdf2vfp.S
index 8d6ebcf42..2daa7c4e1 100644
--- a/lib/arm/gtdf2vfp.S
+++ b/lib/arm/gtdf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __gtdf2vfp(double a, double b);
diff --git a/lib/arm/gtsf2vfp.S b/lib/arm/gtsf2vfp.S
index 745a7c6dc..c38886508 100644
--- a/lib/arm/gtsf2vfp.S
+++ b/lib/arm/gtsf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __gtsf2vfp(float a, float b);
diff --git a/lib/arm/ledf2vfp.S b/lib/arm/ledf2vfp.S
index 4dc9f47fb..1ab250dac 100644
--- a/lib/arm/ledf2vfp.S
+++ b/lib/arm/ledf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __ledf2vfp(double a, double b);
diff --git a/lib/arm/lesf2vfp.S b/lib/arm/lesf2vfp.S
index b0a17af8f..8166d4b26 100644
--- a/lib/arm/lesf2vfp.S
+++ b/lib/arm/lesf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __lesf2vfp(float a, float b);
diff --git a/lib/arm/ltdf2vfp.S b/lib/arm/ltdf2vfp.S
index 315bb6f7c..e17406bff 100644
--- a/lib/arm/ltdf2vfp.S
+++ b/lib/arm/ltdf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __ltdf2vfp(double a, double b);
diff --git a/lib/arm/ltsf2vfp.S b/lib/arm/ltsf2vfp.S
index 18a1cc50c..f281a71a0 100644
--- a/lib/arm/ltsf2vfp.S
+++ b/lib/arm/ltsf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __ltsf2vfp(float a, float b);
diff --git a/lib/arm/muldf3vfp.S b/lib/arm/muldf3vfp.S
index 5292b8e87..7ae256af5 100644
--- a/lib/arm/muldf3vfp.S
+++ b/lib/arm/muldf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __muldf3vfp(double a, double b);
diff --git a/lib/arm/mulsf3vfp.S b/lib/arm/mulsf3vfp.S
index e6cdca3a6..16dbdb227 100644
--- a/lib/arm/mulsf3vfp.S
+++ b/lib/arm/mulsf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __mulsf3vfp(float a, float b);
diff --git a/lib/arm/nedf2vfp.S b/lib/arm/nedf2vfp.S
index 8cf4dc2f1..a7541de14 100644
--- a/lib/arm/nedf2vfp.S
+++ b/lib/arm/nedf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __nedf2vfp(double a, double b);
diff --git a/lib/arm/negdf2vfp.S b/lib/arm/negdf2vfp.S
index b047ccc72..bff2767bd 100644
--- a/lib/arm/negdf2vfp.S
+++ b/lib/arm/negdf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __negdf2vfp(double a, double b);
diff --git a/lib/arm/negsf2vfp.S b/lib/arm/negsf2vfp.S
index 1b0f3d6be..9b0ce2811 100644
--- a/lib/arm/negsf2vfp.S
+++ b/lib/arm/negsf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __negsf2vfp(float a);
diff --git a/lib/arm/nesf2vfp.S b/lib/arm/nesf2vfp.S
index da0eef656..ee37c1d9f 100644
--- a/lib/arm/nesf2vfp.S
+++ b/lib/arm/nesf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __nesf2vfp(float a, float b);
diff --git a/lib/arm/subdf3vfp.S b/lib/arm/subdf3vfp.S
index c138c3a2e..ebeca2fb9 100644
--- a/lib/arm/subdf3vfp.S
+++ b/lib/arm/subdf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern double __subdf3vfp(double a, double b);
diff --git a/lib/arm/subsf3vfp.S b/lib/arm/subsf3vfp.S
index 493a85086..3e9d602c7 100644
--- a/lib/arm/subsf3vfp.S
+++ b/lib/arm/subsf3vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __subsf3vfp(float a, float b);
diff --git a/lib/arm/switch.S b/lib/arm/switch.S
index bfde0dad2..7b11c4f1e 100644
--- a/lib/arm/switch.S
+++ b/lib/arm/switch.S
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
+
//
// When compiling switch statements in thumb mode, the compiler
// can use these __switch* helper functions The compiler emits a blx to
diff --git a/lib/arm/truncdfsf2vfp.S b/lib/arm/truncdfsf2vfp.S
index 2e26fdcf2..0d635beab 100644
--- a/lib/arm/truncdfsf2vfp.S
+++ b/lib/arm/truncdfsf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern float __truncdfsf2vfp(double a);
diff --git a/lib/arm/unorddf2vfp.S b/lib/arm/unorddf2vfp.S
index e458eb8c1..85968b47a 100644
--- a/lib/arm/unorddf2vfp.S
+++ b/lib/arm/unorddf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __unorddf2vfp(double a, double b);
diff --git a/lib/arm/unordsf2vfp.S b/lib/arm/unordsf2vfp.S
index 6b69080ff..852d4ebfb 100644
--- a/lib/arm/unordsf2vfp.S
+++ b/lib/arm/unordsf2vfp.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// extern int __unordsf2vfp(float a, float b);
diff --git a/lib/assembly.h b/lib/assembly.h
new file mode 100644
index 000000000..808f7e404
--- /dev/null
+++ b/lib/assembly.h
@@ -0,0 +1,42 @@
+/* ===-- assembly.h - compiler-rt assembler support macros -----------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is distributed under the University of Illinois Open Source
+ * License. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file defines macros for use in compiler-rt assembler source.
+ * This file is not part of the interface of this library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#ifndef COMPILERRT_ASSEMBLY_H
+#define COMPILERRT_ASSEMBLY_H
+
+// Define SYMBOL_NAME to add the appropriate symbol prefix; we can't use
+// USER_LABEL_PREFIX directly because of cpp brokenness.
+#if defined(__POWERPC__) || defined(__powerpc__) || defined(__ppc__)
+
+#define SYMBOL_NAME(name) name
+#define SEPARATOR @
+
+#else
+
+#define SYMBOL_NAME(name) _##name
+#define SEPARATOR ;
+
+#endif
+
+#define DEFINE_COMPILERRT_FUNCTION(name) \
+ .globl SYMBOL_NAME(name) SEPARATOR \
+ SYMBOL_NAME(name):
+
+#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \
+ .globl SYMBOL_NAME(name) SEPARATOR \
+ .private_extern SYMBOL_NAME(name) SEPARATOR \
+ SYMBOL_NAME(name):
+
+#endif /* COMPILERRT_ASSEMBLY_H */
diff --git a/lib/i386/Makefile.mk b/lib/i386/Makefile.mk
index 4453e03df..3ed4dc80b 100644
--- a/lib/i386/Makefile.mk
+++ b/lib/i386/Makefile.mk
@@ -17,6 +17,6 @@ ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
Target := Optimized
# FIXME: use automatic dependencies?
-Dependencies := $(wildcard $(Dir)/*.h)
+Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
include make/subdir.mk
diff --git a/lib/i386/ashldi3.S b/lib/i386/ashldi3.S
index 0d9aba459..7a7906ba9 100644
--- a/lib/i386/ashldi3.S
+++ b/lib/i386/ashldi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// di_int __ashldi3(di_int input, int count);
// This routine has some extra memory traffic, loading the 64-bit input via two
diff --git a/lib/i386/ashrdi3.S b/lib/i386/ashrdi3.S
index 216801469..d0a4c4289 100644
--- a/lib/i386/ashrdi3.S
+++ b/lib/i386/ashrdi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// di_int __ashrdi3(di_int input, int count);
#ifdef __i386__
diff --git a/lib/i386/divdi3.S b/lib/i386/divdi3.S
index 3b50266d7..1ce22da67 100644
--- a/lib/i386/divdi3.S
+++ b/lib/i386/divdi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// di_int __divdi3(di_int a, di_int b);
// result = a / b.
diff --git a/lib/i386/floatdidf.S b/lib/i386/floatdidf.S
index 34736ac58..012697b1b 100644
--- a/lib/i386/floatdidf.S
+++ b/lib/i386/floatdidf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// double __floatundidf(du_int a);
#ifdef __i386__
diff --git a/lib/i386/floatdisf.S b/lib/i386/floatdisf.S
index 20b80d1d8..152a93d69 100644
--- a/lib/i386/floatdisf.S
+++ b/lib/i386/floatdisf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// float __floatdisf(di_int a);
// This routine has some extra memory traffic, loading the 64-bit input via two
diff --git a/lib/i386/floatdixf.S b/lib/i386/floatdixf.S
index 71e2d2abc..cd85c097c 100644
--- a/lib/i386/floatdixf.S
+++ b/lib/i386/floatdixf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// float __floatdixf(di_int a);
#ifdef __i386__
diff --git a/lib/i386/floatundidf.S b/lib/i386/floatundidf.S
index 943ec3805..e38e4556e 100644
--- a/lib/i386/floatundidf.S
+++ b/lib/i386/floatundidf.S
@@ -11,6 +11,8 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
+
// double __floatundidf(du_int a);
#ifdef __i386__
diff --git a/lib/i386/floatundisf.S b/lib/i386/floatundisf.S
index a1b29667c..39f9dcf11 100644
--- a/lib/i386/floatundisf.S
+++ b/lib/i386/floatundisf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// float __floatundisf(du_int a);
// Note that there is a hardware instruction, fildll, that does most of what
diff --git a/lib/i386/floatundixf.S b/lib/i386/floatundixf.S
index c24689aac..b85866253 100644
--- a/lib/i386/floatundixf.S
+++ b/lib/i386/floatundixf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// long double __floatundixf(du_int a);16
#ifdef __i386__
diff --git a/lib/i386/lshrdi3.S b/lib/i386/lshrdi3.S
index a70113f8c..fd1fae0ee 100644
--- a/lib/i386/lshrdi3.S
+++ b/lib/i386/lshrdi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// di_int __lshrdi3(di_int input, int count);
// This routine has some extra memory traffic, loading the 64-bit input via two
diff --git a/lib/i386/moddi3.S b/lib/i386/moddi3.S
index af1f38a13..bfc965147 100644
--- a/lib/i386/moddi3.S
+++ b/lib/i386/moddi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// di_int __moddi3(di_int a, di_int b);
// result = remainder of a / b.
diff --git a/lib/i386/muldi3.S b/lib/i386/muldi3.S
index 9f29c3ced..262556a32 100644
--- a/lib/i386/muldi3.S
+++ b/lib/i386/muldi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// di_int __muldi3(di_int a, di_int b);
#ifdef __i386__
diff --git a/lib/i386/udivdi3.S b/lib/i386/udivdi3.S
index 977cee36c..c1626aba7 100644
--- a/lib/i386/udivdi3.S
+++ b/lib/i386/udivdi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// du_int __udivdi3(du_int a, du_int b);
// result = a / b.
diff --git a/lib/i386/umoddi3.S b/lib/i386/umoddi3.S
index 2ddd71006..7e4f84a93 100644
--- a/lib/i386/umoddi3.S
+++ b/lib/i386/umoddi3.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// du_int __umoddi3(du_int a, du_int b);
// result = remainder of a / b.
diff --git a/lib/ppc/Makefile.mk b/lib/ppc/Makefile.mk
index 80654729b..34c93722c 100644
--- a/lib/ppc/Makefile.mk
+++ b/lib/ppc/Makefile.mk
@@ -17,6 +17,6 @@ ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
Target := Optimized
# FIXME: use automatic dependencies?
-Dependencies := $(wildcard $(Dir)/*.h)
+Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
include make/subdir.mk
diff --git a/lib/ppc/restFP.S b/lib/ppc/restFP.S
index 8fd8fa13b..8d27d04f8 100644
--- a/lib/ppc/restFP.S
+++ b/lib/ppc/restFP.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// Helper function used by compiler to restore ppc floating point registers at
diff --git a/lib/ppc/saveFP.S b/lib/ppc/saveFP.S
index ef0590f21..ad9b187ae 100644
--- a/lib/ppc/saveFP.S
+++ b/lib/ppc/saveFP.S
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
//
// Helper function used by compiler to save ppc floating point registers in
diff --git a/lib/x86_64/Makefile.mk b/lib/x86_64/Makefile.mk
index d6a2ac75f..950f2fc8c 100644
--- a/lib/x86_64/Makefile.mk
+++ b/lib/x86_64/Makefile.mk
@@ -17,6 +17,6 @@ ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
Target := Optimized
# FIXME: use automatic dependencies?
-Dependencies := $(wildcard $(Dir)/*.h)
+Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
include make/subdir.mk
diff --git a/lib/x86_64/floatundidf.S b/lib/x86_64/floatundidf.S
index 4ccaac2ce..fea46af84 100644
--- a/lib/x86_64/floatundidf.S
+++ b/lib/x86_64/floatundidf.S
@@ -11,6 +11,8 @@
//
//===----------------------------------------------------------------------===//
+#include "../assembly.h"
+
// double __floatundidf(du_int a);
#ifdef __x86_64__
diff --git a/lib/x86_64/floatundisf.S b/lib/x86_64/floatundisf.S
index b40868740..4cbbf2017 100644
--- a/lib/x86_64/floatundisf.S
+++ b/lib/x86_64/floatundisf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// float __floatundisf(du_int a);
#ifdef __x86_64__
diff --git a/lib/x86_64/floatundixf.S b/lib/x86_64/floatundixf.S
index 0764da49a..47a0ff4f5 100644
--- a/lib/x86_64/floatundixf.S
+++ b/lib/x86_64/floatundixf.S
@@ -1,6 +1,8 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
+#include "../assembly.h"
+
// long double __floatundixf(du_int a);
#ifdef __x86_64__