Skip to content
  1. Jul 27, 2005
  2. Jul 19, 2005
  3. Jul 18, 2005
  4. Jul 16, 2005
    • Nate Begeman's avatar
      Teach the legalizer how to promote SINT_TO_FP to a wider SINT_TO_FP that · 7e74c834
      Nate Begeman authored
      the target natively supports.  This eliminates some special-case code from
      the x86 backend and generates better code as well.
      
      For an i8 to f64 conversion, before & after:
      
      _x87 before:
              subl $2, %esp
              movb 6(%esp), %al
              movsbw %al, %ax
              movw %ax, (%esp)
              filds (%esp)
              addl $2, %esp
              ret
      
      _x87 after:
              subl $2, %esp
              movsbw 6(%esp), %ax
              movw %ax, (%esp)
              filds (%esp)
              addl $2, %esp
              ret
      
      _sse before:
              subl $12, %esp
              movb 16(%esp), %al
              movsbl %al, %eax
              cvtsi2sd %eax, %xmm0
              addl $12, %esp
              ret
      
      _sse after:
              subl $12, %esp
              movsbl 16(%esp), %eax
              cvtsi2sd %eax, %xmm0
              addl $12, %esp
              ret
      
      llvm-svn: 22452
      7e74c834
    • Chris Lattner's avatar
      Break the code for expanding UINT_TO_FP operations out into its own · e3e847bf
      Chris Lattner authored
      SelectionDAGLegalize::ExpandLegalUINT_TO_FP method.
      
      Add a new method, PromoteLegalUINT_TO_FP, which allows targets to request
      that UINT_TO_FP operations be promoted to a larger input type.  This is
      useful for targets that have some UINT_TO_FP or SINT_TO_FP operations but
      not all of them (like X86).
      
      The same should be done with SINT_TO_FP, but this patch does not do that
      yet.
      
      llvm-svn: 22447
      e3e847bf
    • Chris Lattner's avatar
      You can't use config options without config.h · b47f5e6d
      Chris Lattner authored
      llvm-svn: 22446
      b47f5e6d
  5. Jul 14, 2005
  6. Jul 13, 2005
  7. Jul 10, 2005
  8. Jul 05, 2005
    • Chris Lattner's avatar
      Make several cleanups to Andrews varargs change: · f5473e44
      Chris Lattner authored
      1. Pass Value*'s into lowering methods so that the proper pointers can be
         added to load/stores from the valist
      2. Intrinsics that return void should only return a token chain, not a token
         chain/retval pair.
      3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone.
      
      llvm-svn: 22338
      f5473e44
    • Andrew Lenharth's avatar
      2 fixes: · 80fe4116
      Andrew Lenharth authored
      1: Legalize operand in UINT_TO_FP expanision
      
      2: SRA x, const i8 was not promoting the constant to shift amount type.
      llvm-svn: 22337
      80fe4116
  9. Jul 02, 2005
  10. Jun 30, 2005
  11. Jun 29, 2005
  12. Jun 28, 2005
  13. Jun 22, 2005
  14. Jun 18, 2005
  15. Jun 16, 2005
  16. May 15, 2005
    • Chris Lattner's avatar
      Add some simplifications for MULH[SU]. This allows us to compile this: · 51836bbc
      Chris Lattner authored
      long %bar(long %X) {
        %Y = mul long %X, 4294967297
        ret long %Y
      }
      
      to this:
      
      l1_bar:
              mov %EAX, DWORD PTR [%ESP + 4]
              mov %EDX, %EAX
              add %EDX, DWORD PTR [%ESP + 8]
              ret
      
      instead of:
      
      l1_bar:
              mov %ECX, DWORD PTR [%ESP + 4]
              mov %EDX, 1
              mov %EAX, %ECX
              mul %EDX
              add %EDX, %ECX
              add %EDX, DWORD PTR [%ESP + 8]
              mov %EAX, %ECX
              ret
      
      llvm-svn: 22044
      51836bbc
  17. May 14, 2005
  18. May 13, 2005
Loading