diff options
| author | 2011-09-07 12:28:51 -0700 | |
|---|---|---|
| committer | 2011-09-07 12:28:51 -0700 | |
| commit | 0c7f26d54ddb70dbc60aaaa6a6e9f011e402018f (patch) | |
| tree | ebe5eb3c9f97386ff93b5b79f434d0de687f0c65 /src/compiler/codegen/arm/MethodCodegenDriver.cc | |
| parent | 109bd6a38d0cd7c4b7797a9f2db8324c797d1368 (diff) | |
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
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 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); |