Changes in directory llvm/lib/Target/ARM:
ARMRegisterInfo.cpp updated: 1.29 -> 1.30 --- Log message: macros -> Inline functions Lauros's patch --- Diffs of the changes: (+13 -9) ARMRegisterInfo.cpp | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) Index: llvm/lib/Target/ARM/ARMRegisterInfo.cpp diff -u llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.29 llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.30 --- llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.29 Thu Dec 14 07:31:27 2006 +++ llvm/lib/Target/ARM/ARMRegisterInfo.cpp Mon Dec 18 05:07:09 2006 @@ -35,9 +35,13 @@ return NoFramePointerElim || MFI->hasVarSizedObjects(); } -#define ROTATE32L(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) +static inline unsigned rotateL(unsigned x, unsigned n){ + return ((x << n) | (x >> (32 - n))); +} -#define ROTATE32R(x, n) (((x) >> (n)) | ((x) << (32 - (n)))) +static inline unsigned rotateR(unsigned x, unsigned n){ + return ((x >> n) | (x << (32 - n))); +} // finds the end position of largest sequence of zeros in binary representation // of 'immediate'. @@ -50,19 +54,19 @@ int end_pos; while ((immediate & 0x3) == 0) { - immediate = ROTATE32R(immediate, 2); + immediate = rotateR(immediate, 2); pos+=2; } end_pos = pos+32; while (pos<end_pos){ while ((immediate & 0x3) != 0) { - immediate = ROTATE32R(immediate, 2); + immediate = rotateR(immediate, 2); pos+=2; } zero_pos = pos; while ((immediate & 0x3) == 0) { - immediate = ROTATE32R(immediate, 2); + immediate = rotateR(immediate, 2); pos+=2; } zero_length = pos - zero_pos; @@ -90,19 +94,19 @@ } int start_pos = findLargestZeroSequence(immediate); - unsigned immediate_tmp = ROTATE32R(immediate, start_pos); + unsigned immediate_tmp = rotateR(immediate, start_pos); int pos = 0; while (pos < 32){ while(((immediate_tmp&0x3) == 0)&&(pos<32)){ - immediate_tmp = ROTATE32R(immediate_tmp,2); + immediate_tmp = rotateR(immediate_tmp,2); pos+=2; } if (pos < 32){ BuildMI(BB, I, TID, DestReg).addReg(OrigReg) - .addImm(ROTATE32L(immediate_tmp&0xFF, (start_pos + pos) % 32 )) + .addImm(rotateL(immediate_tmp&0xFF, (start_pos + pos) % 32 )) .addImm(0).addImm(ARMShift::LSL); - immediate_tmp = ROTATE32R(immediate_tmp,8); + immediate_tmp = rotateR(immediate_tmp,8); pos+=8; } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits