OSDN Git Service

*** empty log message ***
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Mar 1992 10:31:38 +0000 (10:31 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Mar 1992 10:31:38 +0000 (10:31 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@504 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/m68k/tower-as.h
gcc/config/m88k/dgux.h
gcc/config/m88k/sysv4.h
gcc/config/romp/romp.h
gcc/config/rs6000/rs6000.h

index dbf19b3..43fce99 100644 (file)
@@ -283,10 +283,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
   output_file_directive ((FILE), main_input_filename))
 
 #undef TEXT_SECTION_ASM_OP
-#define TEXT_SECTION_ASM_OP "\ttext"
+#define TEXT_SECTION_ASM_OP "text"
 
 #undef DATA_SECTION_ASM_OP
-#define DATA_SECTION_ASM_OP "\tdata"
+#define DATA_SECTION_ASM_OP "data"
 
 /* This says how to output an assembler line to define a global common symbol.
    We use SIZE rather than ROUNDED, as this is what the native cc does.  */
index 9374382..6d5494f 100644 (file)
@@ -78,7 +78,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define ASM_SPEC "\
 %{V} %{v:%{!V:-V}} %{pipe: - %{msvr4:%{mversion-03.00:-KV3}}}\
 %{!mlegend:%{mstandard:-Wc,off}}\
-%{mlegend:-Wc,-fix-bb,-h\"gcc-1.96.3\",-s\"%i\"\
+%{mlegend:-Wc,-fix-bb,-h\"gcc-1.96.5\",-s\"%i\"\
 %{traditional:,-lc}%{!traditional:,-lansi-c}\
 %{mstandard:,-keep-std}\
 %{mkeep-coff:,-keep-coff}\
@@ -150,20 +150,20 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef WCHAR_TYPE
 #undef WCHAR_TYPE_SIZE
 
-/* Override svr4.h and m88k.h except when compling crtstuff.c.  */
+/* Override svr4.h and m88k.h except when compiling crtstuff.c.  */
 #if !defined (CRT_BEGIN) && !defined (CRT_END)
 #if 0 /* The SVR4 init method doesn't yet work.  */
 #undef INIT_SECTION_ASM_OP
 #define INIT_SECTION_ASM_OP (VERSION_0300_SYNTAX               \
-                            ? "\tsection\t .init,\"xa\"\n"     \
-                            : "\tsection\t .init,\"x\"\n")
+                            ? "section\t .init,\"xa\"" \
+                            : "section\t .init,\"x\"")
 #endif
 #undef CTORS_SECTION_ASM_OP
 #define CTORS_SECTION_ASM_OP (VERSION_0300_SYNTAX              \
-                             ? "\tsection\t .ctors,\"aw\"\n"   \
-                             : "\tsection\t .ctors,\"d\"\n")
+                             ? "section\t .ctors,\"aw\""       \
+                             : "section\t .ctors,\"d\"")
 #undef DTORS_SECTION_ASM_OP
 #define DTORS_SECTION_ASM_OP (VERSION_0300_SYNTAX              \
-                             ? "\tsection\t .dtors,\"aw\"\n"   \
-                             : "\tsection\t .dtors,\"d\"\n")
+                             ? "section\t .dtors,\"aw\""       \
+                             : "section\t .dtors,\"d\"")
 #endif /* crtstuff.c */
index a4e3de8..1e7e093 100644 (file)
@@ -57,10 +57,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Override svr4.h and m88k.h.  */
 #undef INIT_SECTION_ASM_OP
-#define INIT_SECTION_ASM_OP "\tsection\t.init,\"xa\",#progbits\n"
+#define INIT_SECTION_ASM_OP "section\t.init,\"xa\",#progbits"
 #undef CTORS_SECTION_ASM_OP
-#define CTORS_SECTION_ASM_OP   "\tsection\t.ctors,\"a\",#progbits\n"
+#define CTORS_SECTION_ASM_OP   "section\t.ctors,\"a\",#progbits"
 #undef DTORS_SECTION_ASM_OP
