Handle Initial-Exec to Local-Exec for x32

PR gold/17809
	* x86_64.cc (Target_x86_64<size>::Relocate::tls_ie_to_le): Handle
	x32.
This commit is contained in:
H.J. Lu 2015-01-06 12:58:54 -08:00
parent ec93045b40
commit e749cab89d
2 changed files with 12 additions and 0 deletions

View 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.
2015-01-02 Alan Modra <amodra@gmail.com>
* version.cc (print_version): Just print current year.

View 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);
}