aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog2
-rw-r--r--gold/x86_64.cc6
2 files changed, 7 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 18e2a30..e44f2ba 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -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>
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index e51b4ab..c31949f 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -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