From 13ac45a8313dada6cf1d85b11198810831c88add Mon Sep 17 00:00:00 2001 From: buzbee Date: Thu, 12 Jan 2012 12:30:16 -0800 Subject: 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 --- src/compiler/codegen/arm/MethodCodegenDriver.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc') 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; -- cgit v1.2.3-59-g8ed1b