Get rid of darwin'isms. Provide convenient macro for assembler local lables.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@129766 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/assembly.h b/lib/assembly.h
index 41c24d7..928f5fd 100644
--- a/lib/assembly.h
+++ b/lib/assembly.h
@@ -26,29 +26,33 @@
    *values* of two macros. This is quite brittle, though. */
 #if defined(__APPLE__)
 #define SYMBOL_NAME(name) _##name
+#define HIDDEN_DIRECTIVE .private_extern
+#define LOCAL_LABEL(name) L_##name
 #else
 #define SYMBOL_NAME(name) name
+#define HIDDEN_DIRECTIVE .hidden
+#define LOCAL_LABEL(name) .L_##name
 #endif
 
 #ifdef VISIBILITY_HIDDEN
-#define DEFINE_COMPILERRT_FUNCTION(name) \
-  .globl SYMBOL_NAME(name) SEPARATOR     \
-  .private_extern SYMBOL_NAME(name) SEPARATOR    \
+#define DEFINE_COMPILERRT_FUNCTION(name)                   \
+  .globl SYMBOL_NAME(name) SEPARATOR                       \
+  HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR             \
   SYMBOL_NAME(name):
 #else
-#define DEFINE_COMPILERRT_FUNCTION(name) \
-  .globl SYMBOL_NAME(name) SEPARATOR     \
+#define DEFINE_COMPILERRT_FUNCTION(name)                   \
+  .globl SYMBOL_NAME(name) SEPARATOR                       \
   SYMBOL_NAME(name):
 #endif
 
-#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \
-  .globl SYMBOL_NAME(name) SEPARATOR             \
-  .private_extern SYMBOL_NAME(name) SEPARATOR    \
+#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name)           \
+  .globl SYMBOL_NAME(name) SEPARATOR                       \
+  HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR             \
   SYMBOL_NAME(name):
 
 #define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name) \
-  .globl name SEPARATOR             \
-  .private_extern name SEPARATOR    \
+  .globl name SEPARATOR                                    \
+  HIDDEN_DIRECTIVE name SEPARATOR                          \
   name:
 
 #endif /* COMPILERRT_ASSEMBLY_H */