summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm/MethodCodegenDriver.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2012-01-12 12:30:16 -0800
committer buzbee <buzbee@google.com> 2012-01-12 12:32:44 -0800
commit13ac45a8313dada6cf1d85b11198810831c88add (patch)
tree2486a90fbffce59cf1ddcd832875f1f5f7b08064 /src/compiler/codegen/arm/MethodCodegenDriver.cc
parent63efec135fa63c00dd7360afb319bee875c5d5e7 (diff)
Fix invokeSuper range check (cts blocker)
The generated range check for the slow/slow path of invoke super had the operands backwards, with predictable results. With this fix, cts testing can proceed. A new slow-path testing mode will be added in an upcoming CL to exercise this path. Change-Id: I36bba5bc5484fc7aaa0aca5ad394c10ea5efd0b1
Diffstat (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc')
-rw-r--r--src/compiler/codegen/arm/MethodCodegenDriver.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 08a53bd80c..7ad974c41e 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -759,7 +759,7 @@ STATIC int nextSuperCallInsnSP(CompilationUnit* cUnit, MIR* mir,
tReg = oatAllocTemp(cUnit);
loadWordDisp(cUnit, r0, art::Array::LengthOffset().Int32Value(),
tReg);
- genRegRegCheck(cUnit, kArmCondCs, tReg, rLR, mir,
+ genRegRegCheck(cUnit, kArmCondCs, rLR, tReg, mir,
kArmThrowNoSuchMethod);
oatFreeTemp(cUnit, tReg);
}
@@ -2203,7 +2203,7 @@ STATIC void handleThrowLaunchpads(CompilationUnit *cUnit)
OFFSETOF_MEMBER(Thread, pThrowNegArraySizeFromCode);
break;
case kArmThrowNoSuchMethod:
- genRegCopy(cUnit, r0, v2);
+ genRegCopy(cUnit, r0, v1);
funcOffset =
OFFSETOF_MEMBER(Thread, pThrowNoSuchMethodFromCode);
break;