Skip to content
  1. Jun 20, 2016
  2. Jun 19, 2016
    • 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
  3. Jun 17, 2016
  4. Jun 16, 2016
    • Rui Ueyama's avatar
      Simplify *(x+y) to x[y]. NFC. · 595bc5db
      Rui Ueyama authored
      They are equivalent in C (and in C++ in this case).
      
      llvm-svn: 272942
      595bc5db
    • George Rimar's avatar
      [ELF] - Handle every global as unversioned export in versioned script. · 95eeb773
      George Rimar authored
      Patch updates the version script parser to parse versioned files.
      In a simple way, just adding them to VersionScriptGlobals list.
      
      Differential revision: http://reviews.llvm.org/D21439
      
      llvm-svn: 272934
      95eeb773
    • Rui Ueyama's avatar
      Simplify. NFC. · 727cd2f7
      Rui Ueyama authored
      llvm-svn: 272924
      727cd2f7
    • Rui Ueyama's avatar
      Inline a small function. NFC. · e517de65
      Rui Ueyama authored
      llvm-svn: 272923
      e517de65
    • Rui Ueyama's avatar
      Early return. NFC. · f9d56200
      Rui Ueyama authored
      llvm-svn: 272917
      f9d56200
    • Rui Ueyama's avatar
      Early return. NFC. · d089a43d
      Rui Ueyama authored
      llvm-svn: 272915
      d089a43d
    • Rui Ueyama's avatar
      Rename PltZero -> PltHeader. · 4a90f57e
      Rui Ueyama authored
      PltZero (or PLT[0]) was an appropriate name for the little code
      we have at beginning of the PLT section when we only supported x86
      since the code for x86 just fits in the first PLT slot.
      
      It's not the case anymore. The code for ARM64 occupies first two
      slots, so PltZero spans PLT[0] and PLT[1], for example.
      This patch renames it to avoid confusion.
      
      llvm-svn: 272913
      4a90f57e
    • Rui Ueyama's avatar
      Eliminate unnecessary call of SymbolBody::getPltVA. · c9fee5fe
      Rui Ueyama authored
      For ARM and MIPS, we don't need to call this function.
      This patch passes a symbol instead of a PLT entry address
      so that the target handler can call it if necessary.
      
      llvm-svn: 272910
      c9fee5fe
    • Rafael Espindola's avatar
      Add support for # comments. · cf1d4987
      Rafael Espindola authored
      llvm-svn: 272892
      cf1d4987
    • Peter Smith's avatar
      Add initial support for Thumb for ARMv7a · fa4d90d5
      Peter Smith authored
          
          Add support for the R_ARM_THM relocations used in the objects present
          in arm-linux-gnueabihf-gcc. These are:
          R_ARM_THM_CALL
          R_ARM_THM_JUMP11
          R_ARM_THM_JUMP19
          R_ARM_THM_JUMP24
          R_ARM_THM_MOVT_ABS
          R_ARM_THM_MOVW_ABS_NC
          
          Interworking between ARM and Thumb is partially supported with BLX.
          The R_ARM_CALL relocation for ARM instructions and R_ARM_THM_CALL
          relocation for Thumb instructions will write out a BL or BLX depending
          on the state of the Target.
          
          Assumptions:
          - Availability of BLX and extended range of Thumb 4-byte Branch
            instructions.
          - In relocateOne if (Val & 0x1) == 1 target is Thumb, 0 is ARM.
            This will hold for objects that comply with the ABI for the
            ARM architecture.
          
          This is sufficient for hello world to work with a recent
          arm-linux-gnueabihf distribution.
          
          Limitations:
          No interworking for R_ARM_JUMP24, R_ARM_THM_JUMP24, R_ARM_THM_JUMP19
          and the deprecated R_ARM_PLT32 and R_ARM_PC24 instructions as these
          cannot be written out as a BLX and need a state change thunk.
          
          No range extension thunks. The R_ARM_JUMP24 and R_ARM_THM_CALL have a
          range of 16Mb
      
      llvm-svn: 272881
      fa4d90d5
  5. Jun 15, 2016
  6. Jun 14, 2016
  7. Jun 11, 2016
  8. Jun 10, 2016
  9. Jun 09, 2016
  10. Jun 08, 2016
Loading