diff options
author | Chris Lattner <sabre@nondot.org> | 2008-02-27 05:47:54 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-02-27 05:47:54 +0000 |
commit | d0ba2a9c146df8deb355fd5e375f52671109600f (patch) | |
tree | 8be940e034d6e97828cebb2c98fd336a19a5ed03 /lib/Target/X86/README-X86-64.txt | |
parent | d36531249a9a9500e516148e7e72d4c0a7a4d0ee (diff) | |
download | llvm-d0ba2a9c146df8deb355fd5e375f52671109600f.tar.gz llvm-d0ba2a9c146df8deb355fd5e375f52671109600f.tar.bz2 llvm-d0ba2a9c146df8deb355fd5e375f52671109600f.tar.xz |
Compile x86-64-and-mask.ll into:
_test:
movl %edi, %eax
ret
instead of:
_test:
movl $4294967295, %ecx
movq %rdi, %rax
andq %rcx, %rax
ret
It would be great to write this as a Pat pattern that used subregs
instead of a 'pseudo' instruction, but I don't know how to do that
in td files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47658 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/README-X86-64.txt')
-rw-r--r-- | lib/Target/X86/README-X86-64.txt | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/lib/Target/X86/README-X86-64.txt b/lib/Target/X86/README-X86-64.txt index bdff56d40b..59cecdf4f2 100644 --- a/lib/Target/X86/README-X86-64.txt +++ b/lib/Target/X86/README-X86-64.txt @@ -249,15 +249,6 @@ _a: addq $8, %rsp ret -note the dead rsp adjustments. Also, there is surely a better/shorter way -to clear the top 32-bits of a 64-bit register than movl+andq. Testcase here: - -unsigned long long c(unsigned long long a) {return a&4294967295; } - -_c: - movl $4294967295, %ecx - movq %rdi, %rax - andq %rcx, %rax - ret +note the dead rsp adjustments. //===---------------------------------------------------------------------===// |