OSDN Git Service

JIT: Fix for 2898397 assert in JIT (chain cell offset)
authorbuzbee <buzbee@google.com>
Thu, 5 Aug 2010 23:34:36 +0000 (16:34 -0700)
committerbuzbee <buzbee@google.com>
Fri, 6 Aug 2010 16:06:46 +0000 (09:06 -0700)
My previous change to allow for lightweight assembler retries neglected
to restore a sanity check cookie when re-assembling without fully rebuilding
the trace.

Change-Id: Ief7eb76263e272b9cd79345f8344bd35926f5b10

vm/compiler/codegen/arm/Assemble.c

index 94e2d1c..b1dbcf6 100644 (file)
@@ -1305,6 +1305,8 @@ void dvmCompilerAssembleLIR(CompilationUnit *cUnit, JitTranslationInfo *info)
             break;
         case kRetryAll:
             if (cUnit->assemblerRetries < MAX_ASSEMBLER_RETRIES) {
+                /* Restore pristine chain cell marker on retry */
+                chainCellOffsetLIR->operands[0] = CHAIN_CELL_OFFSET_TAG;
                 return;
             }
             /* Too many retries - reset and try cutting the trace in half */