Use .thumb_set pseudo op to mark aliases of thumb functions.
authorNick Clifton <nickc@cygnus.com>
Fri, 18 Jun 1999 01:14:34 +0000 (01:14 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Fri, 18 Jun 1999 01:14:34 +0000 (01:14 +0000)
From-SVN: r27586

gcc/ChangeLog
gcc/config/arm/telf.h

index 6b08f8b9776ef3f06bbfbab24bab21e9b7f82511..f5b0a481144519f9a59b0d22ed7455570cfee0bd 100644 (file)
@@ -1,3 +1,8 @@
+Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
+       .thumb_set pseudo op to mark aliases of thumb functions.
+
 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
 
        * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
index 69604a204db78dded7f71bd95b8ba6ebf3c7bffb..3e14a5f8442ad40b7706ae90affc431bdb766229 100644 (file)
@@ -140,6 +140,26 @@ extern int arm_structure_size_boundary;
     }                                          \
   while (0)
 
+/* For aliases of functions we use .thumb_set instead.  */
+#define ASM_OUTPUT_DEF_FROM_DECLS(FILE,DECL1,DECL2)            \
+  do                                                           \
+    {                                                          \
+      char * LABEL1 = XSTR (XEXP (DECL_RTL (decl), 0), 0);     \
+      char * LABEL2 = IDENTIFIER_POINTER (DECL2);              \
+                                                               \
+      if (TREE_CODE (DECL1) == FUNCTION_DECL)                  \
+       {                                                       \
+         fprintf (FILE, "\t.thumb_set ");                      \
+         assemble_name (FILE, LABEL1);                         \
+         fprintf (FILE, ",");                                  \
+         assemble_name (FILE, LABEL2);                         \
+         fprintf (FILE, "\n");                                 \
+       }                                                       \
+      else                                                     \
+       ASM_OUTPUT_DEF (FILE, LABEL1, LABEL2);                  \
+    }                                                          \
+  while (0)
+
 /* A list of other sections which the compiler might be "in" at any
    given time.  */
 #undef  EXTRA_SECTIONS