-#define DTORS_SECTION_ASM_OP   "\tsection\t.dtors,\"a\",#progbits\n"
+#define DTORS_SECTION_ASM_OP   "section\t.dtors,\"a\",#progbits"
 
 
index 8803728..3de640f 100644 (file)
@@ -1339,11 +1339,11 @@ struct rt_cargs {int gregs, fregs; };
 
 /* Output before instructions and read-only data.  */
 
-#define TEXT_SECTION_ASM_OP "\t.text"
+#define TEXT_SECTION_ASM_OP ".text"
 
 /* Output before writable data.  */
 
-#define DATA_SECTION_ASM_OP "\t.data"
+#define DATA_SECTION_ASM_OP ".data"
 
 /* How to refer to registers in assembler output.
    This sequence is indexed by compiler's hard-register-number (see above).  */
index 2280f43..0ef3557 100644 (file)
@@ -30,8 +30,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 /* Print subsidiary information on the compiler version in use.  */
 #define TARGET_VERSION ;
 
-/* Tell the assembler to assume that all undefined names are external.  Don't
-   do this until the fixed IBM assembler is more generally available.  */
+/* Tell the assembler to assume that all undefined names are external.
+
+   Don't do this until the fixed IBM assembler is more generally available.
+   When this becomes permanently defined, the ASM_OUTPUT_EXTERNAL,
+   ASM_OUTPUT_EXTERNAL_LIBCALL, and RS6000_OUTPUT_BASENAME macros will no
+   longer be needed.  */
 
 /* #define ASM_SPEC "-u" */
 
@@ -116,7 +120,7 @@ extern int target_flags;
    instructions for them.  Might as well be consistent with bits and bytes. */
 #define WORDS_BIG_ENDIAN 1
 
-/* number of bits in an addressible storage unit */
+/* number of bits in an addressable storage unit */
 #define BITS_PER_UNIT 8
 
 /* Width in bits of a "word", which is the contents of a machine register.
@@ -170,9 +174,9 @@ extern int target_flags;
    && TYPE_MODE (TREE_TYPE (TYPE)) == QImode   \
    && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
 
-/* Define this if move instructions will actually fail to work
+/* Non-zero if move instructions will actually fail to work
    when given unaligned data.  */
-/* #define STRICT_ALIGNMENT */
+#define STRICT_ALIGNMENT 0
 \f
 /* Standard register usage.  */
 
@@ -1143,25 +1147,16 @@ struct rs6000_args {int words, fregno, nargs_prototype; };
 /* Define if normal loads of shorter-than-word items from memory clears
    the rest of the bigs in the register.  */
 #define BYTE_LOADS_ZERO_EXTEND
+\f
+/* The RS/6000 uses the XCOFF format.  */
 
-/* We can't support any debugging info on the RS/6000 since it has its
-   own format.  */
-/* #define DBX_DEBUGGING_INFO  */
-/* #define SDB_DEBUGGING_INFO  */
+#define XCOFF_DEBUGGING_INFO
 
 /* We don't have GAS for the RS/6000 yet, so don't write out special
    .stabs in cc1plus.  */
    
 #define FASCIST_ASSEMBLER
 
-/* Do not break .stabs pseudos into continuations.  */
-#define DBX_CONTIN_LENGTH 0
-
-/* Don't try to use the `x' type-cross-reference character in DBX data.
-   Also has the consequence of putting each struct, union or enum
-   into a separate .stabs, containing only cross-refs to the others.  */
-#define DBX_NO_XREFS
-
 /* Value is 1 if truncating an integer of INPREC bits to OUTPREC bits
    is done just by pretending it is already truncated.  */
 #define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
@@ -1286,19 +1281,24 @@ extern int rs6000_trunc_used;
    On the RS/6000, we want to go into the TOC section so at least one
    .toc will be emitted.
 
