Apply patches submitted by eCos team.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Oct 1999 12:05:58 +0000 (12:05 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Oct 1999 12:05:58 +0000 (12:05 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30120 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/lib1funcs.asm
gcc/config/arm/telf.h
gcc/config/arm/unknown-elf.h

index b67d09c..c8428ad 100644 (file)
@@ -1,3 +1,16 @@
+Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
+
+       * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
+       to .section when outputting a .bss section to deal with multiple
+       .bss input sections (as happens with -fdata-sections)
+       Also output %progbits, not @progbits so the assembler doesn't treat as
+       a comment.
+       * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
+
+       * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
+       thumb parts even when building with non-thumb CPUs, by forcing
+       thumb mode.     
+
 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
 
        * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
index 831914b..07b50a7 100644 (file)
@@ -469,7 +469,7 @@ SYM (__div0):
        
        .text
        .align 0
-       .code 16
+        .force_thumb
 .macro call_via register
        .globl  SYM (_call_via_\register)
        TYPE    (_call_via_\register)
index 1f7bbb7..ececd53 100644 (file)
@@ -82,11 +82,13 @@ extern int arm_structure_size_boundary;
   do                                                                   \
     {                                                                  \
       if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL)                 \
-        fprintf (STREAM, "\t.section %s,\"ax\",@progbits\n", (NAME));  \
+        fprintf (STREAM, "\t.section %s,\"ax\",%%progbits\n", NAME);   \
       else if ((DECL) && DECL_READONLY_SECTION (DECL, RELOC))          \
-        fprintf (STREAM, "\t.section %s,\"a\"\n", (NAME));             \
+        fprintf (STREAM, "\t.section %s,\"a\"\n", NAME);               \
+      else if (! strncmp (NAME, ".bss", 4))                            \
+        fprintf (STREAM, "\t.section %s,\"aw\",%%nobits\n", NAME);     \
       else                                                             \
-        fprintf (STREAM, "\t.section %s,\"aw\"\n", (NAME));            \
+        fprintf (STREAM, "\t.section %s,\"aw\"\n", NAME);              \
     }                                                                  \
   while (0)
 \f
index 9e33890..aeddcdf 100644 (file)
@@ -89,15 +89,19 @@ func_ptr __DTOR_END__[1] = { (func_ptr) 0 };
    NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or
    NULL_TREE.  Some target formats do not support arbitrary sections.  Do not
    define this macro in such cases.  */
-#define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC) \
-do {                                                           \
-  if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL)             \
-    fprintf (STREAM, "\t.section %s,\"ax\",@progbits\n", (NAME)); \
-  else if ((DECL) && DECL_READONLY_SECTION (DECL, RELOC))      \
-    fprintf (STREAM, "\t.section %s,\"a\"\n", (NAME));         \
-  else                                                         \
-    fprintf (STREAM, "\t.section %s,\"aw\"\n", (NAME));                \
-} while (0)
+#define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC)             \
+  do                                                                   \
+    {                                                                  \
+      if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL)                 \
+       fprintf (STREAM, "\t.section %s,\"ax\",%%progbits\n", NAME);    \
+      else if ((DECL) && DECL_READONLY_SECTION (DECL, RELOC))          \
+       fprintf (STREAM, "\t.section %s,\"a\"\n", NAME);                \
+      else if (! strncmp (NAME, ".bss", 4))                            \
+       fprintf (STREAM, "\t.section %s,\"aw\",%%nobits\n", NAME);      \
+      else                                                             \
+       fprintf (STREAM, "\t.section %s,\"aw\"\n", NAME);               \
+    }                                                                  \
+  while (0)
 
 /* Don't know how to order these.  UNALIGNED_WORD_ASM_OP is in
    dwarf2.out. */