]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gold/
authorRoland McGrath <roland@gnu.org>
Fri, 16 Aug 2013 18:12:30 +0000 (18:12 +0000)
committerRoland McGrath <roland@gnu.org>
Fri, 16 Aug 2013 18:12:30 +0000 (18:12 +0000)
* i386.cc (Target_i386_nacl::do_code_fill): New virtual function.
* x86_64.cc (Target_x86_64_nacl::do_code_fill): New virtual function.

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

index 0c95dd0683f4a8ffb844207d6bca10ca571b9395..69b76456d616b477280e47687c4258a314a5dfd1 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-16  Roland McGrath  <mcgrathr@google.com>
+
+       * i386.cc (Target_i386_nacl::do_code_fill): New virtual function.
+       * x86_64.cc (Target_x86_64_nacl::do_code_fill): New virtual function.
+
 2013-07-19  Roland McGrath  <mcgrathr@google.com>
 
        * options.h (General_options): Add -Trodata-segment option.
index 3f0a039086161d2802f52ebf11648bf6956e0d70..47f2de4ea8fa94f7548fcbcac52180cbdb5c8252 100644 (file)
@@ -3930,6 +3930,9 @@ class Target_i386_nacl : public Target_i386
       return new Output_data_plt_i386_nacl_exec(layout, got_plt, got_irelative);
   }
 
+  virtual std::string
+  do_code_fill(section_size_type length) const;
+
  private:
   static const Target::Target_info i386_nacl_info;
 };
@@ -4129,6 +4132,15 @@ Output_data_plt_i386_nacl::plt_eh_frame_fde[plt_eh_frame_fde_size] =
   elfcpp::DW_CFA_nop
 };
 
+// Return a string used to fill a code section with nops.
+// For NaCl, long NOPs are only valid if they do not cross
+// bundle alignment boundaries, so keep it simple with one-byte NOPs.
+std::string
+Target_i386_nacl::do_code_fill(section_size_type length) const
+{
+  return std::string(length, static_cast<char>(0x90));
+}
+
 // The selector for i386-nacl object files.
 
 class Target_selector_i386_nacl
index 8ddf4f2d9bd8609a37b9bd5683b101d595a400ce..592b587e25eca514df974de4e1211cad2a58ea2f 100644 (file)
@@ -4560,6 +4560,9 @@ class Target_x86_64_nacl : public Target_x86_64<size>
                                                 plt_count);
   }
 
+  virtual std::string
+  do_code_fill(section_size_type length) const;
+
  private:
   static const Target::Target_info x86_64_nacl_info;
 };
@@ -4784,6 +4787,16 @@ Output_data_plt_x86_64_nacl<size>::plt_eh_frame_fde[plt_eh_frame_fde_size] =
   elfcpp::DW_CFA_nop
 };
 
+// Return a string used to fill a code section with nops.
+// For NaCl, long NOPs are only valid if they do not cross
+// bundle alignment boundaries, so keep it simple with one-byte NOPs.
+template<int size>
+std::string
+Target_x86_64_nacl<size>::do_code_fill(section_size_type length) const
+{
+  return std::string(length, static_cast<char>(0x90));
+}
+
 // The selector for x86_64-nacl object files.
 
 template<int size>