diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-02-28 17:58:00 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-02-28 17:58:00 +0000 |
commit | 0c281a7deb6a4b9c64bf4a4a7289e69cced4c275 (patch) | |
tree | d603b3b8b8e526a2da150b0f53568f953a6bfe24 /llvm/lib/Object/MachOObjectFile.cpp | |
parent | 378ecbe6f476012e58b270ab6dffa04687944628 (diff) | |
download | bcm5719-llvm-0c281a7deb6a4b9c64bf4a4a7289e69cced4c275.tar.gz bcm5719-llvm-0c281a7deb6a4b9c64bf4a4a7289e69cced4c275.zip |
LegalizeIntegerTypes: Reenable the large shift with small amount optimization.
To avoid problems with zero shifts when getting the bits that move between words
we use a trick: first shift the by amount-1, then do another shift by one. When
amount is 0 (and size 32) we first shift by 31, then by one, instead of by 32.
Also fix a latent bug that emitted the low and high words in the wrong order
when shifting right.
Fixes PR12113.
llvm-svn: 151637
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions