OSDN Git Service

* config/avr/avr.c (asm_output_section_name): output section
authordenisc <denisc@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Jun 2000 16:45:46 +0000 (16:45 +0000)
committerdenisc <denisc@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Jun 2000 16:45:46 +0000 (16:45 +0000)
attributes.
* config/avr/libgcc.S (.text.libgcc): declare section attributes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34445 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/avr/avr.c
gcc/config/avr/libgcc.S

index 2f8e558..7906c8d 100644 (file)
@@ -1,3 +1,9 @@
+Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (asm_output_section_name): output section
+       attributes.
+       * config/avr/libgcc.S (.text.libgcc): declare section attributes.
+
 2000-06-06  James E. Wilson  <wilson@cygnus.com>
 
        * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
index fbb96cf..dda7190 100644 (file)
@@ -3206,16 +3206,20 @@ unique_section (decl, reloc)
 }
 
 
-/* Output section name to file FILE */
+/* Output section name to file FILE
+   We make the section read-only and executable for a function decl,
+   read-only for a const data decl, and writable for a non-const data decl.  */
 
 void
 asm_output_section_name(file, decl, name, reloc)
      FILE *file;
-     tree decl ATTRIBUTE_UNUSED;
+     tree decl;
      const char *name;
      int reloc ATTRIBUTE_UNUSED;
 {
-  fprintf (file, ".section %s\n", name);
+  fprintf (FILE, ".section\t%s,\"%s\",@progbits\n", name, \
+          decl && TREE_CODE (decl) == FUNCTION_DECL ? "ax" :
+          decl && TREE_READONLY (decl) ? "a" : "aw");
 }
 
 
index ffaf6cf..10fa12e 100644 (file)
@@ -32,7 +32,7 @@ Boston, MA 02111-1307, USA.  */
 #define __SP_H__ 0x3e
 #define __SP_L__ 0x3d
 
-       .section .text.libgcc
+       .section .text.libgcc, "ax", @progbits
        
 /*******************************************************
                Multiplication  8 x 8