From 0c7f26d54ddb70dbc60aaaa6a6e9f011e402018f Mon Sep 17 00:00:00 2001 From: buzbee Date: Wed, 7 Sep 2011 12:28:51 -0700 Subject: Fixes for register promotion; enable fast path Had an off-by-one error in the range argument loading (only mattered when register promotion is enabled - for range args we do a memory copy and must ensure that all promoted values are flushed to memory before the copy. Also reworked and removed some asserts for sitations that are legal now that we're promoting. Enabled fast path code to exercise it a bit. Change-Id: Id1acb3dad01d5d1077661150e98e51fd4243b6f1 --- 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 96f54237c9..9c87659be8 100644 --- a/src/compiler/codegen/arm/MethodCodegenDriver.cc +++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#define FORCE_SLOW 1 +#define FORCE_SLOW 0 static const RegLocation badLoc = {kLocDalvikFrame, 0, 0, INVALID_REG, INVALID_REG, INVALID_SREG, 0, @@ -804,7 +804,7 @@ static int genDalvikArgsRange(CompilationUnit* cUnit, MIR* mir, * frame backing storage. */ // Scan the rest of the args - if in physReg flush to memory - for (int i = 4; i < numArgs; i++) { + for (int i = 3; i < numArgs; i++) { RegLocation loc = oatGetRawSrc(cUnit, mir, i); if (loc.wide) { loc = oatUpdateLocWide(cUnit, loc); -- cgit v1.2.3-59-g8ed1b