llvm-6502/lib/Target
Nate Begeman 5a8441ea3f Teach the legalizer how to promote SINT_TO_FP to a wider SINT_TO_FP that
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22452 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-16 02:02:34 +00:00
..
Alpha Fix povray and minor cleanups 2005-07-12 04:20:52 +00:00
CBackend Fixed PR#596: 2005-07-14 19:41:16 +00:00
IA64 Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode. 2005-07-10 01:56:13 +00:00
PowerPC Remove some code that moved to the generic asm printer a long time ago. 2005-07-12 18:34:15 +00:00
Skeleton Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile 2005-06-25 02:48:37 +00:00
Sparc Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode. 2005-07-10 01:56:13 +00:00
SparcV8 Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode. 2005-07-10 01:56:13 +00:00
SparcV9 fix a warning 2005-07-11 22:46:18 +00:00
X86 Teach the legalizer how to promote SINT_TO_FP to a wider SINT_TO_FP that 2005-07-16 02:02:34 +00:00
Makefile Implement the --enable-targets= feature of the configure script. The make 2005-04-22 17:20:11 +00:00
MRegisterInfo.cpp Convert tabs to spaces 2005-04-22 17:54:37 +00:00
Target.td Add some bits that can be set for instructions. 2005-01-02 02:27:48 +00:00
TargetData.cpp Remove trailing whitespace 2005-04-21 22:55:34 +00:00
TargetFrameInfo.cpp Shut GCC 4.0 up about classes that have virtual functions but a non-virtual 2005-04-25 02:55:55 +00:00
TargetInstrInfo.cpp Convert tabs to spaces 2005-04-22 17:54:37 +00:00
TargetMachine.cpp First round of support for doing scalar FP using the SSE2 ISA extension and 2005-07-06 18:59:04 +00:00
TargetMachineRegistry.cpp Remove trailing whitespace 2005-04-21 22:55:34 +00:00
TargetSchedInfo.cpp Convert tabs to spaces 2005-04-22 17:54:37 +00:00
TargetSubtarget.cpp I don't know how this ever compiled with gcc, but VC++ correctly rejects it. 2005-07-12 02:59:38 +00:00