]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Handle Initial-Exec to Local-Exec for x32
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 6 Jan 2015 20:58:54 +0000 (12:58 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 6 Jan 2015 21:56:59 +0000 (13:56 -0800)
PR gold/17809
* x86_64.cc (Target_x86_64<size>::Relocate::tls_ie_to_le): Handle
x32.

gold/ChangeLog
gold/x86_64.cc

index 2220da222dad41ee7193cfa70040896716c4b84e..bf8e7efa6537f1406024a3260b796b7fd17b50f1 100644 (file)
@@ -1,3 +1,9 @@
+2015-01-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/17809
+       * x86_64.cc (Target_x86_64<size>::Relocate::tls_ie_to_le): Handle
+       x32.
+
 2014-12-04  Alan Modra  <amodra@gmail.com>
 
        * Powerpc.cc (Target_powerpc::Branch_info::make_stub): Ignore
index f58c8430da8270c60b55907de8131d0c23fdaaf3..89e91a24eea36cce000750e580939bd51e4b5e53 100644 (file)
@@ -4100,6 +4100,8 @@ Target_x86_64<size>::Relocate::tls_ie_to_le(
       // movq
       if (op1 == 0x4c)
        view[-3] = 0x49;
+      else if (size == 32 && op1 == 0x44)
+       view[-3] = 0x41;
       view[-2] = 0xc7;
       view[-1] = 0xc0 | reg;
     }
@@ -4108,6 +4110,8 @@ Target_x86_64<size>::Relocate::tls_ie_to_le(
       // Special handling for %rsp.
       if (op1 == 0x4c)
        view[-3] = 0x49;
+      else if (size == 32 && op1 == 0x44)
+       view[-3] = 0x41;
       view[-2] = 0x81;
       view[-1] = 0xc0 | reg;
     }
@@ -4116,6 +4120,8 @@ Target_x86_64<size>::Relocate::tls_ie_to_le(
       // addq
       if (op1 == 0x4c)
        view[-3] = 0x4d;
+      else if (size == 32 && op1 == 0x44)
+       view[-3] = 0x45;
       view[-2] = 0x8d;
       view[-1] = 0x80 | reg | (reg << 3);
     }