* x86_64.cc (Target_x86_64::do_calls_non_split): Recognize
authorIan Lance Taylor <ian@airs.com>
Thu, 24 Dec 2009 07:48:14 +0000 (07:48 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 24 Dec 2009 07:48:14 +0000 (07:48 +0000)
-fsplit-stack prologue when using %r11.

gold/ChangeLog
gold/x86_64.cc

index 18e2a3055a514dab0c5364b820703d4010ee0d7f..e44f2baa012e6df46fec8b22b15455e07bd14f65 100644 (file)
@@ -2,6 +2,8 @@
 
        * i386.cc (Target_i386::do_calls_non_split): Recognize
        -fsplit-stack prologue for a function with a static chain.
+       * x86_64.cc (Target_x86_64::do_calls_non_split): Recognize
+       -fsplit-stack prologue when using %r11.
 
 2009-12-21  Sriraman Tallam  <tmsriram@google.com>
 
index e51b4ab74d2cab38fd55d0a87cd48a4f21590ab0..c31949f311b69b67329c3af3a7ca9b17d7bfde98 100644 (file)
@@ -2692,7 +2692,11 @@ Target_x86_64::do_calls_non_split(Relobj* object, unsigned int shndx,
       this->set_view_to_nop(view, view_size, fnoffset + 1, 8);
     }
   // lea NN(%rsp),%r10
-  else if (this->match_view(view, view_size, fnoffset, "\x4c\x8d\x94\x24", 4)
+  // lea NN(%rsp),%r11
+  else if ((this->match_view(view, view_size, fnoffset,
+                            "\x4c\x8d\x94\x24", 4)
+           || this->match_view(view, view_size, fnoffset,
+                               "\x4c\x8d\x9c\x24", 4))
           && fnsize > 8)
     {
       // This is loading an offset from the stack pointer for a