summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm/MethodCodegenDriver.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-09-07 12:28:51 -0700
committer buzbee <buzbee@google.com> 2011-09-07 12:28:51 -0700
commit0c7f26d54ddb70dbc60aaaa6a6e9f011e402018f (patch)
treeebe5eb3c9f97386ff93b5b79f434d0de687f0c65 /src/compiler/codegen/arm/MethodCodegenDriver.cc
parent109bd6a38d0cd7c4b7797a9f2db8324c797d1368 (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.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 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);