diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-07 17:42:09 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-07 17:42:09 +0000 |
commit | 571e1a4c5de6a5e5958a215788a585f7cad4680a (patch) | |
tree | 3e395fd8afb8c4fb10c9236ec9c0e860b1e8081b /gcc/config/i386/i386.h | |
parent | df07d17b578c936987013d4f082c2db300b24dd7 (diff) | |
download | gcc-571e1a4c5de6a5e5958a215788a585f7cad4680a.tar.gz |
PR target/66697
* config/i386/i386.c (ix86_option_override_internal): Always use
8-byte minimum stack boundary in 64-bit mode.
(ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
(ix86_emit_save_reg_using_mov): Support unaligned SSE store.
Add a REG_CFA_EXPRESSION note if needed.
(ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
(ix86_handle_force_align_arg_pointer_attribute): New.
(ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
(ix86_attribute_table): Set ix86_force_align_arg_pointer_string
with ix86_handle_force_align_arg_pointer_attribute.
* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
testsuite/ChangeLog:
PR target/66697
* gcc.target/i386/20060512-1.c: Remove ia32 requirement.
(PUSH, POP): New defines.
(sse2_test): Use PUSH and POP to misalign runtime stack.
* gcc.target/i386/20060512-2.c: Remove ia32 requirement.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228577 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386.h')
-rw-r--r-- | gcc/config/i386/i386.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index ad174608850..4a84fb972d1 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -755,7 +755,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define MAIN_STACK_BOUNDARY (TARGET_64BIT ? 128 : 32) /* Minimum stack boundary. */ -#define MIN_STACK_BOUNDARY (TARGET_64BIT ? (TARGET_SSE ? 128 : 64) : 32) +#define MIN_STACK_BOUNDARY BITS_PER_WORD /* Boundary (in *bits*) on which the stack pointer prefers to be aligned; the compiler cannot rely on having this alignment. */ |