aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/i386.cc4
2 files changed, 8 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 6ae7610..18e2a30 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-23 Ian Lance Taylor <iant@google.com>
+
+ * i386.cc (Target_i386::do_calls_non_split): Recognize
+ -fsplit-stack prologue for a function with a static chain.
+
2009-12-21 Sriraman Tallam <tmsriram@google.com>
* options.cc (General_options::parse_version): Make -v continue and do
diff --git a/gold/i386.cc b/gold/i386.cc
index 4820f15..bf7c695 100644
--- a/gold/i386.cc
+++ b/gold/i386.cc
@@ -2703,7 +2703,9 @@ Target_i386::do_calls_non_split(Relobj* object, unsigned int shndx,
this->set_view_to_nop(view, view_size, fnoffset + 1, 6);
}
// lea NN(%esp),%ecx
- else if (this->match_view(view, view_size, fnoffset, "\x8d\x8c\x24", 3)
+ // lea NN(%esp),%edx
+ else if ((this->match_view(view, view_size, fnoffset, "\x8d\x8c\x24", 3)
+ || this->match_view(view, view_size, fnoffset, "\x8d\x94\x24", 3))
&& fnsize > 7)
{
// This is loading an offset from the stack pointer for a