aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2016-01-27 19:54:03 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2016-01-27 11:54:03 -0800
commit9525851d49b18b8b62c47fd2092dbb3937b887f7 (patch)
tree6fd3e5cd714d0651efad3b34e6c0d25c3dba030a
parentac22318350b43bf7a4d72ed620365652cf222e9e (diff)
downloadgcc-9525851d49b18b8b62c47fd2092dbb3937b887f7.zip
gcc-9525851d49b18b8b62c47fd2092dbb3937b887f7.tar.gz
gcc-9525851d49b18b8b62c47fd2092dbb3937b887f7.tar.bz2
Don't change stack_alignment_needed for __tls_get_addr
__tls_get_addr must be called with 16-byte aligned stack, which is guaranted by setting preferred_stack_boundary to 128 bits. There is no need to change stack_alignment_needed for __tls_get_addr. PR target/68986 * config/i386/i386.c (ix86_update_stack_boundary): Don't change stack_alignment_needed for __tls_get_addr call. From-SVN: r232901
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fecbc49..cc8b21c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/68986
+ * config/i386/i386.c (ix86_update_stack_boundary): Don't
+ change stack_alignment_needed for __tls_get_addr call.
+
2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index cfbdf0f..6dc1fa5 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -12035,11 +12035,7 @@ ix86_update_stack_boundary (void)
/* __tls_get_addr needs to be called with 16-byte aligned stack. */
if (ix86_tls_descriptor_calls_expanded_in_cfun
&& crtl->preferred_stack_boundary < 128)
- {
- crtl->preferred_stack_boundary = 128;
- if (crtl->stack_alignment_needed < 128)
- crtl->stack_alignment_needed = 128;
- }
+ crtl->preferred_stack_boundary = 128;
}
/* Handle the TARGET_GET_DRAP_RTX hook. Return NULL if no DRAP is