diff options
| author | 2012-01-12 12:30:16 -0800 | |
|---|---|---|
| committer | 2012-01-12 12:32:44 -0800 | |
| commit | 13ac45a8313dada6cf1d85b11198810831c88add (patch) | |
| tree | 2486a90fbffce59cf1ddcd832875f1f5f7b08064 /src/compiler/codegen/arm/MethodCodegenDriver.cc | |
| parent | 63efec135fa63c00dd7360afb319bee875c5d5e7 (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.cc | 4 |
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; |