-   Also initialize the section names for the RS/6000 at this point.  */
+   Also initialize the section names for the RS/6000 at this point.
+
+   Also, in order to output proper .bs/.es pairs, we need at least one static
+   [RW] section emitted.  */
 
 #define ASM_FILE_START(FILE)                                   \
 {                                                              \
-  rs6000_gen_section_name (&rs6000_bss_section_name,           \
+  rs6000_gen_section_name (&xcoff_bss_section_name,            \
                           main_input_filename, ".bss_");       \
-  rs6000_gen_section_name (&rs6000_private_data_section_name,  \
+  rs6000_gen_section_name (&xcoff_private_data_section_name,   \
                           main_input_filename, ".rw_");        \
-  rs6000_gen_section_name (&rs6000_read_only_section_name,     \
+  rs6000_gen_section_name (&xcoff_read_only_section_name,      \
                           main_input_filename, ".ro_");        \
                                                                \
   toc_section ();                                              \
   bss_section ();                                              \
+  if (write_symbols != NO_DEBUG)                               \
+    private_data_section ();                                   \
 }
 
 /* Output at end of assembler file.
@@ -1313,13 +1313,6 @@ extern int rs6000_trunc_used;
   fprintf (FILE, "\t.long _section_.text\n");                  \
 }
 
-/* Names of bss and data sections.  These should be unique names for each
-   compilation unit.  */
-
-extern char *rs6000_bss_section_name;
-extern char *rs6000_private_data_section_name;
-extern char *rs6000_read_only_section_name;
-
 /* We define this to prevent the name mangler from putting dollar signs into
    function names.  */
 
@@ -1331,6 +1324,10 @@ extern char *rs6000_read_only_section_name;
 
 #define DOLLARS_IN_IDENTIFIERS 0
 
+/* Implicit library calls should use memcpy, not bcopy, etc.  */
+
+#define TARGET_MEM_FUNCTIONS
+
 /* Define the extra sections we need.  We define three: one is the read-only
    data section which is used for constants.  This is a csect whose name is
    derived from the name of the input file.  The second is for initialized
@@ -1357,8 +1354,8 @@ read_only_data_section ()                         \
 {                                                      \
   if (in_section != read_only_data)                    \
     {                                                  \
-      fprintf (asm_out_file, "\t.csect\t%s[RO]\n",     \
-              rs6000_read_only_section_name);          \
+      fprintf (asm_out_file, "\t.csect %s[RO]\n",      \
+              xcoff_read_only_section_name);           \
       in_section = read_only_data;                     \
     }                                                  \
 }                                                      \
@@ -1369,7 +1366,7 @@ private_data_section ()                                   \
   if (in_section != private_data)                      \
     {                                                  \
       fprintf (asm_out_file, "\t.csect %s[RW]\n",      \
-              rs6000_private_data_section_name);       \
+              xcoff_private_data_section_name);        \
                                                        \
       in_section = private_data;                       \
     }                                                  \
@@ -1380,8 +1377,8 @@ read_only_private_data_section ()                 \
 {                                                      \
   if (in_section != read_only_private_data)            \
     {                                                  \
-      fprintf (asm_out_file, "\t.csect\t%s[RO]\n",     \
-              rs6000_private_data_section_name);       \
+      fprintf (asm_out_file, "\t.csect %s[RO]\n",      \
+              xcoff_private_data_section_name);        \
       in_section = read_only_private_data;             \
     }                                                  \
 }                                                      \
@@ -1400,8 +1397,8 @@ bss_section ()                                            \
 {                                                      \
   if (in_section != bss)                               \
     {                                                  \
-      fprintf (asm_out_file, "\t.csect\t%s[BS]\n",     \
-              rs6000_bss_section_name);                \
+      fprintf (asm_out_file, "\t.csect %s[BS]\n",      \
+              xcoff_bss_section_name);         \
       in_section = bss;                                        \
     }                                                  \
 }                                                      \
@@ -1414,12 +1411,20 @@ bss_section ()                                          \
    `text_section' call previously done.  We do have to go back to that
    csect, however.  */
 
+/* ??? What do the 16 and 044 in the .function line really mean?  */
+
 #define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL)              \
 { if (TREE_PUBLIC (DECL))                                      \
     {                                                          \
       fprintf (FILE, "\t.globl .");                            \
       RS6000_OUTPUT_BASENAME (FILE, NAME);                     \
-      fprintf (FILE,"\n");                                     \
+      fprintf (FILE, "\n");                                    \
+    }                                                          \
+  else if (write_symbols == XCOFF_DEBUG)                       \
+    {                                                          \
+      fprintf (FILE, "\t.lglobl .");                           \
+      RS6000_OUTPUT_BASENAME (FILE, NAME);                     \
+      fprintf (FILE, "\n");                                    \
     }                                                          \
   fprintf (FILE, "\t.csect ");                                 \
   RS6000_OUTPUT_BASENAME (FILE, NAME);                         \
@@ -1428,10 +1433,23 @@ bss_section ()                                          \
   fprintf (FILE, ":\n");                                       \
   fprintf (FILE, "\t.long .");                                 \
   RS6000_OUTPUT_BASENAME (FILE, NAME);                         \
-  fprintf (FILE, ", TOC[tc0], 0\n");                   \
+  fprintf (FILE, ", TOC[tc0], 0\n");                           \
   fprintf (FILE, "\t.csect [PR]\n.");                          \
   RS6000_OUTPUT_BASENAME (FILE, NAME);                         \
   fprintf (FILE, ":\n");                                       \
+  if (write_symbols == XCOFF_DEBUG)                            \
+    {                                                          \
+      dbxout_symbol (DECL, 0);                                 \
+      fprintf (FILE, "\t.function .");                         \
+      RS6000_OUTPUT_BASENAME (FILE, NAME);                     \
+      fprintf (FILE, ",.");                                    \
+      RS6000_OUTPUT_BASENAME (FILE, NAME);                     \
+      fprintf (FILE, ",16,044,L..end_");                       \
+      RS6000_OUTPUT_BASENAME (FILE, NAME);                     \
+      fprintf (FILE, "-.");                                    \
+      RS6000_OUTPUT_BASENAME (FILE, NAME);                     \
+      fprintf (FILE, "\n");                                    \
+    }                                                          \
 }
 
 /* Return non-zero if this entry is to be written into the constant pool
@@ -1566,11 +1584,11 @@ bss_section ()                                          \
 
 /* Output before instructions.  */
 
-#define TEXT_SECTION_ASM_OP "\t.csect [PR]"
+#define TEXT_SECTION_ASM_OP ".csect [PR]"
 
 /* Output before writable data.  */
 
-#define DATA_SECTION_ASM_OP "\t.csect .data[RW]"
+#define DATA_SECTION_ASM_OP ".csect .data[RW]"
 
 /* How to refer to registers in assembler output.
    This sequence is indexed by compiler's hard-register-number (see above).  */
@@ -1732,7 +1750,8 @@ bss_section ()                                            \
    to define a global common symbol.  */
 
 #define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED)   \
-  do { fputs (".comm ", (FILE));                       \
+  do { bss_section ();                                 \
+       fputs (".comm ", (FILE));                       \
        RS6000_OUTPUT_BASENAME ((FILE), (NAME));                \
        fprintf ((FILE), ",%d\n", (SIZE)); } while (0)
 
@@ -1740,9 +1759,10 @@ bss_section ()                                           \
    to define a local common symbol.  */
 
 #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED)     \
-  do { fputs (".lcomm ", (FILE));                      \
+  do { bss_section ();                                 \
+       fputs (".lcomm ", (FILE));                      \
        RS6000_OUTPUT_BASENAME ((FILE), (NAME));                \
-       fprintf ((FILE), ",%d,%s\n", (SIZE), rs6000_bss_section_name); \
+       fprintf ((FILE), ",%d,%s\n", (SIZE), xcoff_bss_section_name); \
      } while (0)
 
 /* Store in OUTPUT a string (made with alloca) containing