summaryrefslogtreecommitdiffstats
path: root/compiler
diff options
context:
space:
mode:
authorSerguei Katkov <serguei.i.katkov@intel.com>2014-04-15 16:55:26 +0700
committerSerguei Katkov <serguei.i.katkov@intel.com>2014-04-18 09:17:13 +0700
commit366f8ae038c4f6a3852deed1cff322ba54689808 (patch)
tree702f58af8c16a7945d26c8ae80932db69d67754a /compiler
parent957e2a2bb9ca9a59b4fb41170b1b1a53e99bed67 (diff)
downloadart-366f8ae038c4f6a3852deed1cff322ba54689808.zip
art-366f8ae038c4f6a3852deed1cff322ba54689808.tar.gz
art-366f8ae038c4f6a3852deed1cff322ba54689808.tar.bz2
GenArithOpInt should ensure that reg is in core
GenArithOpInt in two-addr case of add-int where destination is in register should ensure that it is a core reg. Change-Id: I5b5ca126773a2bb45f9b23ad892102b034d694b4 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Diffstat (limited to 'compiler')
-rw-r--r--compiler/dex/quick/x86/int_x86.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/dex/quick/x86/int_x86.cc b/compiler/dex/quick/x86/int_x86.cc
index e45e7a8..46dbdf1 100644
--- a/compiler/dex/quick/x86/int_x86.cc
+++ b/compiler/dex/quick/x86/int_x86.cc
@@ -2126,6 +2126,8 @@ void X86Mir2Lir::GenArithOpInt(Instruction::Code opcode, RegLocation rl_dest,
// Can we do this directly into memory?
rl_result = UpdateLoc(rl_dest);
if (rl_result.location == kLocPhysReg) {
+ // Ensure res is in a core reg
+ rl_result = EvalLoc(rl_dest, kCoreReg, true);
// Can we do this from memory directly?
rl_rhs = UpdateLoc(rl_rhs);
if (rl_rhs.location != kLocPhysReg) {