PR gold/13617
* i386.cc (Target_i386::do_code_fill): When using a jmp instruction, pad with nop instructions. * x86_64.cc (Target_x86_64::do_code_fill): Likewise.
This commit is contained in:
parent
42bc6e0f95
commit
9dee3b3c89
@ -1,3 +1,10 @@
|
||||
2012-01-23 Ian Lance Taylor <ian@airs.com>
|
||||
|
||||
PR gold/13617
|
||||
* i386.cc (Target_i386::do_code_fill): When using a jmp
|
||||
instruction, pad with nop instructions.
|
||||
* x86_64.cc (Target_x86_64::do_code_fill): Likewise.
|
||||
|
||||
2012-01-22 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* x86_64.cc (gc_process_relocs): Add typename on types used in
|
||||
|
@ -1,6 +1,7 @@
|
||||
// i386.cc -- i386 target support for gold.
|
||||
|
||||
// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
// Free Software Foundation, Inc.
|
||||
// Written by Ian Lance Taylor <iant@google.com>.
|
||||
|
||||
// This file is part of gold.
|
||||
@ -3470,7 +3471,7 @@ Target_i386::do_code_fill(section_size_type length) const
|
||||
jmp[0] = 0xe9;
|
||||
elfcpp::Swap_unaligned<32, false>::writeval(jmp + 1, length - 5);
|
||||
return (std::string(reinterpret_cast<char*>(&jmp[0]), 5)
|
||||
+ std::string(length - 5, '\0'));
|
||||
+ std::string(length - 5, static_cast<char>(0x90)));
|
||||
}
|
||||
|
||||
// Nop sequences of various lengths.
|
||||
|
@ -1,6 +1,7 @@
|
||||
// x86_64.cc -- x86_64 target support for gold.
|
||||
|
||||
// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
// Free Software Foundation, Inc.
|
||||
// Written by Ian Lance Taylor <iant@google.com>.
|
||||
|
||||
// This file is part of gold.
|
||||
@ -3991,7 +3992,7 @@ Target_x86_64<size>::do_code_fill(section_size_type length) const
|
||||
jmp[0] = 0xe9;
|
||||
elfcpp::Swap_unaligned<32, false>::writeval(jmp + 1, length - 5);
|
||||
return (std::string(reinterpret_cast<char*>(&jmp[0]), 5)
|
||||
+ std::string(length - 5, '\0'));
|
||||
+ std::string(length - 5, static_cast<char>(0x90)));
|
||||
}
|
||||
|
||||
// Nop sequences of various lengths.
|
||||
|
Loading…
Reference in New Issue
Block a user