diff options
author | Yvan Roux <yvan.roux@linaro.org> | 2015-12-15 10:44:46 +0100 |
---|---|---|
committer | Yvan Roux <yvan.roux@linaro.org> | 2015-12-15 14:41:45 +0100 |
commit | 966a7fddb78c4fad3c2efb46c969308686557ec0 (patch) | |
tree | ed597a56f1ed08195ec07841c5608cf4d2945a47 /gcc/config/i386/i386.md | |
parent | 7f7da9776a2100eb6e64c142732c89ecc719d45d (diff) | |
download | gcc-966a7fddb78c4fad3c2efb46c969308686557ec0.tar.gz |
Merge branches/gcc-5-branch rev 231642.
Change-Id: I58832e31b4e58588e1d0800c3fc09a01f91b6320
Diffstat (limited to 'gcc/config/i386/i386.md')
-rw-r--r-- | gcc/config/i386/i386.md | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 345333b72a1..89e8161645e 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -12117,10 +12117,14 @@ ;; We need to disable this for TARGET_SEH, as otherwise ;; shrink-wrapped prologue gets enabled too. This might exceed ;; the maximum size of prologue in unwind information. +;; Also disallow shrink-wrapping if using stack slot to pass the +;; static chain pointer - the first instruction has to be pushl %esi +;; and it can't be moved around, as we use alternate entry points +;; in that case. (define_expand "simple_return" [(simple_return)] - "!TARGET_SEH" + "!TARGET_SEH && !ix86_static_chain_on_stack" { if (crtl->args.pops_args) { |