diff options
author | Richard Coles <torne@google.com> | 2015-05-27 17:57:59 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-05-27 17:58:00 +0000 |
commit | 59301e568447990886d44ae9da1ae0379332ac55 (patch) | |
tree | 1d19688c879cfe0d4aa732b05e5373033c6d0531 | |
parent | b93c15fdb1adc488ef0b445eb8100981990a8843 (diff) | |
parent | 5cb7468791489ae8517021b446b785ca1963b177 (diff) | |
download | v8-59301e568447990886d44ae9da1ae0379332ac55.tar.gz |
Merge "Cherry-pick "ARM assembler: fix undefined behaviour in fits_shifter""android-m-preview
-rw-r--r-- | src/arm/assembler-arm.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc index 17bf4f93a..364ccfc13 100644 --- a/src/arm/assembler-arm.cc +++ b/src/arm/assembler-arm.cc @@ -991,7 +991,8 @@ static bool fits_shifter(uint32_t imm32, Instr* instr) { // imm32 must be unsigned. for (int rot = 0; rot < 16; rot++) { - uint32_t imm8 = (imm32 << 2*rot) | (imm32 >> (32 - 2*rot)); + uint32_t imm8 = + rot == 0 ? imm32 : (imm32 << 2 * rot) | (imm32 >> (32 - 2 * rot)); if ((imm8 <= 0xff)) { *rotate_imm = rot; *immed_8 = imm8; |