diff options
author | Chris Lattner <sabre@nondot.org> | 2006-05-05 06:10:43 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-05-05 06:10:43 +0000 |
commit | a3dc3f692c2967dc9cfac6344c7216f62098feda (patch) | |
tree | f00aba1775a5ba9e712d02af4b72a121593e9ac4 /lib/Support | |
parent | 5ffc066912ce4f5c32741c5e56dc28a8fe1dc050 (diff) | |
download | external_llvm-a3dc3f692c2967dc9cfac6344c7216f62098feda.zip external_llvm-a3dc3f692c2967dc9cfac6344c7216f62098feda.tar.gz external_llvm-a3dc3f692c2967dc9cfac6344c7216f62098feda.tar.bz2 |
Pull and through and/or/xor. This compiles some bitfield code to:
mov EAX, DWORD PTR [ESP + 4]
mov ECX, DWORD PTR [EAX]
mov EDX, ECX
add EDX, EDX
or EDX, ECX
and EDX, -2147483648
and ECX, 2147483647
or EDX, ECX
mov DWORD PTR [EAX], EDX
ret
instead of:
sub ESP, 4
mov DWORD PTR [ESP], ESI
mov EAX, DWORD PTR [ESP + 8]
mov ECX, DWORD PTR [EAX]
mov EDX, ECX
add EDX, EDX
mov ESI, ECX
and ESI, -2147483648
and EDX, -2147483648
or EDX, ESI
and ECX, 2147483647
or EDX, ECX
mov DWORD PTR [EAX], EDX
mov ESI, DWORD PTR [ESP]
add ESP, 4
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28122 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support')
0 files changed, 0 insertions, 0 deletions