Skip to content
  1. Jun 17, 2015
    • Toma Tabacu's avatar
      [mips] [IAS] Add test for SW with relative label operands. NFC. · 6a1e0eb2
      Toma Tabacu authored
      Reviewers: dsanders
      
      Reviewed By: dsanders
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D10497
      
      llvm-svn: 239899
      6a1e0eb2
    • Toma Tabacu's avatar
      [mips] [IAS] Fix LW with relative label operands. · 07c97b3b
      Toma Tabacu authored
      Summary:
      Previously, MCSymbolRefExpr::create() was called with a StringRef of the symbol
      name, which it would then search for in the Symbols StringMap (from MCContext).
      
      However, relative labels (which are temporary symbols) are apparently not stored
      in the Symbols StringMap, so we end up creating a new {$,.L}tmp symbol
      ({$,.L}tmp00, {$,.L}tmp10 etc.) each time we create an MCSymbolRefExpr by
      passing in the symbol name as a StringRef.
      
      Fortunately, there is a version of MCSymbolRefExpr::create() which takes an
      MCSymbol* and we already have an MCSymbol* at that point, so we can just pass
      that in instead of the StringRef.
      
      I also removed the local StringRef calls to MCSymbolRefExpr::create() from
      expandMemInst(), as those cases can be handled by evaluateRelocExpr() anyway.
      
      Reviewers: dsanders
      
      Reviewed By: dsanders
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D9938
      
      llvm-svn: 239897
      07c97b3b
  2. Jun 16, 2015
    • Kit Barton's avatar
      Properly handle the mftb instruction. · 4f79f96f
      Kit Barton authored
      The mftb instruction was incorrectly marked as deprecated in the PPC
      Backend. Instead, it should not be treated as deprecated, but rather be
      implemented using the mfspr instruction. A similar patch was put into GCC last
      year. Details can be found at:
      
      https://sourceware.org/ml/binutils/2014-11/msg00383.html.
      This change will replace instances of the mftb instruction with the mfspr
      instruction for all CPUs except 601 and pwr3. This will also be the default
      behaviour.
      
      Additional details can be found in:
      
      https://llvm.org/bugs/show_bug.cgi?id=23680
      
      Phabricator review: http://reviews.llvm.org/D10419
      
      llvm-svn: 239827
      4f79f96f
    • Daniel Sanders's avatar
      [mips][ias] Expand on r238751 to cover as many relocs as possible. · 58405d85
      Daniel Sanders authored
      Summary:
      Relocs that can be converted from absolute to PC-relative now do so if IsPCRel
      is true. Relocs that require PC-relative now call llvm_unreachable() if IsPCRel
      is false and similarly those that require absolute assert that IsPCRel is false.
      
      Note that while it looks like some relocs (e.g. R_MIPS_26) can be converted into
      the MIPS32r6/MIPS64r6 relocs (R_MIPS_PC*_S2), it isn't actually valid to do so.
      
      Placeholders have been left in the testcase for unsupported relocs and relocs
      that cannot be generated at the moment.
      
      Reviewers: vkalintiris
      
      Reviewed By: vkalintiris
      
      Subscribers: llvm-commits, rafael
      
      Differential Revision: http://reviews.llvm.org/D10184
      
      llvm-svn: 239817
      58405d85
    • Daniel Sanders's avatar
      [llvm-mc] The object form of the GNU triple should be the same as the string form. · c535d93b
      Daniel Sanders authored
      Summary:
      GetTarget() may modify TripleName without also updating TheTriple.
      This can lead to situations where the MCObjectStreamer has a different triple
      to the rest of LLVM.
      
      This inconsistency caused sparc-little-endian.s to pass on Windows because most
      of LLVM had sparcel-pc-win32 while MCObjectStreamer had "". I believe the same
      kind of thing was also true of Darwin.
      
      Reviewers: rengolin
      
      Reviewed By: rengolin
      
      Subscribers: llvm-commits, rengolin, rafael
      
      Differential Revision: http://reviews.llvm.org/D10450
      
      llvm-svn: 239808
      c535d93b
  3. Jun 14, 2015
  4. Jun 13, 2015
  5. Jun 12, 2015
  6. Jun 11, 2015
  7. Jun 10, 2015
  8. Jun 09, 2015
  9. Jun 08, 2015
  10. Jun 07, 2015
  11. Jun 06, 2015
  12. Jun 05, 2015
    • Colin LeMahieu's avatar
      be8c453d
    • John Brawn's avatar
      [ARM] Add support for -sp- FPUs and FPU none to TargetParser · 985c04e8
      John Brawn authored
      These are added mainly for the benefit of clang, but this also means that they
      are now allowed in .fpu directives and we emit the correct .fpu directive when
      single-precision-only is used.
      
      Differential Revision: http://reviews.llvm.org/D10238
      
      llvm-svn: 239151
      985c04e8
    • Toma Tabacu's avatar
      Revert "[mips] [IAS] Restore STI.FeatureBits in .set pop." (r239144). · 399a56d7
      Toma Tabacu authored
      This is breaking the Windows buildbots.
      
      llvm-svn: 239145
      399a56d7
    • Toma Tabacu's avatar
      [mips] [IAS] Restore STI.FeatureBits in .set pop. · 89ebf88f
      Toma Tabacu authored
      Summary:
      Only restoring AvailableFeatures is not enough and will lead to buggy behaviour.
      For example, if we have a feature enabled and we ".set pop", the next time we try
      to ".set" that feature nothing will happen because the "!(STI.getFeatureBits()[Feature])"
      check will be false, because we didn't restore STI.FeatureBits.
      
      In order to fix this, we need to make MipsAssemblerOptions remember the STI.FeatureBits
      instead of the AvailableFeatures and then regenerate AvailableFeatures each time we ".set pop".
      This is because, AFAIK, there is no way to convert from AvailableFeatures back to STI.FeatureBits,
      but the reverse is possible by using ComputeAvailableFeatures(STI.FeatureBits).
      
      I also moved the updating of AssemblerOptions inside the "if" statement in
      setFeatureBits() and clearFeatureBits(), as there is no reason to update if
      nothing changes.
      
      Reviewers: dsanders, mkuper
      
      Reviewed By: dsanders
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D9156
      
      llvm-svn: 239144
      89ebf88f
  13. Jun 04, 2015
  14. Jun 03, 2015
Loading