Skip to content
  • Simon Atanasyan's avatar
    [ELF][MIPS] Support GOT entries for non-preemptible symbols with different addends · 4132511c
    Simon Atanasyan authored
    There are two motivations for this patch. The first one is a preparation
    for support MIPS TLS relocations. It might sound like a joke but for GOT
    entries related to TLS relocations MIPS ABI uses almost regular approach
    with creation of dynamic relocations for each GOT enty etc. But we need
    to separate these 'regular' TLS related entries from MIPS specific local
    and global parts of GOT. ABI declare simple solution - all TLS related
    entries allocated at the end of GOT after local/global parts. The second
    motivation it to support GOT relocations for non-preemptible symbols
    with addends. If we have more than one GOT relocations against symbol S
    with different addends we need to create GOT entries for each unique
    Symbol/Addend pairs.
    
    So we store all MIPS GOT entries in separate containers. For non-preemptible
    symbols we have to maintain two data structures. The first one is MipsLocal
    vector. Each entry corresponds to the GOT entry from the 'local' part
    of the GOT contains the symbol's address plus addend. The second one
    is MipsLocalMap. It is a map from Symbol/Addend pair to the GOT index.
    
    Differential Revision: http://reviews.llvm.org/D21297
    
    llvm-svn: 273127
    4132511c
Loading