PR gold/13617
authorIan Lance Taylor <ian@airs.com>
Tue, 24 Jan 2012 06:21:11 +0000 (06:21 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 24 Jan 2012 06:21:11 +0000 (06:21 +0000)
* 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.

gold/ChangeLog
gold/i386.cc
gold/x86_64.cc

index 649668adbaa54348ed807519e41cf1cc4033a03f..2c51569e7f9cc0d776949bb69471af25ce78f8fc 100644 (file)
@@ -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
index efb6248de1befd3219c1be54811efb260ed7893f..b4174bc57f6a9066c5bdf84ca38fd500a374e385 100644 (file)
@@ -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.
index df114419e9a61936a8a71ecc46a1b47618612de8..cfc6384cd154b28a534b187209045c0121d7b556 100644 (file)
@@ -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.