rs6000.h (read_only_data_section, [...]): Align CSECT on doubleword boundary for 64-bit target.

* rs6000.h (read_only_data_section, private_data_section,
	read_only_private_data_section, toc_section): Align CSECT on
	doubleword boundary for 64-bit target.
	(DATA_SECTION_ASM_OP): Likewise.
	* rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288.

From-SVN: r26678
This commit is contained in:
David Edelsohn 1999-04-27 12:39:58 +00:00 committed by David Edelsohn
parent a5cf6c1c94
commit bfc79d3b30
3 changed files with 29 additions and 16 deletions

View File

@ -1,3 +1,11 @@
Tue Apr 27 15:33:42 1999 David Edelsohn <edelsohn@gnu.org>
* rs6000.h (read_only_data_section, private_data_section,
read_only_private_data_section, toc_section): Align CSECT on
doubleword boundary for 64-bit target.
(DATA_SECTION_ASM_OP): Likewise.
* rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288.
Tue Apr 27 20:19:47 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.md (insv): Use copy_addr_to_reg.

View File

@ -308,7 +308,7 @@ rs6000_override_options (default_cpu)
little endian mode, and causes an alignment trap. The 750 does not cause
an alignment trap (except when the target is unaligned). */
if (!BYTES_BIG_ENDIAN && rs6000_cpu != PROCESSOR_PPC750)
if (! BYTES_BIG_ENDIAN && rs6000_cpu != PROCESSOR_PPC750)
{
if (TARGET_MULTIPLE)
{
@ -335,11 +335,11 @@ rs6000_override_options (default_cpu)
/* Set debug flags */
if (rs6000_debug_name)
{
if (!strcmp (rs6000_debug_name, "all"))
if (! strcmp (rs6000_debug_name, "all"))
rs6000_debug_stack = rs6000_debug_arg = 1;
else if (!strcmp (rs6000_debug_name, "stack"))
else if (! strcmp (rs6000_debug_name, "stack"))
rs6000_debug_stack = 1;
else if (!strcmp (rs6000_debug_name, "arg"))
else if (! strcmp (rs6000_debug_name, "arg"))
rs6000_debug_arg = 1;
else
error ("Unknown -mdebug-%s switch", rs6000_debug_name);
@ -349,7 +349,8 @@ rs6000_override_options (default_cpu)
/* If the user desires alternate register names, copy in the alternate names
now. */
if (TARGET_REGNAMES)
bcopy ((char *)alt_reg_names, (char *)rs6000_reg_names, sizeof (rs6000_reg_names));
bcopy ((char *)alt_reg_names, (char *)rs6000_reg_names,
sizeof (rs6000_reg_names));
#endif
#ifdef SUBTARGET_OVERRIDE_OPTIONS
@ -3607,7 +3608,7 @@ rs6000_stack_info ()
the stack might be dynamically adjusted), if we are debugging, if we
make calls, or if the sum of fp_save, gp_save, fpmem, and local variables
are more than the space needed to save all non-volatile registers:
32-bit: 18*8 + 19*4 = 220 or 64-bit: 18*8 + 19*8 = 296
32-bit: 18*8 + 19*4 = 220 or 64-bit: 18*8 + 18*8 = 288 (GPR13 reserved).
For V.4 we don't have the stack cushion that AIX uses, but assume that
the debugger can handle stackless frames. */
@ -3624,7 +3625,7 @@ rs6000_stack_info ()
info_ptr->push_p = (frame_pointer_needed
|| write_symbols != NO_DEBUG
|| ((total_raw_size - info_ptr->fixed_size)
> (TARGET_32BIT ? 220 : 296)));
> (TARGET_32BIT ? 220 : 288)));
if (info_ptr->fpmem_p)
{

View File

@ -2551,8 +2551,9 @@ read_only_data_section () \
{ \
if (in_section != read_only_data) \
{ \
fprintf (asm_out_file, ".csect %s[RO]\n", \
xcoff_read_only_section_name); \
fprintf (asm_out_file, ".csect %s[RO]%s\n", \
xcoff_read_only_section_name, \
(TARGET_32BIT ? "" : ",3")); \
in_section = read_only_data; \
} \
} \
@ -2562,9 +2563,9 @@ private_data_section () \
{ \
if (in_section != private_data) \
{ \
fprintf (asm_out_file, ".csect %s[RW]\n", \
xcoff_private_data_section_name); \
\
fprintf (asm_out_file, ".csect %s[RW]%s\n", \
xcoff_private_data_section_name, \
(TARGET_32BIT ? "" : ",3")); \
in_section = private_data; \
} \
} \
@ -2574,8 +2575,9 @@ read_only_private_data_section () \
{ \
if (in_section != read_only_private_data) \
{ \
fprintf (asm_out_file, ".csect %s[RO]\n", \
xcoff_private_data_section_name); \
fprintf (asm_out_file, ".csect %s[RO]%s\n", \
xcoff_private_data_section_name, \
(TARGET_32BIT ? "" : ",3")); \
in_section = read_only_private_data; \
} \
} \
@ -2596,7 +2598,8 @@ toc_section () \
} \
\
if (in_section != toc) \
fputs (".csect toc_table[RW]\n", asm_out_file); \
fprintf (asm_out_file, ".csect toc_table[RW]%s\n", \
(TARGET_32BIT ? "" : ",3")); \
} \
else \
{ \
@ -2809,7 +2812,8 @@ extern int toc_initialized;
/* Output before writable data. */
#define DATA_SECTION_ASM_OP ".csect .data[RW]"
#define DATA_SECTION_ASM_OP (TARGET_32BIT \
? ".csect .data[RW]" : ".csect .data[RW],3")
/* How to refer to registers in assembler output.
This sequence is indexed by compiler's hard-register-number (see above). */