Skip to content
  1. May 20, 2006
  2. May 19, 2006
  3. May 18, 2006
  4. May 17, 2006
  5. May 16, 2006
  6. May 12, 2006
  7. May 11, 2006
  8. May 09, 2006
  9. May 08, 2006
    • Chris Lattner's avatar
      Another bad case I noticed · aa193d80
      Chris Lattner authored
      llvm-svn: 28177
      aa193d80
    • Chris Lattner's avatar
      add a note · 5bcea612
      Chris Lattner authored
      llvm-svn: 28176
      5bcea612
    • Evan Cheng's avatar
      Fixing truncate. Previously we were emitting truncate from r16 to r8 as · 9733bde7
      Evan Cheng authored
      movw. That is we promote the destination operand to r16. So
              %CH = TRUNC_R16_R8 %BP
      is emitted as
              movw %bp, %cx.
      
      This is incorrect. If %cl is live, it would be clobbered.
      Ideally we want to do the opposite, that is emitted it as
              movb ??, %ch
      But this is not possible since %bp does not have a r8 sub-register.
      
      We are now defining a new register class R16_ which is a subclass of R16
      containing only those 16-bit registers that have r8 sub-registers (i.e.
      AX - DX). We isel the truncate to two instructions, a MOV16to16_ to copy the
      value to the R16_ class, followed by a TRUNC_R16_R8.
      
      Due to bug 770, the register colaescer is not going to coalesce between R16 and
      R16_. That will be fixed later so we can eliminate the MOV16to16_. Right now, it
      can only be eliminated if we are lucky that source and destination registers are
      the same.
      
      llvm-svn: 28164
      9733bde7
  10. May 07, 2006
  11. May 06, 2006
Loading