*** empty log message ***

From-SVN: r504
This commit is contained in:
Richard Stallman 1992-03-16 10:31:38 +00:00
parent 0fb59cdfcd
commit fdaff8ba21
5 changed files with 77 additions and 57 deletions

View 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. */

View 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 */

View 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"

View 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). */

View 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
/* 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