aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/arm/CodegenDriver.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@android.com>2011-03-31 10:44:44 -0700
committerBen Cheng <bccheng@android.com>2011-03-31 10:44:44 -0700
commit072b5d06d406004893a998a2dd06e8ec35ebea33 (patch)
tree09dc115f9d1da483cf8b77f350fe56cc70564898 /vm/compiler/codegen/arm/CodegenDriver.c
parent6920d2c5b83f8ff0cdc8f33770cd658969dbd262 (diff)
Add missing jumbo opcodes to the self verification exclusion list
Change-Id: If38ce20b2ac30488118259e3b3bdfbc9f068e5c3
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenDriver.c')
-rw-r--r--vm/compiler/codegen/arm/CodegenDriver.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c
index 1272f9bad..fb18cff22 100644
--- a/vm/compiler/codegen/arm/CodegenDriver.c
+++ b/vm/compiler/codegen/arm/CodegenDriver.c
@@ -4143,18 +4143,29 @@ static void setupLoopEntryBlock(CompilationUnit *cUnit, BasicBlock *entry,
static bool selfVerificationPuntOps(MIR *mir)
{
DecodedInstruction *decInsn = &mir->dalvikInsn;
- Opcode op = decInsn->opcode;
/*
* All opcodes that can throw exceptions and use the
* TEMPLATE_THROW_EXCEPTION_COMMON template should be excluded in the trace
* under self-verification mode.
*/
- return (op == OP_MONITOR_ENTER || op == OP_MONITOR_EXIT ||
- op == OP_NEW_INSTANCE || op == OP_NEW_ARRAY ||
- op == OP_CHECK_CAST || op == OP_MOVE_EXCEPTION ||
- op == OP_FILL_ARRAY_DATA || op == OP_EXECUTE_INLINE ||
- op == OP_EXECUTE_INLINE_RANGE);
+ switch (decInsn->opcode) {
+ case OP_MONITOR_ENTER:
+ case OP_MONITOR_EXIT:
+ case OP_NEW_INSTANCE:
+ case OP_NEW_INSTANCE_JUMBO:
+ case OP_NEW_ARRAY:
+ case OP_NEW_ARRAY_JUMBO:
+ case OP_CHECK_CAST:
+ case OP_CHECK_CAST_JUMBO:
+ case OP_MOVE_EXCEPTION:
+ case OP_FILL_ARRAY_DATA:
+ case OP_EXECUTE_INLINE:
+ case OP_EXECUTE_INLINE_RANGE:
+ return true;
+ default:
+ return false;
+ }
}
#endif