diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/compiler/Dataflow.cc | 10 | ||||
| -rw-r--r-- | src/compiler/codegen/MethodCodegenDriver.cc | 6 | ||||
| -rw-r--r-- | src/compiler/codegen/arm/Thumb2/Gen.cc | 7 | 
3 files changed, 13 insertions, 10 deletions
| diff --git a/src/compiler/Dataflow.cc b/src/compiler/Dataflow.cc index 5f632c061d..bea5ef07d9 100644 --- a/src/compiler/Dataflow.cc +++ b/src/compiler/Dataflow.cc @@ -1869,19 +1869,19 @@ bool basicBlockOpt(CompilationUnit* cUnit, BasicBlock* bb)                              ccode = kCondEq;                              break;                          case Instruction::IF_NEZ: -                           // ccode = kCondNe; +                            ccode = kCondNe;                              break;                          case Instruction::IF_LTZ: -                            // ccode = kCondLt; +                            ccode = kCondLt;                              break;                          case Instruction::IF_GEZ: -                            // ccode = kCondGe; +                            ccode = kCondGe;                              break;                          case Instruction::IF_GTZ: -                            // ccode = kCondGt; +                            ccode = kCondGt;                              break;                          case Instruction::IF_LEZ: -                            // ccode = kCondLe; +                            ccode = kCondLe;                              break;                          default:                              break; diff --git a/src/compiler/codegen/MethodCodegenDriver.cc b/src/compiler/codegen/MethodCodegenDriver.cc index 1dc11dac70..fb9bdc9227 100644 --- a/src/compiler/codegen/MethodCodegenDriver.cc +++ b/src/compiler/codegen/MethodCodegenDriver.cc @@ -737,9 +737,6 @@ bool compileDalvikInstruction(CompilationUnit* cUnit, MIR* mir,  const char* extendedMIROpNames[kMirOpLast - kMirOpFirst] = {      "kMirOpPhi", -    "kMirOpNullNRangeUpCheck", -    "kMirOpNullNRangeDownCheck", -    "kMirOpLowerBound",      "kMirOpCopy",      "kMirFusedCmplFloat",      "kMirFusedCmpgFloat", @@ -747,6 +744,9 @@ const char* extendedMIROpNames[kMirOpLast - kMirOpFirst] = {      "kMirFusedCmpgDouble",      "kMirFusedCmpLong",      "kMirNop", +    "kMirOpNullNRangeUpCheck", +    "kMirOpNullNRangeDownCheck", +    "kMirOpLowerBound",  };  /* Extended MIR instructions like PHI */ diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc index ea02ca99ac..f48540329e 100644 --- a/src/compiler/codegen/arm/Thumb2/Gen.cc +++ b/src/compiler/codegen/arm/Thumb2/Gen.cc @@ -658,12 +658,12 @@ void genFusedLongCmpBranch(CompilationUnit* cUnit, BasicBlock* bb, MIR* mir)  {      LIR* labelList = (LIR*)cUnit->blockLabelList;      LIR* taken = &labelList[bb->taken->id]; +    LIR* notTaken = &labelList[bb->fallThrough->id];      RegLocation rlSrc1 = oatGetSrcWide(cUnit, mir, 0, 1);      RegLocation rlSrc2 = oatGetSrcWide(cUnit, mir, 2, 3);      rlSrc1 = loadValueWide(cUnit, rlSrc1, kCoreReg);      rlSrc2 = loadValueWide(cUnit, rlSrc2, kCoreReg);      ConditionCode ccode = static_cast<ConditionCode>(mir->dalvikInsn.arg[0]); -    LIR* notTaken = rawLIR(cUnit, mir->offset, kPseudoTargetLabel);      opRegReg(cUnit, kOpCmp, rlSrc1.highReg, rlSrc2.highReg);      switch(ccode) {          case kCondEq: @@ -675,25 +675,28 @@ void genFusedLongCmpBranch(CompilationUnit* cUnit, BasicBlock* bb, MIR* mir)          case kCondLt:              opCondBranch(cUnit, kCondLt, taken);              opCondBranch(cUnit, kCondGt, notTaken); +            ccode = kCondCc;              break;          case kCondLe:              opCondBranch(cUnit, kCondLt, taken);              opCondBranch(cUnit, kCondGt, notTaken); +            ccode = kCondLs;              break;          case kCondGt:              opCondBranch(cUnit, kCondGt, taken);              opCondBranch(cUnit, kCondLt, notTaken); +            ccode = kCondHi;              break;          case kCondGe:              opCondBranch(cUnit, kCondGt, taken);              opCondBranch(cUnit, kCondLt, notTaken); +            ccode = kCondCs;              break;          default:              LOG(FATAL) << "Unexpected ccode: " << (int)ccode;      }      opRegReg(cUnit, kOpCmp, rlSrc1.lowReg, rlSrc2.lowReg);      opCondBranch(cUnit, ccode, taken); -    oatAppendLIR(cUnit, notTaken);  }  /* |