Skip to content
  1. Aug 13, 2008
    • Bruno Cardoso Lopes's avatar
      Removed SELECT_CC custom lowering. This is not needed anymore, the SELECT node · 92c64ae2
      Bruno Cardoso Lopes authored
      is lowered properly and covers everything LowerSELECT_CC did.
      Added method printUnsignedImm in AsmPrinter to print uimm16 operands. This
      avoid the ugly instruction by instruction checking in printOperand.
      Added a swap instruction present in the allegrex core.
      Added two conditional instructions present in the allegrex core : MOVZ and MOVN.
      They both allow a more efficient SELECT operation for integers.
      Also added SELECT patterns to optimize MOVZ and MOVN usage.
      The brcond and setcc patterns were cleaned: redundant and suboptimal patterns
      were
      removed. The suboptimals were replaced by more efficient ones.
      Fixed some instructions that were using immZExt16 instead of immSExt16.
      
      llvm-svn: 54724
      92c64ae2
  2. Aug 08, 2008
  3. Aug 07, 2008
  4. Aug 06, 2008
    • Bruno Cardoso Lopes's avatar
      Added support for fp callee saved registers. · 4659aad6
      Bruno Cardoso Lopes authored
      Added fp register clobbering during calls.
      Added AsmPrinter support for "fmask", a bitmask that indicates where on the 
      stack the fp callee saved registers are.
      
      Fixed the stack frame layout for Mips, now the callee saved regs 
      are in the right stack location (a little documentation about how this
      stack frame must look like is present in MipsRegisterInfo.cpp).
      This was done using the method MipsRegisterInfo::adjustMipsStackFrame
      To be more clear, these are examples of what is solves :  
      
      1) FP and RA are also callee saved, and despite they aren't in CSI they 
         must be saved before the fp callee saved registers. 
      2) The ABI requires that local varibles are allocated before the callee 
         saved register area, the opposite behavior from the default allocation.
      3) CPU and FPU saved register area must be aligned independent of each
         other.
      
      llvm-svn: 54403
      4659aad6
  5. Aug 02, 2008
  6. Jul 28, 2008
  7. Jul 21, 2008
  8. Jul 19, 2008
  9. Jul 15, 2008
  10. Jul 14, 2008
    • Bruno Cardoso Lopes's avatar
      Added Subtarget support into RegisterInfo · 80ab8f96
      Bruno Cardoso Lopes authored
      Added HasABICall and HasAbsoluteCall (equivalent to gcc -mabicall and 
      -mno-shared). HasAbsoluteCall is not implemented but HasABICall is the 
      default for o32 ABI. Now, both should help into a more accurate 
      relocation types implementation. 
      Added IsLinux is needed to choose between asm directives.
      Instruction name strings cleanup.
      AsmPrinter improved.
      
      llvm-svn: 53551
      80ab8f96
  11. Jul 09, 2008
  12. Jul 05, 2008
    • Bruno Cardoso Lopes's avatar
      Several changes to Mips backend, experimental fp support being the most · c9c3f499
      Bruno Cardoso Lopes authored
      important.
      - Cleanup in the Subtarget info with addition of new features, not all support
        yet, but they allow the future inclusion of features easier. Among new features,
        we have : Arch family info (mips1, mips2, ...), ABI info (o32, eabi), 64-bit
        integer
        and float registers, allegrex vector FPU (VFPU), single float only support.
      - TargetMachine now detects allegrex core.
      - Added allegrex (Mips32r2) sext_inreg instructions.
      - *Added Float Point Instructions*, handling single float only, and
        aliased accesses for 32-bit FPUs.
      - Some cleanup in FP instruction formats and FP register classes.
      - Calling conventions improved to support mips 32-bit EABI.
      - Added Asm Printer support for fp cond codes.
      - Added support for sret copy to a return register.
      - EABI support added into LowerCALL and FORMAL_ARGS.
      - MipsFunctionInfo now keeps a virtual register per function to track the
        sret on function entry until function ret.
      - MipsInstrInfo FP support into methods (isMoveInstr, isLoadFromStackSlot, ...),
        FP cond codes mapping and initial FP Branch Analysis.
      - Two new Mips SDNode to handle fp branch and compare instructions : FPBrcond,
        FPCmp
      - MipsTargetLowering : handling different FP classes, Allegrex support, sret
        return copy, no homing location within EABI, non 32-bit stack objects
        arguments, and asm constraint for float.
      
      llvm-svn: 53146
      c9c3f499
  13. Jun 19, 2008
  14. Jun 04, 2008
  15. May 14, 2008
    • Dale Johannesen's avatar
      Add CommonLinkage; currently tentative definitions · ce4396bc
      Dale Johannesen authored
      are represented as "weak", but there are subtle differences
      in some cases on Darwin, so we need both.  The intent
      is that "common" will behave identically to "weak" unless
      somebody changes their target to do something else.
      No functional change as yet.
      
      llvm-svn: 51118
      ce4396bc
  16. Feb 28, 2008
  17. Feb 27, 2008
  18. Feb 26, 2008
  19. Feb 10, 2008
  20. Feb 02, 2008
  21. Dec 31, 2007
    • Chris Lattner's avatar
      Add new shorter predicates for testing machine operands for various types: · a5bb370a
      Chris Lattner authored
      e.g. MO.isMBB() instead of MO.isMachineBasicBlock().  I don't plan on 
      switching everything over, so new clients should just start using the 
      shorter names.
      
      Remove old long accessors, switching everything over to use the short
      accessor: getMachineBasicBlock() -> getMBB(), 
      getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
      
      llvm-svn: 45464
      a5bb370a
  22. Dec 30, 2007
  23. Dec 29, 2007
  24. Nov 12, 2007
  25. Nov 05, 2007
    • Bruno Cardoso Lopes's avatar
      Added support for PIC code with "explicit relocations" *only*. · 3e0d030d
      Bruno Cardoso Lopes authored
      Removed all macro code for PIC (goodbye "la").
      Support tested with shootout bench.
      
      llvm-svn: 43697
      3e0d030d
    • Duncan Sands's avatar
      Eliminate the remaining uses of getTypeSize. This · 283207a7
      Duncan Sands authored
      should only effect x86 when using long double.  Now
      12/16 bytes are output for long double globals (the
      exact amount depends on the alignment).  This brings
      globals in line with the rest of LLVM: the space
      reserved for an object is now always the ABI size.
      One tricky point is that only 10 bytes should be
      output for long double if it is a field in a packed
      struct, which is the reason for the additional
      argument to EmitGlobalConstant.
      
      llvm-svn: 43688
      283207a7
  26. Oct 14, 2007
  27. Oct 12, 2007
  28. Oct 09, 2007
    • Bruno Cardoso Lopes's avatar
      Position Independent Code (PIC) support [2] · 35d86e60
      Bruno Cardoso Lopes authored
      - Added a function to hold the stack location 
        where GP must be stored during LowerCALL
      - AsmPrinter now emits directives based on
        relocation type
      - PIC_ set to default relocation type (same as GCC)
      
      llvm-svn: 42779
      35d86e60
  29. Sep 24, 2007
  30. Aug 28, 2007
  31. Aug 18, 2007
  32. Jul 25, 2007
  33. Jul 12, 2007
  34. Jun 06, 2007
    • Bruno Cardoso Lopes's avatar
      Initial Mips support, here we go! =) · 35e43c49
      Bruno Cardoso Lopes authored
      - Modifications from the last patch included
        (issues pointed by Evan Cheng are now fixed).
      - Added more MipsI instructions.
      - Added more patterns to match branch instructions.
      
      llvm-svn: 37461
      35e43c49
Loading