diff options
author | Bill Buzbee <buzbee@android.com> | 2014-03-26 13:28:02 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-03-26 13:28:02 +0000 |
commit | 4b4b43c225a34b734c69f32cd0336e4a5d4b8e38 (patch) | |
tree | a6b2dee9d35c516b5c9d59ca30d34301a0123654 | |
parent | 909f133bc938928a2403baccc983701cb9ebb17f (diff) | |
parent | ab5545f31aec6ed4b906bd1bb34a02778e7081e9 (diff) | |
download | art-4b4b43c225a34b734c69f32cd0336e4a5d4b8e38.zip art-4b4b43c225a34b734c69f32cd0336e4a5d4b8e38.tar.gz art-4b4b43c225a34b734c69f32cd0336e4a5d4b8e38.tar.bz2 |
Merge "x86 GenLongRegOrMemOp should be aware about xmm to core reg conversion"
-rw-r--r-- | compiler/dex/quick/x86/int_x86.cc | 2 |
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 dcbaad9..1fe0af9 100644 --- a/compiler/dex/quick/x86/int_x86.cc +++ b/compiler/dex/quick/x86/int_x86.cc @@ -1091,6 +1091,8 @@ void X86Mir2Lir::GenLongRegOrMemOp(RegLocation rl_dest, RegLocation rl_src, X86OpCode x86op = GetOpcode(op, rl_dest, rl_src, false); if (rl_src.location == kLocPhysReg) { // Both operands are in registers. + // But we must ensure that rl_src is in pair + rl_src = EvalLocWide(rl_src, kCoreReg, true); if (rl_dest.reg.GetReg() == rl_src.reg.GetHighReg()) { // The registers are the same, so we would clobber it before the use. int temp_reg = AllocTemp(); |