Skip to content
  1. Aug 22, 2012
    • Jack Carter's avatar
      For mips64 switch statements in subroutines could generate · 77064c05
      Jack Carter authored
      within the codegen EK_GPRel64BlockAddress. This was not 
      supported for direct object output and resulted in an assertion.
      
      This change adds support for EK_GPRel64BlockAddress for 
      direct object.
      
      One fallout from this is to turn on rela relocations 
      for mips64 to match gas.
      
      llvm-svn: 162334
      77064c05
  2. Aug 20, 2012
  3. Aug 18, 2012
  4. Aug 17, 2012
  5. Aug 16, 2012
  6. Aug 14, 2012
    • Jim Grosbach's avatar
      Switch the fixed-length disassembler to be table-driven. · ecaef49f
      Jim Grosbach authored
      Refactor the TableGen'erated fixed length disassemblmer to use a
      table-driven state machine rather than a massive set of nested
      switch() statements.
      
      As a result, the ARM Disassembler (ARMDisassembler.cpp) builds much more
      quickly and generates a smaller end result. For a Release+Asserts build on
      a 16GB 3.4GHz i7 iMac w/ SSD:
      
      Time to compile at -O2 (averaged w/ hot caches):
        Previous: 35.5s
        New:       8.9s
      
      TEXT size:
        Previous: 447,251
        New:      297,661
      
      Builds in 25% of the time previously required and generates code 66% of
      the size.
      
      Execution time of the disassembler is only slightly slower (7% disassembling
      10 million ARM instructions, 19.6s vs 21.0s). The new implementation has
      not yet been tuned, however, so the performance should almost certainly
      be recoverable should it become a concern.
      
      llvm-svn: 161888
      ecaef49f
  7. Aug 10, 2012
  8. Aug 09, 2012
  9. Aug 07, 2012
  10. Aug 06, 2012
    • Jack Carter's avatar
      Mips relocations R_MIPS_HIGHER and R_MIPS_HIGHEST. · 84491abb
      Jack Carter authored
      These 2 relocations gain access to the 
      highest and the second highest 16 bits
      of a 64 bit object.
      
      R_MIPS_HIGHER %higher(A+S)
      The %higher(x) function is [ (((long long) x + 0x80008000LL) >> 32) & 0xffff ]. 
      
      R_MIPS_HIGHEST %highest(A+S)
      The %highest(x) function is [ (((long long) x + 0x800080008000LL) >> 48) & 0xffff ]. 
      
      llvm-svn: 161348
      84491abb
  11. Aug 04, 2012
  12. Aug 02, 2012
  13. Aug 01, 2012
  14. Jul 31, 2012
  15. Jul 27, 2012
  16. Jul 26, 2012
  17. Jul 25, 2012
  18. Jul 24, 2012
  19. Jul 23, 2012
  20. Jul 21, 2012
Loading