diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-09-18 06:30:59 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-09-18 06:30:59 +0000 |
| commit | 797dee77053e4bbf0b95ae02ab725b279cf817ef (patch) | |
| tree | 907280b0f7a80507b57bed54ec2eaa1ec299f455 /llvm/lib/Transforms/Utils/CodeExtractor.cpp | |
| parent | 01f56c68e947157ab3aa6a3bfde7ebde73d18821 (diff) | |
| download | bcm5719-llvm-797dee77053e4bbf0b95ae02ab725b279cf817ef.tar.gz bcm5719-llvm-797dee77053e4bbf0b95ae02ab725b279cf817ef.zip | |
Compile
struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus2 (unsigned int x) {
b.j += x;
}
to:
plus2:
mov %EAX, DWORD PTR [b]
mov %ECX, %EAX
and %ECX, 131008
mov %EDX, DWORD PTR [%ESP + 4]
shl %EDX, 6
add %EDX, %ECX
and %EDX, 131008
and %EAX, -131009
or %EDX, %EAX
mov DWORD PTR [b], %EDX
ret
instead of:
plus2:
mov %EAX, DWORD PTR [b]
mov %ECX, %EAX
shr %ECX, 6
and %ECX, 2047
add %ECX, DWORD PTR [%ESP + 4]
shl %ECX, 6
and %ECX, 131008
and %EAX, -131009
or %ECX, %EAX
mov DWORD PTR [b], %ECX
ret
llvm-svn: 23385
Diffstat (limited to 'llvm/lib/Transforms/Utils/CodeExtractor.cpp')
0 files changed, 0 insertions, 0 deletions

