bug-binutils
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]