aboutsummaryrefslogtreecommitdiff
path: root/gold/i386.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-12-23 23:53:43 +0000
committerIan Lance Taylor <ian@airs.com>2009-12-23 23:53:43 +0000
commit1782c879ce0b3370409c708eeddf47dccd5f5a03 (patch)
treeec2b6a0fe5abb6272364b80e0b6a3bc4013686be /gold/i386.cc
parent98c5b216c285de64674753964c70aa2f4b2af244 (diff)
downloadfsf-binutils-gdb-1782c879ce0b3370409c708eeddf47dccd5f5a03.zip
fsf-binutils-gdb-1782c879ce0b3370409c708eeddf47dccd5f5a03.tar.gz
fsf-binutils-gdb-1782c879ce0b3370409c708eeddf47dccd5f5a03.tar.bz2
* i386.cc (Target_i386::do_calls_non_split): Recognize
-fsplit-stack prologue for a function with a static chain.
Diffstat (limited to 'gold/i386.cc')
-rw-r--r--gold/i386.cc4
1 files changed, 3 insertions, 1 deletions
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