OSDN Git Service

x86_64: Fix InstanceofFinal
authorDmitry Petrochenko <dmitry.petrochenko@intel.com>
Mon, 30 Jun 2014 18:21:38 +0000 (01:21 +0700)
committerDmitry Petrochenko <dmitry.petrochenko@intel.com>
Sat, 5 Jul 2014 17:32:54 +0000 (00:32 +0700)
Comparison should be made using GetReg()

Change-Id: Ic5bebf680395d9b93710511db9760d0e867b38cb
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
compiler/dex/quick/x86/int_x86.cc

index 5372512..cf29e52 100755 (executable)
@@ -2321,7 +2321,7 @@ void X86Mir2Lir::GenInstanceofFinal(bool use_declaring_class, uint32_t type_idx,
 
   // For 32-bit, SETcc only works with EAX..EDX.
   RegStorage object_32reg = object.reg.Is64Bit() ? As32BitReg(object.reg) : object.reg;
-  if (result_reg == object_32reg || !IsByteRegister(result_reg)) {
+  if (result_reg.GetRegNum() == object_32reg.GetRegNum() || !IsByteRegister(result_reg)) {
     result_reg = AllocateByteRegister();
   }