summaryrefslogtreecommitdiffstats
path: root/vm/compiler/codegen/arm/Thumb/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vm/compiler/codegen/arm/Thumb/Gen.cpp')
-rw-r--r--vm/compiler/codegen/arm/Thumb/Gen.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/vm/compiler/codegen/arm/Thumb/Gen.cpp b/vm/compiler/codegen/arm/Thumb/Gen.cpp
index abc4420f7..622f47eff 100644
--- a/vm/compiler/codegen/arm/Thumb/Gen.cpp
+++ b/vm/compiler/codegen/arm/Thumb/Gen.cpp
@@ -274,3 +274,11 @@ static void genMultiplyByTwoBitMultiplier(CompilationUnit *cUnit,
// to do a regular multiply.
opRegRegImm(cUnit, kOpMul, rlResult.lowReg, rlSrc.lowReg, lit);
}
+
+static void genMultiplyByShiftAndReverseSubtract(CompilationUnit *cUnit,
+ RegLocation rlSrc, RegLocation rlResult, int lit)
+{
+ int tReg = dvmCompilerAllocTemp(cUnit);
+ opRegRegImm(cUnit, kOpLsl, tReg, rlSrc.lowReg, lit);
+ opRegRegReg(cUnit, kOpSub, rlResult.lowReg, tReg, rlSrc.lowReg);
+}