From: Richard Stallman Date: Mon, 16 Mar 1992 10:31:38 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fdaff8ba21df4dfe32493ecd0fad74f30de48938;p=gcc.git *** empty log message *** From-SVN: r504 --- diff --git a/gcc/config/m68k/tower-as.h b/gcc/config/m68k/tower-as.h index dbf19b37802..43fce99cb7f 100644 --- a/gcc/config/m68k/tower-as.h +++ b/gcc/config/m68k/tower-as.h @@ -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. */ diff --git a/gcc/config/m88k/dgux.h b/gcc/config/m88k/dgux.h index 9374382ff7d..6d5494fe95a 100644 --- a/gcc/config/m88k/dgux.h +++ b/gcc/config/m88k/dgux.h @@ -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 */ diff --git a/gcc/config/m88k/sysv4.h b/gcc/config/m88k/sysv4.h index a4e3de83d26..1e7e093dd50 100644 --- a/gcc/config/m88k/sysv4.h +++ b/gcc/config/m88k/sysv4.h @@ -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" diff --git a/gcc/config/romp/romp.h b/gcc/config/romp/romp.h index 880372843b7..3de640fd4d6 100644 --- a/gcc/config/romp/romp.h +++ b/gcc/config/romp/romp.h @@ -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). */ diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 2280f433624..0ef35579e24 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -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 /* 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 + +/* 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