aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/arm/CodegenDriver.c
diff options
context:
space:
mode:
authorBill Buzbee <buzbee@google.com>2010-12-27 09:31:21 -0800
committerBill Buzbee <buzbee@google.com>2010-12-27 09:31:21 -0800
commita85893356ac4d86ef7d7dd18807d7bef95d7dddb (patch)
tree8169c48e85a9d98c795d2404d14002aca9e22326 /vm/compiler/codegen/arm/CodegenDriver.c
parent9679fddfac3aad7f4f7407ae4f285d71140f6168 (diff)
[Jit] Fix for 3311468 Maps crashed at handleFmt...
Change https://android-git.corp.google.com/g/#change,86452 eliminated unused chaining cells for direct JNI calls. However, a code path in CodegenDriver.c assumed all similar invokes would have such cells. Slightly re-arranged the to avoid relying on the existance of the cell in cases in which it isn't needed. Change-Id: Ifc28acf559455a292b4b915ef1302085557e1d81
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenDriver.c')
-rw-r--r--vm/compiler/codegen/arm/CodegenDriver.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c
index 98236b6ba..273cef15a 100644
--- a/vm/compiler/codegen/arm/CodegenDriver.c
+++ b/vm/compiler/codegen/arm/CodegenDriver.c
@@ -3127,8 +3127,6 @@ static bool handleFmt35c_3rc(CompilationUnit *cUnit, MIR *mir, BasicBlock *bb,
static bool handleFmt35ms_3rms(CompilationUnit *cUnit, MIR *mir,
BasicBlock *bb, ArmLIR *labelList)
{
- ArmLIR *retChainingCell = &labelList[bb->fallThrough->id];
- ArmLIR *predChainingCell = &labelList[bb->taken->id];
ArmLIR *pcrLabel = NULL;
/* An invoke with the MIR_INLINED is effectively a no-op */
@@ -3141,6 +3139,8 @@ static bool handleFmt35ms_3rms(CompilationUnit *cUnit, MIR *mir,
case OP_INVOKE_VIRTUAL_QUICK_RANGE:
case OP_INVOKE_VIRTUAL_QUICK: {
int methodIndex = dInsn->vB;
+ ArmLIR *retChainingCell = &labelList[bb->fallThrough->id];
+ ArmLIR *predChainingCell = &labelList[bb->taken->id];
/*
* If the invoke has non-null misPredBranchOver, we need to generate