diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-23 13:54:17 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-23 13:54:17 +0000 |
| commit | ebcb4518746e8e6303c8bed916fee4a09156701d (patch) | |
| tree | 4b0a426995673c5cd46d41f5b74545e5daba5470 /llvm/lib/Support/Disassembler.cpp | |
| parent | c445be4b4b7a9edb3def21ef7077cd8380bc4592 (diff) | |
| download | llvm-ebcb4518746e8e6303c8bed916fee4a09156701d.zip llvm-ebcb4518746e8e6303c8bed916fee4a09156701d.tar.gz llvm-ebcb4518746e8e6303c8bed916fee4a09156701d.tar.bz2 | |
X86: Use btq for bit tests if the immediate can't be encoded in 32 bits.
Before:
movabsq $4294967296, %rax ## encoding: [0x48,0xb8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
testq %rax, %rdi ## encoding: [0x48,0x85,0xf8]
jne LBB0_2 ## encoding: [0x75,A]
After:
btq $32, %rdi ## encoding: [0x48,0x0f,0xba,0xe7,0x20]
jb LBB0_2 ## encoding: [0x72,A]
btq is usually slower than testq because it doesn't fuse with the jump, but here we're better off
saving one register and a giant movabsq.
llvm-svn: 145103
Diffstat (limited to 'llvm/lib/Support/Disassembler.cpp')
0 files changed, 0 insertions, 0 deletions
