* i386.cc (Target_i386::do_calls_non_split): Recognize
authorIan Lance Taylor <ian@airs.com>
Wed, 23 Dec 2009 23:53:43 +0000 (23:53 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 23 Dec 2009 23:53:43 +0000 (23:53 +0000)
-fsplit-stack prologue for a function with a static chain.

gold/ChangeLog
gold/i386.cc

index 6ae76109dc042555ec3ac911743c80583fe6596c..18e2a3055a514dab0c5364b820703d4010ee0d7f 100644 (file)
@@ -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
index 4820f15aaf6ebbb2af26cc87ea992bd0dca98533..bf7c695ed4ac872227fa3b9545925622d1148e18 100644 (file)
@@ -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