mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 17:37:43 +08:00
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:
parent
a5cf6c1c94
commit
bfc79d3b30
@ -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.
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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). */
|
||||
|
Loading…
Reference in New Issue
Block a user