OSDN Git Service

ART: X86: GenLongArith should handle overlapped VRs
authorAlexei Zavjalov <alexei.zavjalov@intel.com>
Wed, 8 Oct 2014 08:51:59 +0000 (15:51 +0700)
committerbuzbee <buzbee@google.com>
Thu, 9 Oct 2014 17:14:58 +0000 (10:14 -0700)
commitd8c3e3608a7b47e82186e4f8118541ef06d9eab2
tree5e3e80e1fc4aa35fb829e869ef10895aadd97ec5
parent9e878d50567f624094f3c4940ac3aedbc5eff3b9
ART: X86: GenLongArith should handle overlapped VRs

In a case, when src and dest VRs are overlapped when we called
GenLongArith it may cause the incorrect use of regs.

The solution is to map src to an physical reg and work with this
reg instead of mem.

Renamed BadOverlap() to PartiallyIntersects() for consistency.

Change-Id: Ia3fc7f741f0a92556e1b2a1b084506662ef04c9d
Signed-off-by: Katkov, Serguei I <serguei.i.katkov@intel.com>
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
compiler/dex/quick/arm/int_arm.cc
compiler/dex/quick/codegen_util.cc
compiler/dex/quick/mir_to_lir.h
compiler/dex/quick/x86/int_x86.cc