diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2008-05-26 13:59:56 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2008-05-26 06:59:56 -0700 |
commit | 76fe54f07ae1d8e9a8a3bbc54dd9aaeee4105d18 (patch) | |
tree | bb649ed6b0709e0e99f74f303514800816a201fe /gcc/defaults.h | |
parent | e94a83856fa29fc559ab6bfe013ea6cf16f401fa (diff) | |
download | gcc-76fe54f07ae1d8e9a8a3bbc54dd9aaeee4105d18.zip gcc-76fe54f07ae1d8e9a8a3bbc54dd9aaeee4105d18.tar.gz gcc-76fe54f07ae1d8e9a8a3bbc54dd9aaeee4105d18.tar.bz2 |
re PR middle-end/36253 (Caller-save stack slot may not have proper alignment)
2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36253
* caller-save.c (insert_restore): Verify alignment of spill
space.
(insert_save): Likewise.
* cfgexpand.c (LOCAL_ALIGNMENT): Removed.
* defaults.h (LOCAL_ALIGNMENT): New. Provide default.
(STACK_SLOT_ALIGNMENT): Likewise.
* function.c (LOCAL_ALIGNMENT): Removed.
(get_stack_local_alignment): New.
(assign_stack_local): Use it. Set alignment on stack slot.
(assign_stack_temp_for_type): Use get_stack_local_alignment.
* config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
(STACK_SLOT_ALIGNMENT): New.
* config/i386/i386.c (ix86_local_alignment): Handle caller-save
stack slot in XFmode.
* doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
From-SVN: r135927
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r-- | gcc/defaults.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h index ff5b5c0..392d22c 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -940,4 +940,13 @@ along with GCC; see the file COPYING3. If not see #define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 0 #endif +#ifndef LOCAL_ALIGNMENT +#define LOCAL_ALIGNMENT(TYPE, ALIGNMENT) ALIGNMENT +#endif + +#ifndef STACK_SLOT_ALIGNMENT +#define STACK_SLOT_ALIGNMENT(TYPE,MODE,ALIGN) \ + ((TYPE) ? LOCAL_ALIGNMENT ((TYPE), (ALIGN)) : (ALIGN)) +#endif + #endif /* ! GCC_DEFAULTS_H */ |