aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/arm/RallocUtil.c
diff options
context:
space:
mode:
authorBill Buzbee <buzbee@google.com>2010-03-06 23:30:57 -0800
committerBill Buzbee <buzbee@google.com>2010-03-07 08:24:00 -0800
commitfc519dc8f4444f6d93806ec15ce7445b322070fd (patch)
tree7128bbc741b5125cbe85300e1cd264ab3aca6bde /vm/compiler/codegen/arm/RallocUtil.c
parent164d1279b67ec13061e473cb453b1ff24189e0e0 (diff)
Jit: Make most Jit compile failures non-fatal; just abort offending translation
Issue 2175597 Jit compile failures should abort translation, but not the VM Added new dvmCompileAbort() to replace uses of dvmAbort() when something goes wrong during the compliation of a trace. In that case, we'll abort the translation and set it's head to the interpret-only "translation".
Diffstat (limited to 'vm/compiler/codegen/arm/RallocUtil.c')
-rw-r--r--vm/compiler/codegen/arm/RallocUtil.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/vm/compiler/codegen/arm/RallocUtil.c b/vm/compiler/codegen/arm/RallocUtil.c
index 131df2c7b..6d83e73e0 100644
--- a/vm/compiler/codegen/arm/RallocUtil.c
+++ b/vm/compiler/codegen/arm/RallocUtil.c
@@ -123,7 +123,7 @@ static RegisterInfo *getRegInfo(CompilationUnit *cUnit, int reg)
}
}
LOGE("Tried to get info on a non-existant temp: r%d",reg);
- dvmAbort(); // FIXME: abort translation intead of vm
+ dvmCompilerAbort(cUnit);
return NULL;
}
@@ -249,7 +249,7 @@ static int allocTempBody(CompilationUnit *cUnit, RegisterInfo *p, int numTemps,
}
if (required) {
LOGE("No free temp registers");
- dvmAbort(); // FIXME: abort translation instead of vm
+ dvmCompilerAbort(cUnit);
}
return -1; // No register available
}
@@ -298,7 +298,7 @@ extern int dvmCompilerAllocTempDouble(CompilationUnit *cUnit)
next += 2;
}
LOGE("No free temp registers");
- dvmAbort(); // FIXME: abort translation instead of vm
+ dvmCompilerAbort(cUnit);
return -1;
}
@@ -359,7 +359,7 @@ static RegisterInfo *allocLive(CompilationUnit *cUnit, int sReg,
break;
default:
LOGE("Invalid register type");
- dvmAbort(); //FIXME: abort translation instead of vm
+ dvmCompilerAbort(cUnit);
}
return res;
}
@@ -386,7 +386,7 @@ extern void dvmCompilerFreeTemp(CompilationUnit *cUnit, int reg)
}
}
LOGE("Tried to free a non-existant temp: r%d",reg);
- dvmAbort(); // FIXME: abort translation instead of vm
+ dvmCompilerAbort(cUnit);
}
/*
@@ -460,7 +460,7 @@ extern void dvmCompilerLockTemp(CompilationUnit *cUnit, int reg)
}
}
LOGE("Tried to lock a non-existant temp: r%d",reg);
- dvmAbort(); // FIXME: abort translation instead of vm
+ dvmCompilerAbort(cUnit);
}
static void lockArgRegs(CompilationUnit *cUnit)