This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix dealing with large (>2GB) static data initalizers
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org, rth at cygnus dot com
- Date: Sun, 11 May 2003 19:35:35 +0200
- Subject: Fix dealing with large (>2GB) static data initalizers
Hi,
at the present we silently misscompile code
char large[0x1ffffffff] = {1};
on all 64bit targets. This is because all sizes in ASM_OUTPUT_* machinery are
ints. This patch makes them HOST_WIDE_INTs that brings large amount of
anoyance in updating the targets. I updated x86_64, alpha and partly pa/s390
targets to deal with the sizes properly and added simple cast in the rest (to
reduce amount of mistakes in the patch). Given the amount of changes needed I
would like to update the rest of 64bit targets incrementally.
Would this be OK for mainline? I tested it only on 386/x86-64 and sh cross.
Didn't have energy to test rest of the targets but because the change is
minimal it should work.
Honza
Sun May 11 12:54:47 CEST 2003 Jan Hubicka <jh@suse.cz>
* elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
* alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
it 64bit clean.
* elf.h (ASM_OTUPUT_SKIP): Likewise.
* unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
* arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Expect HOST_WIDE_INT operand.
* aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Expect HOST_WIDE_INT operand.
* unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Expect HOST_WIDE_INT operand.
* avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
HOST_WIDE_INT operand.
* c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
* aout.h (ASM_OTUPUT_SKIP): Likewise.
* cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
* darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
* dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
* frv.h (ASM_OTUPUT_SKIP): Likewise.
* h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
* 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
Make it 64bit
clean.
* att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
* bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
Make it 64bit clean.
* darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
* sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
HOST_WIDE_INT operand
* svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
Expect HOST_WIDE_INT operand
* sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
* i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
* ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Likewise.
* m32r.h (ASM_OUTPUT_COMMON): Likewise.
* 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Likewise.
* amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
* crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
* hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Likewise.
* m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Likewise.
* m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Likewise.
* m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Likewise.
* mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
* netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
ASM_OUTPUT_SKIP): Likewise.
* sgs.h (ASM_OUTPUT_SKIP): Likewise.
* tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
ASM_OUTPUT_SKIP): Likewise.
* m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
Likewise.
* mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
* iris.h (ASM_OUTPUT_LOCAL): Likewise.
* mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
* ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Make it 64bit clean.
* pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
Make it 64bit clean.
* pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
ASM_OUTPUT_SKIP): Make it 64bit clean.
* hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
64bit clean.
* romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
HOST_WIDE_INT argument
* s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
* sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
HOST_WIDE_INT argument
* sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
* sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
* svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
* vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
HOST_WIDE_INT argument
* vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
* xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
* varasm.c (asm_output_bss, asm_output_aligned_bss,
asm_emit_uninitialized, assemble_zeros, assemble_static_space):
HOST_WIDE_INT argument
diff -Nrc3p config.old/elfos.h config/elfos.h
*** config.old/elfos.h Mon May 5 22:51:32 2003
--- config/elfos.h Tue May 6 00:26:01 2003
*************** Boston, MA 02111-1307, USA. */
*** 108,114 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
--- 108,116 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! (fputs (SKIP_ASM_OP, (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc ('\n', (FILE)))
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
*************** Boston, MA 02111-1307, USA. */
*** 171,176 ****
{ \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
} \
while (0)
--- 173,181 ----
{ \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)); \
! fprintf ((FILE), ",%u\n", (ALIGN) / BITS_PER_UNIT); \
} \
while (0)
diff -Nrc3p config.old/alpha/alpha.h config/alpha/alpha.h
*** config.old/alpha/alpha.h Mon May 5 22:51:31 2003
--- config/alpha/alpha.h Tue May 6 11:00:59 2003
*************** do { \
*** 1622,1628 ****
/* This is how to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %d\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1622,1630 ----
/* This is how to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! (fputs ("\t.space ", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* This says how to output an assembler line
to define a global common symbol. */
*************** do { \
*** 1630,1636 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 1632,1640 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! putc (',', (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc ('\n', (FILE))) \
/* This says how to output an assembler line
to define a local common symbol. */
*************** do { \
*** 1638,1644 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
/* Print operand X (an rtx) in assembler syntax to file FILE.
--- 1640,1648 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! putc (',', (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc ('\n', (FILE))) \
/* Print operand X (an rtx) in assembler syntax to file FILE.
diff -Nrc3p config.old/alpha/elf.h config/alpha/elf.h
*** config.old/alpha/elf.h Mon May 5 22:51:31 2003
--- config/alpha/elf.h Mon May 5 23:36:22 2003
*************** do { \
*** 81,87 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* Output the label which precedes a jumptable. Note that for all svr4
systems where we actually generate jumptables (which is to say every
--- 81,89 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! (fputs (SKIP_ASM_OP, (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* Output the label which precedes a jumptable. Note that for all svr4
systems where we actually generate jumptables (which is to say every
diff -Nrc3p config.old/alpha/unicosmk.h config/alpha/unicosmk.h
*** config.old/alpha/unicosmk.h Mon May 5 22:51:31 2003
--- config/alpha/unicosmk.h Tue May 6 10:52:27 2003
*************** ssib_section () \
*** 453,459 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM,SIZE) \
! fprintf ((STREAM), "\t.byte\t0:%d\n", (SIZE));
/* This says how to output an assembler line to define a global common
symbol. We need the alignment information because it has to be supplied
--- 453,461 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM,SIZE) \
! (fputs ("\t.byte\t0:", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* This says how to output an assembler line to define a global common
symbol. We need the alignment information because it has to be supplied
*************** ssib_section () \
*** 470,476 ****
do { data_section (); \
fprintf (FILE, "\t.align\t%d\n", floor_log2 ((ALIGN) / BITS_PER_UNIT));\
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf (FILE, "\t.byte 0:%d\n", SIZE); \
} while (0)
/* CAM does not allow us to declare a symbol as external first and then
--- 472,478 ----
do { data_section (); \
fprintf (FILE, "\t.align\t%d\n", floor_log2 ((ALIGN) / BITS_PER_UNIT));\
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf (FILE, "\t.byte 0:%d\n", (int)(SIZE)); \
} while (0)
/* CAM does not allow us to declare a symbol as external first and then
diff -Nrc3p config.old/arm/aof.h config/arm/aof.h
*** config.old/arm/aof.h Mon May 5 22:51:27 2003
--- config/arm/aof.h Tue May 6 10:55:31 2003
*************** do \
*** 207,220 ****
fprintf ((STREAM), "\tAREA "), \
assemble_name ((STREAM), (NAME)), \
fprintf ((STREAM), ", DATA, COMMON\n\t%% %d\t%s size=%d\n", \
! (ROUNDED), ASM_COMMENT_START, SIZE))
#define ASM_OUTPUT_LOCAL(STREAM,NAME,SIZE,ROUNDED) \
(zero_init_section (), \
assemble_name ((STREAM), (NAME)), \
fprintf ((STREAM), "\n"), \
fprintf ((STREAM), "\t%% %d\t%s size=%d\n", \
! (ROUNDED), ASM_COMMENT_START, SIZE))
/* Output and Generation of Labels */
--- 207,220 ----
fprintf ((STREAM), "\tAREA "), \
assemble_name ((STREAM), (NAME)), \
fprintf ((STREAM), ", DATA, COMMON\n\t%% %d\t%s size=%d\n", \
! (ROUNDED), ASM_COMMENT_START, (int)SIZE))
#define ASM_OUTPUT_LOCAL(STREAM,NAME,SIZE,ROUNDED) \
(zero_init_section (), \
assemble_name ((STREAM), (NAME)), \
fprintf ((STREAM), "\n"), \
fprintf ((STREAM), "\t%% %d\t%s size=%d\n", \
! (ROUNDED), ASM_COMMENT_START, (int)SIZE))
/* Output and Generation of Labels */
*************** do { \
*** 332,338 ****
/* Assembler Commands for Alignment */
#define ASM_OUTPUT_SKIP(STREAM,NBYTES) \
! fprintf ((STREAM), "\t%%\t%d\n", (NBYTES))
#define ASM_OUTPUT_ALIGN(STREAM,POWER) \
do { \
--- 332,338 ----
/* Assembler Commands for Alignment */
#define ASM_OUTPUT_SKIP(STREAM,NBYTES) \
! fprintf ((STREAM), "\t%%\t%d\n", (int)(NBYTES))
#define ASM_OUTPUT_ALIGN(STREAM,POWER) \
do { \
diff -Nrc3p config.old/arm/aout.h config/arm/aout.h
*** config.old/arm/aout.h Mon May 5 22:51:27 2003
--- config/arm/aout.h Tue May 6 10:49:35 2003
***************
*** 240,246 ****
/* Output a gap. In fact we fill it with nulls. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM, NBYTES) \
! fprintf (STREAM, "\t.space\t%d\n", NBYTES)
/* Align output to a power of two. Horrible /bin/as. */
#ifndef ASM_OUTPUT_ALIGN
--- 240,246 ----
/* Output a gap. In fact we fill it with nulls. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM, NBYTES) \
! fprintf (STREAM, "\t.space\t%d\n", (int)NBYTES)
/* Align output to a power of two. Horrible /bin/as. */
#ifndef ASM_OUTPUT_ALIGN
***************
*** 265,271 ****
fprintf (STREAM, "\t.comm\t"); \
assemble_name (STREAM, NAME); \
asm_fprintf (STREAM, ", %d\t%@ %d\n", \
! ROUNDED, SIZE); \
} \
while (0)
#endif
--- 265,271 ----
fprintf (STREAM, "\t.comm\t"); \
assemble_name (STREAM, NAME); \
asm_fprintf (STREAM, ", %d\t%@ %d\n", \
! (int)(ROUNDED), (int)(SIZE)); \
} \
while (0)
#endif
***************
*** 281,287 ****
bss_section (); \
ASM_OUTPUT_ALIGN (STREAM, floor_log2 (ALIGN / BITS_PER_UNIT)); \
ASM_OUTPUT_LABEL (STREAM, NAME); \
! fprintf (STREAM, "\t.space\t%d\n", SIZE); \
} \
while (0)
#endif
--- 281,287 ----
bss_section (); \
ASM_OUTPUT_ALIGN (STREAM, floor_log2 (ALIGN / BITS_PER_UNIT)); \
ASM_OUTPUT_LABEL (STREAM, NAME); \
! fprintf (STREAM, "\t.space\t%d\n", (int)(SIZE)); \
} \
while (0)
#endif
diff -Nrc3p config.old/arm/unknown-elf.h config/arm/unknown-elf.h
*** config.old/arm/unknown-elf.h Mon May 5 22:51:27 2003
--- config/arm/unknown-elf.h Tue May 6 10:43:08 2003
***************
*** 66,72 ****
\
last_assemble_variable_decl = DECL; \
ASM_DECLARE_OBJECT_NAME (FILE, NAME, DECL); \
! ASM_OUTPUT_SKIP (FILE, SIZE ? SIZE : 1); \
} \
while (0)
--- 66,72 ----
\
last_assemble_variable_decl = DECL; \
ASM_DECLARE_OBJECT_NAME (FILE, NAME, DECL); \
! ASM_OUTPUT_SKIP (FILE, SIZE ? (int)(SIZE) : 1); \
} \
while (0)
***************
*** 81,87 ****
\
ASM_OUTPUT_ALIGN (FILE, floor_log2 (ALIGN / BITS_PER_UNIT)); \
ASM_OUTPUT_LABEL (FILE, NAME); \
! fprintf (FILE, "\t.space\t%d\n", SIZE ? SIZE : 1); \
} \
while (0)
--- 81,87 ----
\
ASM_OUTPUT_ALIGN (FILE, floor_log2 (ALIGN / BITS_PER_UNIT)); \
ASM_OUTPUT_LABEL (FILE, NAME); \
! fprintf (FILE, "\t.space\t%d\n", SIZE ? (int)(SIZE) : 1); \
} \
while (0)
diff -Nrc3p config.old/avr/avr.h config/avr/avr.h
*** config.old/avr/avr.h Mon May 5 22:51:27 2003
--- config/avr/avr.h Tue May 6 10:55:40 2003
*************** do { \
*** 1803,1809 ****
do { \
fputs ("\t.lcomm ", (STREAM)); \
assemble_name ((STREAM), (NAME)); \
! fprintf ((STREAM), ",%d\n", (SIZE)); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM the assembler definition of a local-common-label named NAME
--- 1803,1809 ----
do { \
fputs ("\t.lcomm ", (STREAM)); \
assemble_name ((STREAM), (NAME)); \
! fprintf ((STREAM), ",%d\n", (int)(SIZE)); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM the assembler definition of a local-common-label named NAME
*************** sprintf (STRING, "*.%s%d", PREFIX, NUM)
*** 2200,2206 ****
of the jump-table. */
#define ASM_OUTPUT_SKIP(STREAM, N) \
! fprintf (STREAM, "\t.skip %d,0\n", N)
/* A C statement to output to the stdio stream STREAM an assembler
instruction to advance the location counter by NBYTES bytes.
Those bytes should be zero when loaded. NBYTES will be a C
--- 2200,2206 ----
of the jump-table. */
#define ASM_OUTPUT_SKIP(STREAM, N) \
! fprintf (STREAM, "\t.skip %d,0\n", (int)N)
/* A C statement to output to the stdio stream STREAM an assembler
instruction to advance the location counter by NBYTES bytes.
Those bytes should be zero when loaded. NBYTES will be a C
diff -Nrc3p config.old/c4x/c4x.h config/c4x/c4x.h
*** config.old/c4x/c4x.h Mon May 5 22:51:27 2003
--- config/c4x/c4x.h Tue May 6 10:55:17 2003
*************** do { \
*** 1668,1674 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.bss\t", FILE), \
assemble_name (FILE, (NAME)), \
! fprintf (FILE, ",%u\n", (ROUNDED)))
/* This says how to output an assembler line to define a global
uninitialized variable. */
--- 1668,1674 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.bss\t", FILE), \
assemble_name (FILE, (NAME)), \
! fprintf (FILE, ",%u\n", (int)(ROUNDED)))
/* This says how to output an assembler line to define a global
uninitialized variable. */
*************** do { \
*** 1679,1685 ****
assemble_name (FILE, (NAME)), \
fputs ("\n\t.bss\t", FILE), \
assemble_name (FILE, (NAME)), \
! fprintf (FILE, ",%u\n", (ROUNDED)))
#undef ASM_OUTPUT_BSS
#define ASM_OUTPUT_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
--- 1679,1685 ----
assemble_name (FILE, (NAME)), \
fputs ("\n\t.bss\t", FILE), \
assemble_name (FILE, (NAME)), \
! fprintf (FILE, ",%u\n", (int)(ROUNDED)))
#undef ASM_OUTPUT_BSS
#define ASM_OUTPUT_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
*************** do { \
*** 1687,1693 ****
assemble_name (FILE, (NAME)), \
fputs ("\n\t.bss\t", FILE), \
assemble_name (FILE, (NAME)), \
! fprintf (FILE, ",%u\n", (SIZE)))
/* Macros Controlling Initialization Routines. */
--- 1687,1693 ----
assemble_name (FILE, (NAME)), \
fputs ("\n\t.bss\t", FILE), \
assemble_name (FILE, (NAME)), \
! fprintf (FILE, ",%u\n", (int)(SIZE)))
/* Macros Controlling Initialization Routines. */
diff -Nrc3p config.old/cris/aout.h config/cris/aout.h
*** config.old/cris/aout.h Mon May 5 22:51:29 2003
--- config/cris/aout.h Mon May 5 23:20:43 2003
*************** Boston, MA 02111-1307, USA. */
*** 373,379 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* Node: All Debuggers */
--- 373,379 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE))
/* Node: All Debuggers */
diff -Nrc3p config.old/cris/cris.h config/cris/cris.h
*** config.old/cris/cris.h Mon May 5 22:51:29 2003
--- config/cris/cris.h Tue May 6 10:43:48 2003
*************** call_ ## FUNC (void) \
*** 1474,1480 ****
} \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%u\n", (SIZE), align_); \
} \
else \
{ \
--- 1474,1480 ----
} \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%u\n", (int)(SIZE), align_); \
} \
else \
{ \
*************** call_ ## FUNC (void) \
*** 1485,1491 ****
fputs ("\t.lcomm ", (FILE)); \
assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%u\n", \
! ((SIZE) + (align_ - 1)) & ~(align_ - 1)); \
} \
} \
while (0)
--- 1485,1491 ----
fputs ("\t.lcomm ", (FILE)); \
assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%u\n", \
! ((int)(SIZE) + (align_ - 1)) & ~(align_ - 1)); \
} \
} \
while (0)
diff -Nrc3p config.old/darwin.h config/darwin.h
*** config.old/darwin.h Mon May 5 22:51:31 2003
--- config/darwin.h Tue May 6 10:44:59 2003
*************** do { text_section (); \
*** 346,352 ****
} while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %d\n", SIZE)
/* Give ObjC methods pretty symbol names. */
--- 346,354 ----
} while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! (fputs ("\t.space ", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* Give ObjC methods pretty symbol names. */
*************** do { text_section (); \
*** 454,460 ****
do { \
fputs (".lcomm ", (FILE)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%u\n", (SIZE), \
floor_log2 ((ALIGN) / BITS_PER_UNIT)); \
if ((DECL) && ((TREE_STATIC (DECL) \
&& (!DECL_COMMON (DECL) || !TREE_PUBLIC (DECL))) \
--- 456,464 ----
do { \
fputs (".lcomm ", (FILE)); \
assemble_name ((FILE), (NAME)); \
! putc (`,`, (FILE))) \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! fprintf ((FILE), ",%u\n", \
floor_log2 ((ALIGN) / BITS_PER_UNIT)); \
if ((DECL) && ((TREE_STATIC (DECL) \
&& (!DECL_COMMON (DECL) || !TREE_PUBLIC (DECL))) \
diff -Nrc3p config.old/dsp16xx/dsp16xx.h config/dsp16xx/dsp16xx.h
*** config.old/dsp16xx/dsp16xx.h Mon May 5 22:51:32 2003
--- config/dsp16xx/dsp16xx.h Mon May 5 23:25:06 2003
*************** extern struct dsp16xx_frame_info current
*** 1703,1709 ****
#define ASM_NO_SKIP_IN_TEXT 1
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t%d * int 0\n", (SIZE))
/* CONTROLLING DEBUGGING INFORMATION FORMAT */
--- 1703,1709 ----
#define ASM_NO_SKIP_IN_TEXT 1
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t%d * int 0\n", (int)(SIZE))
/* CONTROLLING DEBUGGING INFORMATION FORMAT */
diff -Nrc3p config.old/frv/frv.h config/frv/frv.h
*** config.old/frv/frv.h Mon May 5 22:51:27 2003
--- config/frv/frv.h Mon May 5 23:17:31 2003
*************** do {
*** 3111,3117 ****
Defined in svr4.h. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM, NBYTES) \
! fprintf (STREAM, "\t.zero\t%u\n", (NBYTES))
/* A C statement to output to the stdio stream STREAM an assembler command to
advance the location counter to a multiple of 2 to the POWER bytes. POWER
--- 3111,3117 ----
Defined in svr4.h. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM, NBYTES) \
! fprintf (STREAM, "\t.zero\t%u\n", (int)(NBYTES))
/* A C statement to output to the stdio stream STREAM an assembler command to
advance the location counter to a multiple of 2 to the POWER bytes. POWER
diff -Nrc3p config.old/h8300/h8300.h config/h8300/h8300.h
*** config.old/h8300/h8300.h Mon May 5 22:51:31 2003
--- config/h8300/h8300.h Tue May 6 11:01:05 2003
*************** struct cum_arg
*** 1184,1190 ****
fprintf (FILE, "%s\"%s\"\n", IDENT_ASM_OP, NAME)
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf (FILE, "\t.space %d\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1184,1190 ----
fprintf (FILE, "%s\"%s\"\n", IDENT_ASM_OP, NAME)
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf (FILE, "\t.space %d\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** struct cum_arg
*** 1207,1213 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
#define ASM_PN_FORMAT "%s___%lu"
--- 1207,1213 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (int)(SIZE)))
#define ASM_PN_FORMAT "%s___%lu"
diff -Nrc3p config.old/i370/i370.h config/i370/i370.h
*** config.old/i370/i370.h Mon May 5 22:51:28 2003
--- config/i370/i370.h Tue May 6 10:56:38 2003
*************** enum reg_class
*** 1181,1187 ****
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
{ \
! int s, k; \
for (s = (SIZE); s > 0; s -= MAX_CHUNK) \
{ \
if (s > MAX_CHUNK) \
--- 1181,1188 ----
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
{ \
! HOST_WIDE_INT s; \
! int k; \
for (s = (SIZE); s > 0; s -= MAX_CHUNK) \
{ \
if (s > MAX_CHUNK) \
*************** abort(); \
*** 1864,1870 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 1865,1873 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! putc (',', (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (ROUNDED)),\
! putc ('\n', (FILE))) \
/* This says how to output an assembler line
to define a local common symbol. */
*************** abort(); \
*** 1872,1878 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
#endif /* TARGET_ELF_ABI */
#endif /* ! GCC_I370_H */
--- 1873,1879 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! putc (',', (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (ROUNDED)),\
! putc ('\n', (FILE))) \
#endif /* TARGET_ELF_ABI */
#endif /* ! GCC_I370_H */
diff -Nrc3p config.old/i386/att.h config/i386/att.h
*** config.old/i386/att.h Mon May 5 22:51:28 2003
--- config/i386/att.h Mon May 5 23:18:37 2003
*************** do \
*** 69,75 ****
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf ((FILE), "\t.set .,.+%u\n", (SIZE))
/* Can't use ASM_OUTPUT_SKIP in text section; it doesn't leave 0s. */
--- 69,75 ----
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf ((FILE), "\t.set .,.+%u\n", (int)(SIZE))
/* Can't use ASM_OUTPUT_SKIP in text section; it doesn't leave 0s. */
diff -Nrc3p config.old/i386/bsd.h config/i386/bsd.h
*** config.old/i386/bsd.h Mon May 5 22:51:28 2003
--- config/i386/bsd.h Tue May 6 10:56:55 2003
*************** Boston, MA 02111-1307, USA. */
*** 53,59 ****
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %u\n", (SIZE))
/* Define the syntax of labels and symbol definitions/declarations. */
--- 53,61 ----
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! (fputs ("\t.space ", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* Define the syntax of labels and symbol definitions/declarations. */
*************** Boston, MA 02111-1307, USA. */
*** 63,69 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 65,71 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** Boston, MA 02111-1307, USA. */
*** 71,77 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This is how to output an assembler line
that says to advance the location counter
--- 73,79 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* This is how to output an assembler line
that says to advance the location counter
diff -Nrc3p config.old/i386/darwin.h config/i386/darwin.h
*** config.old/i386/darwin.h Mon May 5 22:51:28 2003
--- config/i386/darwin.h Tue May 6 10:56:46 2003
*************** Boston, MA 02111-1307, USA. */
*** 109,115 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* Darwin profiling -- call mcount. */
#undef FUNCTION_PROFILER
--- 109,117 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! putc (',', (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (ROUNDED)),\
! putc ('\n', (FILE))) \
/* Darwin profiling -- call mcount. */
#undef FUNCTION_PROFILER
diff -Nrc3p config.old/i386/sco5.h config/i386/sco5.h
*** config.old/i386/sco5.h Mon May 5 22:51:29 2003
--- config/i386/sco5.h Tue May 6 10:50:24 2003
*************** do { \
*** 218,226 ****
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
if (TARGET_ELF) \
! fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
else \
! fprintf ((FILE), ",%u\n", (SIZE)); \
} while (0)
#undef ASM_OUTPUT_ALIGNED_LOCAL
--- 218,226 ----
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
if (TARGET_ELF) \
! fprintf ((FILE), ",%u,%u\n", (int)(SIZE), (ALIGN) / BITS_PER_UNIT); \
else \
! fprintf ((FILE), ",%u\n", (int)(SIZE)); \
} while (0)
#undef ASM_OUTPUT_ALIGNED_LOCAL
*************** do { \
*** 241,247 ****
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
fprintf ((FILE), "%s\t", "\t.lcomm"); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u\n", (SIZE)); \
} \
} while (0)
--- 241,247 ----
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
fprintf ((FILE), "%s\t", "\t.lcomm"); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u\n", (int)(SIZE)); \
} \
} while (0)
*************** do { \
*** 372,380 ****
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
do { \
if (TARGET_ELF) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE)); \
else \
! fprintf ((FILE), "%s.,.+%u\n", SET_ASM_OP, (SIZE)); \
} while (0)
--- 372,380 ----
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
do { \
if (TARGET_ELF) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE)); \
else \
! fprintf ((FILE), "%s.,.+%u\n", SET_ASM_OP, (int)(SIZE)); \
} while (0)
diff -Nrc3p config.old/i386/svr3gas.h config/i386/svr3gas.h
*** config.old/i386/svr3gas.h Mon May 5 22:51:29 2003
--- config/i386/svr3gas.h Tue May 6 10:57:27 2003
*************** Boston, MA 02111-1307, USA. */
*** 52,64 ****
data_section (); \
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED)); \
} \
else \
{ \
fputs (".lcomm ", (FILE)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u\n", (ROUNDED)); \
} \
} while (0)
--- 52,64 ----
data_section (); \
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf ((FILE), "\t.set .,.+%u\n", (int)(ROUNDED)); \
} \
else \
{ \
fputs (".lcomm ", (FILE)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)); \
} \
} while (0)
diff -Nrc3p config.old/i386/sysv3.h config/i386/sysv3.h
*** config.old/i386/sysv3.h Mon May 5 22:51:29 2003
--- config/i386/sysv3.h Tue May 6 10:57:14 2003
*************** Boston, MA 02111-1307, USA. */
*** 89,95 ****
bss_section (); \
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED)); \
} while (0)
/* Define a few machine-specific details of the implementation of
--- 89,95 ----
bss_section (); \
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf ((FILE), "\t.set .,.+%u\n", (int)(ROUNDED));\
} while (0)
/* Define a few machine-specific details of the implementation of
diff -Nrc3p config.old/i960/i960.h config/i960/i960.h
*** config.old/i960/i960.h Mon May 5 22:51:29 2003
--- config/i960/i960.h Tue May 6 10:50:58 2003
*************** extern struct rtx_def *i960_compare_op0,
*** 1251,1257 ****
fprintf (FILE, "\t.align %d\n", (LOG))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %d\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1251,1257 ----
fprintf (FILE, "\t.align %d\n", (LOG))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %d\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** extern struct rtx_def *i960_compare_op0,
*** 1268,1274 ****
assemble_name ((FILE), (NAME)), \
fputs ("\n.comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)); \
} \
}
--- 1268,1274 ----
assemble_name ((FILE), (NAME)), \
fputs ("\n.comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (int)(SIZE)); \
} \
}
*************** extern struct rtx_def *i960_compare_op0,
*** 1279,1285 ****
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
( fputs (".bss\t", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d,%d\n", (SIZE), \
(floor_log2 ((ALIGN) / BITS_PER_UNIT))))
/* A C statement (sans semicolon) to output to the stdio stream
--- 1279,1285 ----
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
( fputs (".bss\t", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d,%d\n", (int)(SIZE), \
(floor_log2 ((ALIGN) / BITS_PER_UNIT))))
/* A C statement (sans semicolon) to output to the stdio stream
diff -Nrc3p config.old/ip2k/ip2k.h config/ip2k/ip2k.h
*** config.old/ip2k/ip2k.h Mon May 5 22:51:30 2003
--- config/ip2k/ip2k.h Tue May 6 11:00:25 2003
*************** do { \
*** 1961,1967 ****
do { \
fputs ("\t.comm ", (STREAM)); \
assemble_name ((STREAM), (NAME)); \
! fprintf ((STREAM), ",%d\n", (SIZE)); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM the assembler definition of a common-label named NAME whose
--- 1961,1967 ----
do { \
fputs ("\t.comm ", (STREAM)); \
assemble_name ((STREAM), (NAME)); \
! fprintf ((STREAM), ",%d\n", (int)(SIZE)); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM the assembler definition of a common-label named NAME whose
*************** do { \
*** 1979,1985 ****
do { \
fputs ("\t.lcomm ", (STREAM)); \
assemble_name ((STREAM), (NAME)); \
! fprintf ((STREAM), ",%d\n", (SIZE)); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM the assembler definition of a local-common-label named NAME
--- 1979,1985 ----
do { \
fputs ("\t.lcomm ", (STREAM)); \
assemble_name ((STREAM), (NAME)); \
! fprintf ((STREAM), ",%d\n", (int)(SIZE)); \
} while (0)
/* A C statement (sans semicolon) to output to the stdio stream
STREAM the assembler definition of a local-common-label named NAME
diff -Nrc3p config.old/m32r/m32r.h config/m32r/m32r.h
*** config.old/m32r/m32r.h Mon May 5 22:51:29 2003
--- config/m32r/m32r.h Tue May 6 11:04:08 2003
*************** extern char m32r_punct_chars[256];
*** 1785,1791 ****
else \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
} \
while (0)
--- 1785,1791 ----
else \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%u\n", (int)(SIZE), (ALIGN) / BITS_PER_UNIT);\
} \
while (0)
diff -Nrc3p config.old/m68k/3b1.h config/m68k/3b1.h
*** config.old/m68k/3b1.h Mon May 5 22:51:30 2003
--- config/m68k/3b1.h Tue May 6 10:58:05 2003
*************** do { \
*** 126,132 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\tspace %d\n", (SIZE))
/* Can't use ASM_OUTPUT_SKIP in text section; it doesn't leave 0s. */
--- 126,132 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\tspace %d\n", (int)(SIZE))
/* Can't use ASM_OUTPUT_SKIP in text section; it doesn't leave 0s. */
*************** int switch_table_difference_label_flag;
*** 392,398 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
#define USER_LABEL_PREFIX ""
--- 392,398 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
#define USER_LABEL_PREFIX ""
diff -Nrc3p config.old/m68k/amix.h config/m68k/amix.h
*** config.old/m68k/amix.h Mon May 5 22:51:30 2003
--- config/m68k/amix.h Tue May 6 10:51:15 2003
*************** do { \
*** 89,95 ****
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
do { \
fprintf ((FILE), "%s%s,%u,%u\n", \
! BSS_ASM_OP, (NAME), (SIZE), MAX ((ALIGN) / BITS_PER_UNIT, 4)); \
} while (0)
/* This definition of ASM_OUTPUT_ASCII is the same as the one in m68k/sgs.h,
--- 89,95 ----
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
do { \
fprintf ((FILE), "%s%s,%u,%u\n", \
! BSS_ASM_OP, (NAME), (int)(SIZE), MAX ((ALIGN) / BITS_PER_UNIT, 4)); \
} while (0)
/* This definition of ASM_OUTPUT_ASCII is the same as the one in m68k/sgs.h,
diff -Nrc3p config.old/m68k/crds.h config/m68k/crds.h
*** config.old/m68k/crds.h Mon May 5 22:51:30 2003
--- config/m68k/crds.h Tue May 6 10:58:53 2003
*************** Boston, MA 02111-1307, USA. */
*** 154,160 ****
/*unos has no .skip :-( */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t. = . + %u\n", (SIZE));
/* This says how to output an assembler line
to define a local common symbol. */
--- 154,160 ----
/*unos has no .skip :-( */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t. = . + %u\n", (int)(SIZE));
/* This says how to output an assembler line
to define a local common symbol. */
*************** Boston, MA 02111-1307, USA. */
*** 165,171 ****
{ data_section (); \
if ((SIZE) > 1) fprintf (FILE, "\t.even\n"); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ":\t. = . + %u\n", (ROUNDED));}
/* This is how to output an insn to push a register on the stack.
It need not be very fast code. */
--- 165,171 ----
{ data_section (); \
if ((SIZE) > 1) fprintf (FILE, "\t.even\n"); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ":\t. = . + %u\n", (int)(ROUNDED));}
/* This is how to output an insn to push a register on the stack.
It need not be very fast code. */
diff -Nrc3p config.old/m68k/hp320.h config/m68k/hp320.h
*** config.old/m68k/hp320.h Mon May 5 22:51:30 2003
--- config/m68k/hp320.h Tue May 6 10:59:15 2003
*************** Boston, MA 02111-1307, USA. */
*** 237,243 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 237,243 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** Boston, MA 02111-1307, USA. */
*** 245,251 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u,2\n", (ROUNDED)))
#define ASM_PN_FORMAT "%s___%lu"
--- 245,251 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u,2\n", (int)(ROUNDED)))
#define ASM_PN_FORMAT "%s___%lu"
*************** do { \
*** 264,270 ****
} while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\tspace %u\n", (SIZE))
#define ASM_OUTPUT_SOURCE_FILENAME(FILE, FILENAME)
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINENO)
--- 264,270 ----
} while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\tspace %u\n", (int)(SIZE))
#define ASM_OUTPUT_SOURCE_FILENAME(FILE, FILENAME)
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINENO)
diff -Nrc3p config.old/m68k/m68k.h config/m68k/m68k.h
*** config.old/m68k/m68k.h Mon May 5 22:51:30 2003
--- config/m68k/m68k.h Tue May 6 10:59:05 2003
*************** __transfer_from_trampoline () \
*** 1709,1715 ****
fprintf (FILE, "\t.even\n");
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.skip %u\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1709,1715 ----
fprintf (FILE, "\t.even\n");
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.skip %u\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** __transfer_from_trampoline () \
*** 1717,1723 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 1717,1723 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** __transfer_from_trampoline () \
*** 1725,1731 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* Output a float value (represented as a C double) as an immediate operand.
This macro is a 68k-specific macro. */
--- 1725,1731 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* Output a float value (represented as a C double) as an immediate operand.
This macro is a 68k-specific macro. */
diff -Nrc3p config.old/m68k/m68kelf.h config/m68k/m68kelf.h
*** config.old/m68k/m68kelf.h Mon May 5 22:51:30 2003
--- config/m68k/m68kelf.h Tue May 6 10:59:28 2003
*************** do { \
*** 167,173 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SPACE_ASM_OP, (SIZE))
#if 0
/* SVR4 m68k assembler is bitching on the `comm i,1,1' which askes for
--- 167,173 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SPACE_ASM_OP, (int)(SIZE))
#if 0
/* SVR4 m68k assembler is bitching on the `comm i,1,1' which askes for
*************** extern int switch_table_difference_label
*** 229,240 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
/* Currently, JUMP_TABLES_IN_TEXT_SECTION must be defined in order to
keep switch tables in the text section. */
--- 229,240 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
/* Currently, JUMP_TABLES_IN_TEXT_SECTION must be defined in order to
keep switch tables in the text section. */
diff -Nrc3p config.old/m68k/m68kv4.h config/m68k/m68kv4.h
*** config.old/m68k/m68kv4.h Mon May 5 22:51:30 2003
--- config/m68k/m68kv4.h Tue May 6 10:58:46 2003
*************** Boston, MA 02111-1307, USA. */
*** 124,130 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SPACE_ASM_OP, (SIZE))
/* 1 if N is a possible register number for a function value.
For m68k/SVR4 allow d0, a0, or fp0 as return registers, for integral,
--- 124,130 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SPACE_ASM_OP, (int)(SIZE))
/* 1 if N is a possible register number for a function value.
For m68k/SVR4 allow d0, a0, or fp0 as return registers, for integral,
*************** int switch_table_difference_label_flag;
*** 258,269 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
/* Override the definition in svr4.h. In m68k svr4, using swbeg is the
standard way to do switch table. */
--- 258,269 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
/* Override the definition in svr4.h. In m68k svr4, using swbeg is the
standard way to do switch table. */
diff -Nrc3p config.old/m68k/mot3300.h config/m68k/mot3300.h
*** config.old/m68k/mot3300.h Mon May 5 22:51:30 2003
--- config/m68k/mot3300.h Tue May 6 10:57:37 2003
*************** Boston, MA 02111-1307, USA. */
*** 308,314 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* Can't use ASM_OUTPUT_SKIP in text section. */
--- 308,314 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE))
/* Can't use ASM_OUTPUT_SKIP in text section. */
*************** Boston, MA 02111-1307, USA. */
*** 532,543 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
#else /* USE_GAS */
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
#endif /* USE_GAS */
#ifndef USE_GAS
--- 532,543 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
#else /* USE_GAS */
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
#endif /* USE_GAS */
#ifndef USE_GAS
diff -Nrc3p config.old/m68k/netbsd-elf.h config/m68k/netbsd-elf.h
*** config.old/m68k/netbsd-elf.h Mon May 5 22:51:30 2003
--- config/m68k/netbsd-elf.h Tue May 6 10:58:35 2003
*************** while (0)
*** 269,281 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
#undef ASM_OUTPUT_LOCAL
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE)))
/* XXX
--- 269,281 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
#undef ASM_OUTPUT_LOCAL
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(SIZE)))
/* XXX
diff -Nrc3p config.old/m68k/sgs.h config/m68k/sgs.h
*** config.old/m68k/sgs.h Mon May 5 22:51:30 2003
--- config/m68k/sgs.h Mon May 5 23:21:07 2003
*************** do { \
*** 194,200 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SPACE_ASM_OP, (SIZE))
/* Translate Motorola opcodes such as `jbeq' into SGS opcodes such
as `beq.w'.
--- 194,200 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SPACE_ASM_OP, (int)(SIZE))
/* Translate Motorola opcodes such as `jbeq' into SGS opcodes such
as `beq.w'.
diff -Nrc3p config.old/m68k/tower-as.h config/m68k/tower-as.h
*** config.old/m68k/tower-as.h Mon May 5 22:51:30 2003
--- config/m68k/tower-as.h Tue May 6 10:58:25 2003
*************** Boston, MA 02111-1307, USA. */
*** 199,205 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", ((SIZE) == 0) ? (ROUNDED) : (SIZE)))
/* This says how to output an assembler line to define a local common symbol.
We use SIZE rather than ROUNDED, as this is what the native cc does. */
--- 199,205 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", ((SIZE) == 0) ? (int)(ROUNDED) : (int)(SIZE)))
/* This says how to output an assembler line to define a local common symbol.
We use SIZE rather than ROUNDED, as this is what the native cc does. */
*************** Boston, MA 02111-1307, USA. */
*** 208,214 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", ((SIZE) == 0) ? (ROUNDED) : (SIZE)))
#define ASM_PN_FORMAT "%s%%%%%lu"
--- 208,214 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", ((SIZE) == 0) ? (int)(ROUNDED) : (int)(SIZE)))
#define ASM_PN_FORMAT "%s%%%%%lu"
*************** do { \
*** 246,252 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\tspace %d\n", (SIZE))
/* Output a float value (represented as a C double) as an immediate operand.
This macro is a 68k-specific macro. */
--- 246,252 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\tspace %d\n", (int)(SIZE))
/* Output a float value (represented as a C double) as an immediate operand.
This macro is a 68k-specific macro. */
diff -Nrc3p config.old/m88k/m88k.h config/m88k/m88k.h
*** config.old/m88k/m88k.h Mon May 5 22:51:30 2003
--- config/m88k/m88k.h Tue May 6 10:59:41 2003
*************** do { \
*** 1888,1894 ****
/* Override svr[34].h. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* Override svr4.h. */
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
--- 1888,1894 ----
/* Override svr[34].h. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE))
/* Override svr4.h. */
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
*************** do { \
*** 1900,1908 ****
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fprintf ((FILE), "%s", \
! ((SIZE) ? (SIZE) : 1) <= m88k_gp_threshold ? SCOMM_ASM_OP : COMMON_ASM_OP), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE) ? (SIZE) : 1))
/* This says how to output an assembler line to define a local common
symbol. Override svr[34].h. */
--- 1900,1908 ----
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fprintf ((FILE), "%s", \
! ((SIZE) ? (int)(SIZE) : 1) <= m88k_gp_threshold ? SCOMM_ASM_OP : COMMON_ASM_OP), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (SIZE) ? (int)(SIZE) : 1))
/* This says how to output an assembler line to define a local common
symbol. Override svr[34].h. */
*************** do { \
*** 1910,1918 ****
#undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fprintf ((FILE), "%s", \
! ((SIZE) ? (SIZE) : 1) <= m88k_gp_threshold ? SBSS_ASM_OP : BSS_ASM_OP), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u,%d\n", (SIZE) ? (SIZE) : 1, (SIZE) <= 4 ? 4 : 8))
/* This is how to output an insn to push a register on the stack.
It need not be very fast code. */
--- 1910,1918 ----
#undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fprintf ((FILE), "%s", \
! ((SIZE) ? (int)(SIZE) : 1) <= m88k_gp_threshold ? SBSS_ASM_OP : BSS_ASM_OP), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u,%d\n", (SIZE) ? (int)(SIZE) : 1, (SIZE) <= 4 ? 4 : 8))
/* This is how to output an insn to push a register on the stack.
It need not be very fast code. */
diff -Nrc3p config.old/mcore/mcore.h config/mcore/mcore.h
*** config.old/mcore/mcore.h Mon May 5 22:51:31 2003
--- config/mcore/mcore.h Tue May 6 11:01:11 2003
*************** extern long mcore_current_compilation_ti
*** 1163,1169 ****
that says to advance the location counter by SIZE bytes. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.fill %d, 1\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol, with alignment information. */
--- 1163,1169 ----
that says to advance the location counter by SIZE bytes. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.fill %d, 1\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol, with alignment information. */
*************** extern long mcore_current_compilation_ti
*** 1220,1226 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
(fputs ("\t.lcomm\t", FILE), \
assemble_name (FILE, NAME), \
! fprintf (FILE, ",%d\n", SIZE))
/* ... and how to define a local common symbol whose alignment
we wish to specify. ALIGN comes in as bits, we have to turn
--- 1220,1226 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
(fputs ("\t.lcomm\t", FILE), \
assemble_name (FILE, NAME), \
! fprintf (FILE, ",%d\n", (int)SIZE))
/* ... and how to define a local common symbol whose alignment
we wish to specify. ALIGN comes in as bits, we have to turn
*************** extern long mcore_current_compilation_ti
*** 1231,1237 ****
{ \
fputs ("\t.bss\t", (FILE)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%d,%d\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
} \
while (0)
--- 1231,1237 ----
{ \
fputs ("\t.bss\t", (FILE)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), ",%d,%d\n", (int)(SIZE), (ALIGN) / BITS_PER_UNIT);\
} \
while (0)
diff -Nrc3p config.old/mips/iris6.h config/mips/iris6.h
*** config.old/mips/iris6.h Mon May 5 22:51:31 2003
--- config/mips/iris6.h Tue May 6 10:51:43 2003
*************** do \
*** 390,396 ****
ASM_OUTPUT_SKIP (STREAM, SIZE); \
} \
else \
! mips_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (SIZE)); \
} \
while (0)
--- 390,396 ----
ASM_OUTPUT_SKIP (STREAM, SIZE); \
} \
else \
! mips_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (int)(SIZE)); \
} \
while (0)
diff -Nrc3p config.old/mips/mips.h config/mips/mips.h
*** config.old/mips/mips.h Mon May 5 22:51:30 2003
--- config/mips/mips.h Tue May 6 11:00:31 2003
*************** while (0)
*** 4022,4028 ****
linker). */
#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \
! mips_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (SIZE))
/* This says how to output an external. It would be possible not to
--- 4022,4028 ----
linker). */
#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \
! mips_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (int)(SIZE))
/* This says how to output an external. It would be possible not to
*************** do { \
*** 4128,4134 ****
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM,SIZE) \
! fprintf (STREAM, "\t.space\t%u\n", (SIZE))
/* This is how to output a string. */
#undef ASM_OUTPUT_ASCII
--- 4128,4136 ----
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM,SIZE) \
! (fputs ("\t.space\t", (STREAM)), \
! fprintf ((STREAM), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (STREAM)))
/* This is how to output a string. */
#undef ASM_OUTPUT_ASCII
diff -Nrc3p config.old/ns32k/ns32k.h config/ns32k/ns32k.h
*** config.old/ns32k/ns32k.h Mon May 5 22:51:31 2003
--- config/ns32k/ns32k.h Tue May 6 11:01:28 2003
*************** __transfer_from_trampoline () \
*** 1332,1338 ****
fprintf (FILE, "\t.align %d\n", (LOG))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %u\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1332,1338 ----
fprintf (FILE, "\t.align %d\n", (LOG))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %u\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** __transfer_from_trampoline () \
*** 1340,1346 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 1340,1346 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** __transfer_from_trampoline () \
*** 1348,1354 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* Print an instruction operand X on file FILE.
CODE is the code from the %-spec that requested printing this operand;
--- 1348,1354 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* Print an instruction operand X on file FILE.
CODE is the code from the %-spec that requested printing this operand;
diff -Nrc3p config.old/pa/pa-pro-end.h config/pa/pa-pro-end.h
*** config.old/pa/pa-pro-end.h Mon May 5 22:51:26 2003
--- config/pa/pa-pro-end.h Tue May 6 10:49:12 2003
*************** Boston, MA 02111-1307, USA. */
*** 64,70 ****
{ bss_section (); \
assemble_name ((FILE), (NAME)); \
fputs ("\t.comm ", (FILE)); \
! fprintf ((FILE), "%d\n", MAX ((SIZE), ((ALIGNED) / BITS_PER_UNIT)));}
/* This says how to output an assembler line to define a local common symbol
with size SIZE (in bytes) and alignment ALIGN (in bits). */
--- 64,71 ----
{ bss_section (); \
assemble_name ((FILE), (NAME)); \
fputs ("\t.comm ", (FILE)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, \
! MAX ((SIZE), ((ALIGNED) / BITS_PER_UNIT)));}
/* This says how to output an assembler line to define a local common symbol
with size SIZE (in bytes) and alignment ALIGN (in bits). */
*************** Boston, MA 02111-1307, USA. */
*** 74,77 ****
{ bss_section (); \
fprintf ((FILE), "\t.align %d\n", ((ALIGNED) / BITS_PER_UNIT)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), "\n\t.block %d\n", (SIZE));}
--- 75,80 ----
{ bss_section (); \
fprintf ((FILE), "\t.align %d\n", ((ALIGNED) / BITS_PER_UNIT)); \
assemble_name ((FILE), (NAME)); \
! fputs ("\n\t.block ", (FILE)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)); \
! putc ('\n', (FILE));}
diff -Nrc3p config.old/pa/pa.h config/pa/pa.h
*** config.old/pa/pa.h Mon May 5 22:51:26 2003
--- config/pa/pa.h Tue May 6 10:49:07 2003
*************** do { \
*** 1744,1750 ****
fprintf (FILE, "\t.align %d\n", (1<<(LOG)))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.blockz %d\n", (SIZE))
/* This says how to output an assembler line to define a global common symbol
with size SIZE (in bytes) and alignment ALIGN (in bits). */
--- 1744,1752 ----
fprintf (FILE, "\t.align %d\n", (1<<(LOG)))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! (fputs ("\t.blockz ", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* This says how to output an assembler line to define a global common symbol
with size SIZE (in bytes) and alignment ALIGN (in bits). */
*************** do { \
*** 1753,1759 ****
{ bss_section (); \
assemble_name ((FILE), (NAME)); \
fputs ("\t.comm ", (FILE)); \
! fprintf ((FILE), "%d\n", MAX ((SIZE), ((ALIGNED) / BITS_PER_UNIT)));}
/* This says how to output an assembler line to define a local common symbol
with size SIZE (in bytes) and alignment ALIGN (in bits). */
--- 1755,1762 ----
{ bss_section (); \
assemble_name ((FILE), (NAME)); \
fputs ("\t.comm ", (FILE)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, \
! MAX ((SIZE), ((ALIGNED) / BITS_PER_UNIT)));}
/* This says how to output an assembler line to define a local common symbol
with size SIZE (in bytes) and alignment ALIGN (in bits). */
*************** do { \
*** 1761,1768 ****
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGNED) \
{ bss_section (); \
fprintf ((FILE), "\t.align %d\n", ((ALIGNED) / BITS_PER_UNIT)); \
! assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), "\n\t.block %d\n", (SIZE));}
#define ASM_PN_FORMAT "%s___%lu"
--- 1764,1773 ----
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGNED) \
{ bss_section (); \
fprintf ((FILE), "\t.align %d\n", ((ALIGNED) / BITS_PER_UNIT)); \
! assemble_name ((FILE), (NAME)); \
! fputs ("\n\t.block ", (FILE)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)); \
! putc ('\n', (FILE));}
#define ASM_PN_FORMAT "%s___%lu"
diff -Nrc3p config.old/pa/pa64-hpux.h config/pa/pa64-hpux.h
*** config.old/pa/pa64-hpux.h Mon May 5 22:51:26 2003
--- config/pa/pa64-hpux.h Tue May 6 10:48:11 2003
*************** do { \
*** 125,131 ****
bss_section (); \
assemble_name ((FILE), (NAME)); \
fputs ("\t.comm ", (FILE)); \
! fprintf ((FILE), "%d\n", MAX ((SIZE), ((ALIGN) / BITS_PER_UNIT))); \
} while (0)
#undef ASM_OUTPUT_ALIGNED_LOCAL
--- 125,132 ----
bss_section (); \
assemble_name ((FILE), (NAME)); \
fputs ("\t.comm ", (FILE)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, \
! MAX ((SIZE), ((ALIGNED) / BITS_PER_UNIT)));}
} while (0)
#undef ASM_OUTPUT_ALIGNED_LOCAL
*************** do { \
*** 134,140 ****
bss_section (); \
fprintf ((FILE), "\t.align %d\n", ((ALIGN) / BITS_PER_UNIT)); \
assemble_name ((FILE), (NAME)); \
! fprintf ((FILE), "\n\t.block %d\n", (SIZE)); \
} while (0)
/* The define in pa.h doesn't work with the alias attribute. The
--- 135,143 ----
bss_section (); \
fprintf ((FILE), "\t.align %d\n", ((ALIGN) / BITS_PER_UNIT)); \
assemble_name ((FILE), (NAME)); \
! fputs ("\n\t.block ", (FILE)); \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)); \
! putc (`\n`, (FILE));} \
} while (0)
/* The define in pa.h doesn't work with the alias attribute. The
diff -Nrc3p config.old/romp/romp.h config/romp/romp.h
*** config.old/romp/romp.h Mon May 5 22:51:31 2003
--- config/romp/romp.h Tue May 6 11:00:47 2003
*************** struct rt_cargs {int gregs, fregs; };
*** 1295,1301 ****
fprintf (FILE, "\t.align %d\n", (LOG))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %d\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1295,1301 ----
fprintf (FILE, "\t.align %d\n", (LOG))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %d\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** struct rt_cargs {int gregs, fregs; };
*** 1303,1309 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 1303,1309 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (int)(SIZE)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** struct rt_cargs {int gregs, fregs; };
*** 1311,1317 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
/* Print operand X (an rtx) in assembler syntax to file FILE.
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
--- 1311,1317 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (int)(SIZE)))
/* Print operand X (an rtx) in assembler syntax to file FILE.
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
diff -Nrc3p config.old/rs6000/xcoff.h config/rs6000/xcoff.h
*** config.old/rs6000/xcoff.h Mon May 5 22:51:33 2003
--- config/rs6000/xcoff.h Tue May 6 11:01:58 2003
*************** toc_section () \
*** 350,356 ****
#define SKIP_ASM_OP "\t.space "
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 350,356 ----
#define SKIP_ASM_OP "\t.space "
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** toc_section () \
*** 361,372 ****
do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
if ((ALIGN) > 32) \
! fprintf ((FILE), ",%u,%u\n", (SIZE), \
exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
else if ((SIZE) > 4) \
! fprintf ((FILE), ",%u,3\n", (SIZE)); \
else \
! fprintf ((FILE), ",%u\n", (SIZE)); \
} while (0)
/* This says how to output an assembler line
--- 361,372 ----
do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
if ((ALIGN) > 32) \
! fprintf ((FILE), ",%u,%u\n", (int)(SIZE), \
exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
else if ((SIZE) > 4) \
! fprintf ((FILE), ",%u,3\n", (int)(SIZE)); \
else \
! fprintf ((FILE), ",%u\n", (int)(SIZE)); \
} while (0)
/* This says how to output an assembler line
*************** toc_section () \
*** 380,386 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
xcoff_bss_section_name); \
} while (0)
--- 380,386 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%s\n", (TARGET_32BIT ? (int)(SIZE) : (int)(ROUNDED)), \
xcoff_bss_section_name); \
} while (0)
diff -Nrc3p config.old/s390/s390.h config/s390/s390.h
*** config.old/s390/s390.h Mon May 5 22:51:31 2003
--- config/s390/s390.h Mon May 5 23:22:26 2003
*************** extern int flag_pic;
*** 915,921 ****
/* Advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! fprintf ((FILE), "\t.set\t.,.+%u\n", (SIZE))
/* Output a reference to a user-level label named NAME. */
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
--- 915,923 ----
/* Advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
! (fputs ("\t.set\t.,.+", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc ('\n', (FILE)))
/* Output a reference to a user-level label named NAME. */
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
diff -Nrc3p config.old/sh/coff.h config/sh/coff.h
*** config.old/sh/coff.h Mon May 5 22:51:27 2003
--- config/sh/coff.h Tue May 6 10:54:56 2003
*************** Boston, MA 02111-1307, USA. */
*** 54,60 ****
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf ((FILE), "\t.space %d\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 54,60 ----
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf ((FILE), "\t.space %d\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** Boston, MA 02111-1307, USA. */
*** 62,68 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 62,68 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (int)(SIZE)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** Boston, MA 02111-1307, USA. */
*** 70,76 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (SIZE)))
#define TARGET_OBJFMT_CPP_BUILTINS()
--- 70,76 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%d\n", (int)(SIZE)))
#define TARGET_OBJFMT_CPP_BUILTINS()
diff -Nrc3p config.old/sparc/sol2.h config/sparc/sol2.h
*** config.old/sparc/sol2.h Mon May 5 22:51:32 2003
--- config/sparc/sol2.h Mon May 5 23:24:58 2003
*************** Boston, MA 02111-1307, USA. */
*** 63,69 ****
/* The Solaris 2 assembler uses .skip, not .zero, so put this back. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.skip %u\n", (SIZE))
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX "."
--- 63,69 ----
/* The Solaris 2 assembler uses .skip, not .zero, so put this back. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.skip %u\n", (int)(SIZE))
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX "."
diff -Nrc3p config.old/sparc/sparc.h config/sparc/sparc.h
*** config.old/sparc/sparc.h Mon May 5 22:51:32 2003
--- config/sparc/sparc.h Tue May 6 10:53:22 2003
*************** do { \
*** 2792,2798 ****
fprintf (FILE, "\t.align %d,0x1000000\n", (1<<(LOG)))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.skip %u\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 2792,2800 ----
fprintf (FILE, "\t.align %d,0x1000000\n", (1<<(LOG)))
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! (fputs ("\t.skip ", (FILE)), \
! fprintf ((FILE), HOST_WIDE_INT_PRINT_DEC, (SIZE)), \
! putc (`\n`, (FILE)))
/* This says how to output an assembler line
to define a global common symbol. */
*************** do { \
*** 2800,2806 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.common ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u,\"bss\"\n", (SIZE)))
/* This says how to output an assembler line to define a local common
symbol. */
--- 2802,2808 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\t.common ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u,\"bss\"\n", (int)(SIZE)))
/* This says how to output an assembler line to define a local common
symbol. */
*************** do { \
*** 2809,2815 ****
( fputs ("\t.reserve ", (FILE)), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u,\"bss\",%u\n", \
! (SIZE), ((ALIGNED) / BITS_PER_UNIT)))
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
--- 2811,2817 ----
( fputs ("\t.reserve ", (FILE)), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u,\"bss\",%u\n", \
! (int)(SIZE), ((ALIGNED) / BITS_PER_UNIT)))
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
diff -Nrc3p config.old/svr3.h config/svr3.h
*** config.old/svr3.h Mon May 5 22:51:33 2003
--- config/svr3.h Tue May 6 11:02:06 2003
*************** Boston, MA 02111-1307, USA.
*** 93,99 ****
data_section (); \
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED)); \
} while (0)
#if 0 /* For now, let's leave these machine-specific. */
--- 93,99 ----
data_section (); \
ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
! fprintf ((FILE), "\t.set .,.+%u\n", (int)(ROUNDED)); \
} while (0)
#if 0 /* For now, let's leave these machine-specific. */
diff -Nrc3p config.old/vax/vax.h config/vax/vax.h
*** config.old/vax/vax.h Mon May 5 22:51:27 2003
--- config/vax/vax.h Tue May 6 10:55:58 2003
*************** enum reg_class { NO_REGS, ALL_REGS, LIM_
*** 1076,1082 ****
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %u\n", (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 1076,1082 ----
that says to advance the location counter by SIZE bytes. */
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "\t.space %u\n", (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** enum reg_class { NO_REGS, ALL_REGS, LIM_
*** 1084,1090 ****
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
--- 1084,1090 ----
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* This says how to output an assembler line
to define a local common symbol. */
*************** enum reg_class { NO_REGS, ALL_REGS, LIM_
*** 1092,1098 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (ROUNDED)))
/* Store in OUTPUT a string (made with alloca) containing
an assembler-name for a local static variable named NAME.
--- 1092,1098 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
/* Store in OUTPUT a string (made with alloca) containing
an assembler-name for a local static variable named NAME.
diff -Nrc3p config.old/vax/vaxv.h config/vax/vaxv.h
*** config.old/vax/vaxv.h Mon May 5 22:51:27 2003
--- config/vax/vaxv.h Tue May 6 10:56:07 2003
*************** output_file_directive ((FILE), main_inpu
*** 52,58 ****
#define ASM_OUTPUT_LOCAL(FILE,NAME,SIZE,ROUNDED) \
( data_section (), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ":\n\t.space %u\n", (ROUNDED)))
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
--- 52,58 ----
#define ASM_OUTPUT_LOCAL(FILE,NAME,SIZE,ROUNDED) \
( data_section (), \
assemble_name ((FILE), (NAME)), \
! fprintf ((FILE), ":\n\t.space %u\n", (int)(ROUNDED)))
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
diff -Nrc3p config.old/xtensa/xtensa.h config/xtensa/xtensa.h
*** config.old/xtensa/xtensa.h Mon May 5 22:51:33 2003
--- config/xtensa/xtensa.h Tue May 6 11:02:19 2003
*************** typedef struct xtensa_args {
*** 1379,1390 ****
/* This says how to define a global common symbol. */
#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \
! xtensa_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u\n", (SIZE))
/* This says how to define a local common symbol (ie, not visible to
linker). */
#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \
! xtensa_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (SIZE))
/* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
--- 1379,1390 ----
/* This says how to define a global common symbol. */
#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \
! xtensa_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u\n", (int)(SIZE))
/* This says how to define a local common symbol (ie, not visible to
linker). */
#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \
! xtensa_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (int)(SIZE))
/* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
*** varasm.c.old Mon May 5 23:07:10 2003
--- varasm.c Tue May 6 00:21:28 2003
*************** static void maybe_assemble_visibility PA
*** 165,181 ****
static int in_named_entry_eq PARAMS ((const PTR, const PTR));
static hashval_t in_named_entry_hash PARAMS ((const PTR));
#ifdef ASM_OUTPUT_BSS
! static void asm_output_bss PARAMS ((FILE *, tree, const char *, int, int));
#endif
#ifdef BSS_SECTION_ASM_OP
#ifdef ASM_OUTPUT_ALIGNED_BSS
static void asm_output_aligned_bss
! PARAMS ((FILE *, tree, const char *, int, int)) ATTRIBUTE_UNUSED;
#endif
#endif /* BSS_SECTION_ASM_OP */
static hashval_t const_str_htab_hash PARAMS ((const void *x));
static int const_str_htab_eq PARAMS ((const void *x, const void *y));
! static bool asm_emit_uninitialised PARAMS ((tree, const char*, int, int));
static void resolve_unique_section PARAMS ((tree, int, int));
static void mark_weak PARAMS ((tree));
--- 165,184 ----
static int in_named_entry_eq PARAMS ((const PTR, const PTR));
static hashval_t in_named_entry_hash PARAMS ((const PTR));
#ifdef ASM_OUTPUT_BSS
! static void asm_output_bss PARAMS ((FILE *, tree, const char *,
! HOST_WIDE_INT, HOST_WIDE_INT));
#endif
#ifdef BSS_SECTION_ASM_OP
#ifdef ASM_OUTPUT_ALIGNED_BSS
static void asm_output_aligned_bss
! PARAMS ((FILE *, tree, const char *,
! HOST_WIDE_INT, int)) ATTRIBUTE_UNUSED;
#endif
#endif /* BSS_SECTION_ASM_OP */
static hashval_t const_str_htab_hash PARAMS ((const void *x));
static int const_str_htab_eq PARAMS ((const void *x, const void *y));
! static bool asm_emit_uninitialised PARAMS ((tree, const char*,
! HOST_WIDE_INT, HOST_WIDE_INT));
static void resolve_unique_section PARAMS ((tree, int, int));
static void mark_weak PARAMS ((tree));
*************** asm_output_bss (file, decl, name, size,
*** 498,504 ****
FILE *file;
tree decl ATTRIBUTE_UNUSED;
const char *name;
! int size ATTRIBUTE_UNUSED, rounded;
{
(*targetm.asm_out.globalize_label) (file, name);
bss_section ();
--- 501,507 ----
FILE *file;
tree decl ATTRIBUTE_UNUSED;
const char *name;
! HOST_WIDE_INT size ATTRIBUTE_UNUSED, rounded;
{
(*targetm.asm_out.globalize_label) (file, name);
bss_section ();
*************** asm_output_aligned_bss (file, decl, name
*** 526,532 ****
FILE *file;
tree decl ATTRIBUTE_UNUSED;
const char *name;
! int size, align;
{
bss_section ();
ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT));
--- 529,536 ----
FILE *file;
tree decl ATTRIBUTE_UNUSED;
const char *name;
! HOST_WIDE_INT size;
! int align;
{
bss_section ();
ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT));
*************** assemble_end_function (decl, fnname)
*** 1205,1211 ****
void
assemble_zeros (size)
! int size;
{
/* Do no output if -fsyntax-only. */
if (flag_syntax_only)
--- 1209,1215 ----
void
assemble_zeros (size)
! HOST_WIDE_INT size;
{
/* Do no output if -fsyntax-only. */
if (flag_syntax_only)
*************** assemble_zeros (size)
*** 1216,1222 ****
so we must output 0s explicitly in the text section. */
if (ASM_NO_SKIP_IN_TEXT && in_text_section ())
{
! int i;
for (i = 0; i < size; i++)
assemble_integer (const0_rtx, 1, BITS_PER_UNIT, 1);
}
--- 1220,1226 ----
so we must output 0s explicitly in the text section. */
if (ASM_NO_SKIP_IN_TEXT && in_text_section ())
{
! HOST_WIDE_INT i;
for (i = 0; i < size; i++)
assemble_integer (const0_rtx, 1, BITS_PER_UNIT, 1);
}
*************** static bool
*** 1306,1313 ****
asm_emit_uninitialised (decl, name, size, rounded)
tree decl;
const char *name;
! int size ATTRIBUTE_UNUSED;
! int rounded ATTRIBUTE_UNUSED;
{
enum
{
--- 1310,1317 ----
asm_emit_uninitialised (decl, name, size, rounded)
tree decl;
const char *name;
! HOST_WIDE_INT size ATTRIBUTE_UNUSED;
! HOST_WIDE_INT rounded ATTRIBUTE_UNUSED;
{
enum
{
*************** assemble_name (file, name)
*** 1749,1755 ****
rtx
assemble_static_space (size)
! int size;
{
char name[12];
const char *namestring;
--- 1753,1759 ----
rtx
assemble_static_space (size)
! HOST_WIDE_INT size;
{
char name[12];
const char *namestring;
*************** assemble_static_space (size)
*** 1777,1783 ****
/* Round size up to multiple of BIGGEST_ALIGNMENT bits
so that each uninitialized object starts on such a boundary. */
/* Variable `rounded' might or might not be used in ASM_OUTPUT_LOCAL. */
! int rounded ATTRIBUTE_UNUSED
= ((size + (BIGGEST_ALIGNMENT / BITS_PER_UNIT) - 1)
/ (BIGGEST_ALIGNMENT / BITS_PER_UNIT)
* (BIGGEST_ALIGNMENT / BITS_PER_UNIT));
--- 1781,1787 ----
/* Round size up to multiple of BIGGEST_ALIGNMENT bits
so that each uninitialized object starts on such a boundary. */
/* Variable `rounded' might or might not be used in ASM_OUTPUT_LOCAL. */
! HOST_WIDE_INT rounded ATTRIBUTE_UNUSED
= ((size + (BIGGEST_ALIGNMENT / BITS_PER_UNIT) - 1)
/ (BIGGEST_ALIGNMENT / BITS_PER_UNIT)
* (BIGGEST_ALIGNMENT / BITS_PER_UNIT));