Skip to content
  1. May 17, 2012
    • Akira Hatanaka's avatar
      This patch adds the register class for MIPS16 as well as the ability for · 0faaebf2
      Akira Hatanaka authored
      llc to recognize MIPS16 as a MIPS ASE extension. -mips16 will mean the
      mips16 ASE for mips32 by default.
      
      As part of fixing of adding this we discovered some small changes that
      need to be made to MipsInstrInfo::storeRegToStackSLot and
      MipsInstrInfo::loadRegFromStackSlot. We were using some "==" equality tests
      where in fact we should have been using Mips::<regclas>.hasSubClassEQ instead,
      per suggestion of Jakob Stoklund Olesen.
      
      Patch by Reed Kotler.
      
      llvm-svn: 156958
      0faaebf2
  2. Apr 20, 2012
  3. Feb 28, 2012
  4. Feb 24, 2012
    • Akira Hatanaka's avatar
      Add an option to use a virtual register as the global base register instead of · b049aef2
      Akira Hatanaka authored
      reserving a physical register ($gp or $28) for that purpose.
      
      This will completely eliminate loads that restore the value of $gp after every
      function call, if the register allocator assigns a callee-saved register, or
      eliminate unnecessary loads if it assigns a temporary register. 
      
      example:
      
      .cpload $25       // set $gp.
      ...
      .cprestore 16     // store $gp to stack slot 16($sp).
      ...
      jalr $25          // function call. clobbers $gp.
      lw $gp, 16($sp)   // not emitted if callee-saved reg is chosen.
      ...
      lw $2, 4($gp)
      ...
      jalr $25          // function call.
      lw $gp, 16($sp)   // not emitted if $gp is not live after this instruction.
      ...
      
      llvm-svn: 151402
      b049aef2
  5. Feb 17, 2012
  6. Feb 03, 2012
  7. Dec 24, 2011
  8. Dec 19, 2011
  9. Dec 12, 2011
  10. Dec 06, 2011
  11. Nov 07, 2011
  12. Oct 11, 2011
  13. Oct 08, 2011
  14. Oct 03, 2011
  15. Sep 29, 2011
  16. Sep 28, 2011
  17. Aug 24, 2011
  18. Aug 16, 2011
    • Akira Hatanaka's avatar
      Fix handling of double precision loads and stores when Mips1 is targeted. · 2263c109
      Akira Hatanaka authored
      Mips1 does not support double precision loads or stores, therefore two single
      precision loads or stores must be used in place of these instructions. This 
      patch treats double precision loads and stores as if they are legal
      instructions until MCInstLowering, instead of generating the single precision
      instructions during instruction selection or Prolog/Epilog code insertion.
      
      Without the changes made in this patch, llc produces code that has the same 
      problem described in r137484 or bails out when
      MipsInstrInfo::storeRegToStackSlot or loadRegFromStackSlot is called before
      register allocation.
      
      llvm-svn: 137711
      2263c109
  19. Jul 14, 2011
  20. Jul 11, 2011
    • Evan Cheng's avatar
      - Eliminate MCCodeEmitter's dependency on TargetMachine. It now uses MCInstrInfo · c5e6d2f5
      Evan Cheng authored
        and MCSubtargetInfo.
      - Added methods to update subtarget features (used when targets automatically
        detect subtarget features or switch modes).
      - Teach X86Subtarget to update MCSubtargetInfo features bits since the
        MCSubtargetInfo layer can be shared with other modules.
      - These fixes .code 16 / .code 32 support since mode switch is updated in
        MCSubtargetInfo so MC code emitter can do the right thing.
      
      llvm-svn: 134884
      c5e6d2f5
  21. Jul 08, 2011
  22. Jul 07, 2011
  23. Jul 01, 2011
  24. Jun 28, 2011
  25. Apr 15, 2011
  26. Apr 01, 2011
  27. Mar 31, 2011
  28. Mar 04, 2011
  29. Jul 17, 2010
  30. Jul 11, 2010
  31. Jun 18, 2010
    • Stuart Hastings's avatar
      Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This · 0125b641
      Stuart Hastings authored
      addresses a longstanding deficiency noted in many FIXMEs scattered
      across all the targets.
      
      This effectively moves the problem up one level, replacing eleven
      FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
      through FastISel where we actually supply a DebugLoc, fixing Radar
      7421831.
      
      llvm-svn: 106243
      0125b641
  32. May 06, 2010
Loading