diff options
author | Bill Buzbee <buzbee@android.com> | 2014-03-03 18:52:03 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-03-03 18:52:03 +0000 |
commit | f796ca0715d0cb6f5afe00b3df00e80f99e186f7 (patch) | |
tree | fd6c9d547ce6b1c8b3877838e93d48a47cc976f5 /compiler | |
parent | 45042c09062e23bc7bc7aa5b0ccc66b2c327e6d9 (diff) | |
parent | c17ebe866beb50eb6da1e6a47555cb4731467f3b (diff) | |
download | art-f796ca0715d0cb6f5afe00b3df00e80f99e186f7.zip art-f796ca0715d0cb6f5afe00b3df00e80f99e186f7.tar.gz art-f796ca0715d0cb6f5afe00b3df00e80f99e186f7.tar.bz2 |
Merge "Incorrect result of the "mul-long by 1" operation"
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/dex/quick/gen_loadstore.cc | 2 | ||||
-rw-r--r-- | compiler/dex/quick/x86/int_x86.cc | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/compiler/dex/quick/gen_loadstore.cc b/compiler/dex/quick/gen_loadstore.cc index f7c2821..7aef93e 100644 --- a/compiler/dex/quick/gen_loadstore.cc +++ b/compiler/dex/quick/gen_loadstore.cc @@ -240,6 +240,8 @@ void Mir2Lir::StoreValueWide(RegLocation rl_dest, RegLocation rl_src) { DCHECK_EQ(IsFpReg(rl_src.low_reg), IsFpReg(rl_src.high_reg)); DCHECK(rl_dest.wide); DCHECK(rl_src.wide); + rl_src = UpdateLocWide(rl_src); + rl_dest = UpdateLocWide(rl_dest); if (rl_src.location == kLocPhysReg) { if (IsLive(rl_src.low_reg) || IsLive(rl_src.high_reg) || diff --git a/compiler/dex/quick/x86/int_x86.cc b/compiler/dex/quick/x86/int_x86.cc index 5f04b7d..6c3ba4e 100644 --- a/compiler/dex/quick/x86/int_x86.cc +++ b/compiler/dex/quick/x86/int_x86.cc @@ -923,7 +923,6 @@ void X86Mir2Lir::GenMulLong(Instruction::Code, RegLocation rl_dest, RegLocation StoreValueWide(rl_dest, rl_result); return; } else if (val == 1) { - rl_src1 = EvalLocWide(rl_src1, kCoreReg, true); StoreValueWide(rl_dest, rl_src1); return; } else if (val == 2) { |