Skip to content
  1. May 17, 2006
  2. May 16, 2006
  3. May 12, 2006
  4. May 11, 2006
  5. May 09, 2006
  6. 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
  7. May 07, 2006
  8. May 06, 2006
  9. May 05, 2006
  10. May 04, 2006
Loading