aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2015-06-12 15:12:37 +0100
committerTorne (Richard Coles) <torne@google.com>2015-06-12 15:12:37 +0100
commit21c1ed2ee7fa26d99852567e23f690ba0f9ed32f (patch)
tree8decb3ba67e67df4f260fd6f2fa138d969bb2d0b
parentcbdcf85f200ed3a56e12c9726113128035c6cd5f (diff)
parent59301e568447990886d44ae9da1ae0379332ac55 (diff)
downloadv8-master.tar.gz
Update WebView M40 with latest AOSP change.HEADandroid-m-preview-2android-m-preview-1mastermain
Merge "Cherry-pick "ARM assembler: fix undefined behaviour in fits_shifter"".
-rw-r--r--src/arm/assembler-arm.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc
index c7b91c584..7048f9678 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;