[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gold/20308] New: Gold should support i386 TLS code sequences withou
From: |
hjl.tools at gmail dot com |
Subject: |
[Bug gold/20308] New: Gold should support i386 TLS code sequences without PLT |
Date: |
Tue, 28 Jun 2016 15:02:51 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=20308
Bug ID: 20308
Summary: Gold should support i386 TLS code sequences without
PLT
Product: binutils
Version: 2.27 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: gold
Assignee: ccoutant at gmail dot com
Reporter: hjl.tools at gmail dot com
CC: ian at airs dot com
Target Milestone: ---
We can generate i386 TLS code sequences for general and local dynamic
models without PLT, which uses indirect call via GOT:
call address@hidden(%reg)
where EBX register isn't required as GOT base, instead of direct call:
call address@hidden
which requires EBX register as GOT base.
Since direct call is 4-byte long and indirect call, is 5-byte long, the
extra one byte must be handled properly.
For general dynamic model, 7-byte lea instruction before call instruction
is replaced by 6-byte one to make room for indirect call. For local
dynamic model, we simply use 5-byte indirect call.
TLS linker optimization is updated to recognize new instruction patterns.
For local dynamic model to local exec model transition, we generate
a 6-byte lea instruction as nop, instead of a 1-byte nop plus a 4-byte
lea instruction. See:
https://groups.google.com/forum/#!topic/ia32-abi/1j0R7rPz_GE
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gold/20308] New: Gold should support i386 TLS code sequences without PLT,
hjl.tools at gmail dot com <=