llvm-6502/utils/TableGen
Bill Wendling eebc8a1bc5 Add support for the v1i64 type. This makes better code for this:
#include <mmintrin.h>

extern __m64 C;

void baz(__v2si *A, __v2si *B)
{
  *A = C;
  _mm_empty();
}

We get this:

_baz:
        call "L1$pb"
"L1$pb":
        popl %eax
        movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
        movq (%eax), %mm0
        movl 4(%esp), %eax
        movq %mm0, (%eax)
        emms
        ret

GCC gives us this:

_baz:
        pushl   %ebx
        call    L3
"L00000000001$pb":
L3:
        popl    %ebx
        subl    $8, %esp
        movl    L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
        movl    (%eax), %edx
        movl    4(%eax), %ecx
        movl    16(%esp), %eax
        movl    %edx, (%eax)
        movl    %ecx, 4(%eax)
        emms
        addl    $8, %esp
        popl    %ebx
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35351 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-26 07:53:08 +00:00
..
.cvsignore
AsmWriterEmitter.cpp
AsmWriterEmitter.h
CallingConvEmitter.cpp
CallingConvEmitter.h
CodeEmitterGen.cpp
CodeEmitterGen.h
CodeGenInstruction.h
CodeGenIntrinsics.h
CodeGenRegisters.h
CodeGenTarget.cpp Add support for the v1i64 type. This makes better code for this: 2007-03-26 07:53:08 +00:00
CodeGenTarget.h
DAGISelEmitter.cpp
DAGISelEmitter.h
FileLexer.cpp.cvs
FileLexer.l
FileLexer.l.cvs
FileParser.cpp.cvs
FileParser.h.cvs
FileParser.y
FileParser.y.cvs
InstrInfoEmitter.cpp
InstrInfoEmitter.h
IntrinsicEmitter.cpp
IntrinsicEmitter.h
Makefile
Record.cpp
Record.h
RegisterInfoEmitter.cpp
RegisterInfoEmitter.h
SubtargetEmitter.cpp
SubtargetEmitter.h
TableGen.cpp
TableGenBackend.cpp
TableGenBackend.h