diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-04-24 21:20:03 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-04-24 21:20:03 +0000 |
commit | a2c38ae90db202c50cfd290983189482497b0851 (patch) | |
tree | 0129363258582d600d045989e1794a0e0b721370 /lib/Target | |
parent | b53e98eb30e58c1c6129c81bd12f303e5a680ed2 (diff) | |
download | llvm-a2c38ae90db202c50cfd290983189482497b0851.tar.gz llvm-a2c38ae90db202c50cfd290983189482497b0851.tar.bz2 llvm-a2c38ae90db202c50cfd290983189482497b0851.tar.xz |
Update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36407 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/X86/README-MMX.txt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/Target/X86/README-MMX.txt b/lib/Target/X86/README-MMX.txt index 1a6f129c56..f3a625e65d 100644 --- a/lib/Target/X86/README-MMX.txt +++ b/lib/Target/X86/README-MMX.txt @@ -3,3 +3,40 @@ //===---------------------------------------------------------------------===// //===---------------------------------------------------------------------===// + +This: + +#include <mmintrin.h> + +__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 |