From: Bill Wendling Date: Tue, 24 Apr 2007 21:20:03 +0000 (+0000) Subject: Update. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a2c38ae90db202c50cfd290983189482497b0851;p=oota-llvm.git Update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36407 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/README-MMX.txt b/lib/Target/X86/README-MMX.txt index 1a6f129c569..f3a625e65dc 100644 --- a/lib/Target/X86/README-MMX.txt +++ b/lib/Target/X86/README-MMX.txt @@ -3,3 +3,40 @@ //===---------------------------------------------------------------------===// //===---------------------------------------------------------------------===// + +This: + +#include + +__v2si qux(int A) { + return (__v2si){ 0, A }; +} + +is compiled into: + +_qux: + subl $28, %esp + movl 32(%esp), %eax + movd %eax, %mm0 + movq %mm0, (%esp) + movl (%esp), %eax + movl %eax, 20(%esp) + movq %mm0, 8(%esp) + movl 12(%esp), %eax + movl %eax, 16(%esp) + movq 16(%esp), %mm0 + addl $28, %esp + ret + +Yuck! + +GCC gives us: + +_qux: + subl $12, %esp + movl 16(%esp), %eax + movl 20(%esp), %edx + movl $0, (%eax) + movl %edx, 4(%eax) + addl $12, %esp + ret $4