diff options
| author | Steve Kondik <shade@chemlab.org> | 2014-02-02 11:59:08 -0800 |
|---|---|---|
| committer | LorDClockaN <davor@losinj.com> | 2014-03-24 17:23:10 +0100 |
| commit | bf0129a9283f0d1e50709b9008995ffe9f241436 (patch) | |
| tree | 2bde92271cd65c917d1aa4c369f4a10c59fe3692 | |
| parent | 7abd48261950c69cd0bd543fddb52f6e22cd372f (diff) | |
vm: Enable fast multiply on perf builds too
Change-Id: I74d152ea9cfe5b15daa9a8353ca27d8afa7474d2
| -rw-r--r-- | vm/compiler/codegen/arm/ArmLIR.h | 2 | ||||
| -rw-r--r-- | vm/compiler/codegen/arm/Assemble.cpp | 2 | ||||
| -rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.cpp | 7 | ||||
| -rw-r--r-- | vm/compiler/codegen/arm/Thumb/Gen.cpp | 2 | ||||
| -rw-r--r-- | vm/compiler/codegen/arm/Thumb2/Gen.cpp | 2 |
5 files changed, 2 insertions, 13 deletions
diff --git a/vm/compiler/codegen/arm/ArmLIR.h b/vm/compiler/codegen/arm/ArmLIR.h index 49d5b2725..773662b8a 100644 --- a/vm/compiler/codegen/arm/ArmLIR.h +++ b/vm/compiler/codegen/arm/ArmLIR.h @@ -628,10 +628,8 @@ typedef enum ArmOpcode { kThumb2Dmb, /* dmb [1111001110111111100011110101] option[3-0] */ kThumb2LdrPcReln12, /* ldr rd,[pc,-#imm12] [1111100011011111] rt[15-12] imm12[11-0] */ -#ifndef WITH_QC_PERF kThumb2RsbRRR, /* rsb [111010111101] rn[19..16] [0000] rd[11..8] [0000] rm[3..0] */ -#endif kThumbUndefined, /* undefined [11011110xxxxxxxx] */ kArmLast, } ArmOpcode; diff --git a/vm/compiler/codegen/arm/Assemble.cpp b/vm/compiler/codegen/arm/Assemble.cpp index 5eab3f73f..debe39b38 100644 --- a/vm/compiler/codegen/arm/Assemble.cpp +++ b/vm/compiler/codegen/arm/Assemble.cpp @@ -881,13 +881,11 @@ ArmEncodingMap EncodingMap[kArmLast] = { kFmtUnused, -1, -1, IS_BINARY_OP | REG_DEF0 | REG_USE_PC | IS_LOAD, "ldr", "r!0d, [r15pc, -#!1d]", 2), -#ifndef WITH_QC_PERF ENCODING_MAP(kThumb2RsbRRR, 0xebd00000, /* setflags encoding */ kFmtBitBlt, 11, 8, kFmtBitBlt, 19, 16, kFmtBitBlt, 3, 0, kFmtShift, -1, -1, IS_QUAD_OP | REG_DEF0_USE12 | SETS_CCODES, "rsb", "r!0d, r!1d, r!2d!3H", 2), -#endif ENCODING_MAP(kThumbUndefined, 0xde00, kFmtUnused, -1, -1, kFmtUnused, -1, -1, kFmtUnused, -1, -1, kFmtUnused, -1, -1, NO_OPERAND, diff --git a/vm/compiler/codegen/arm/CodegenDriver.cpp b/vm/compiler/codegen/arm/CodegenDriver.cpp index 19fad894e..3fd647824 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.cpp +++ b/vm/compiler/codegen/arm/CodegenDriver.cpp @@ -2319,14 +2319,7 @@ static bool handleEasyMultiply(CompilationUnit *cUnit, } else { // Reverse subtract: (src << (shift + 1)) - src. assert(powerOfTwoMinusOne); -#ifdef WITH_QC_PERF - // TODO: rsb dst, src, src lsl#lowestSetBit(lit + 1) - int tReg = dvmCompilerAllocTemp(cUnit); - opRegRegImm(cUnit, kOpLsl, tReg, rlSrc.lowReg, lowestSetBit(lit + 1)); - opRegRegReg(cUnit, kOpSub, rlResult.lowReg, tReg, rlSrc.lowReg); -#else genMultiplyByShiftAndReverseSubtract(cUnit, rlSrc, rlResult, lowestSetBit(lit + 1)); -#endif } storeValue(cUnit, rlDest, rlResult); return true; diff --git a/vm/compiler/codegen/arm/Thumb/Gen.cpp b/vm/compiler/codegen/arm/Thumb/Gen.cpp index 52d492c32..aa11f2cc8 100644 --- a/vm/compiler/codegen/arm/Thumb/Gen.cpp +++ b/vm/compiler/codegen/arm/Thumb/Gen.cpp @@ -275,7 +275,6 @@ static void genMultiplyByTwoBitMultiplier(CompilationUnit *cUnit, opRegRegImm(cUnit, kOpMul, rlResult.lowReg, rlSrc.lowReg, lit); } -#ifndef WITH_QC_PERF static void genMultiplyByShiftAndReverseSubtract(CompilationUnit *cUnit, RegLocation rlSrc, RegLocation rlResult, int lit) { @@ -284,6 +283,7 @@ static void genMultiplyByShiftAndReverseSubtract(CompilationUnit *cUnit, opRegRegReg(cUnit, kOpSub, rlResult.lowReg, tReg, rlSrc.lowReg); } +#ifndef WITH_QC_PERF /* * Generate array load */ diff --git a/vm/compiler/codegen/arm/Thumb2/Gen.cpp b/vm/compiler/codegen/arm/Thumb2/Gen.cpp index d49f027b5..57e51a907 100644 --- a/vm/compiler/codegen/arm/Thumb2/Gen.cpp +++ b/vm/compiler/codegen/arm/Thumb2/Gen.cpp @@ -476,7 +476,6 @@ static void genMultiplyByTwoBitMultiplier(CompilationUnit *cUnit, } } -#ifndef WITH_QC_PERF static void genMultiplyByShiftAndReverseSubtract(CompilationUnit *cUnit, RegLocation rlSrc, RegLocation rlResult, int lit) { @@ -484,6 +483,7 @@ static void genMultiplyByShiftAndReverseSubtract(CompilationUnit *cUnit, encodeShift(kArmLsl, lit)); } +#ifndef WITH_QC_PERF /* * Generate array load. * For wide array access using scale, combine add with shift. |
