From: H.J. Lu Date: Tue, 6 Jan 2015 20:58:54 +0000 (-0800) Subject: Handle Initial-Exec to Local-Exec for x32 X-Git-Tag: binutils-2_25_1~296 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48895fcb170a04f4d07f39b0233ee37e02c0865b;p=thirdparty%2Fbinutils-gdb.git Handle Initial-Exec to Local-Exec for x32 PR gold/17809 * x86_64.cc (Target_x86_64::Relocate::tls_ie_to_le): Handle x32. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 2220da222da..bf8e7efa653 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2015-01-06 H.J. Lu + + PR gold/17809 + * x86_64.cc (Target_x86_64::Relocate::tls_ie_to_le): Handle + x32. + 2014-12-04 Alan Modra * Powerpc.cc (Target_powerpc::Branch_info::make_stub): Ignore diff --git a/gold/x86_64.cc b/gold/x86_64.cc index f58c8430da8..89e91a24eea 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -4100,6 +4100,8 @@ Target_x86_64::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::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::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); }