Clean up intrinsic Math.abs(float/double).
Don't load 0x7fffffff into register.
Change-Id: I0197f9f3ad33db1f6eb09a9b4113299c00f500e3
diff --git a/compiler/dex/quick/gen_invoke.cc b/compiler/dex/quick/gen_invoke.cc
index 55d50ae..e3dc554 100644
--- a/compiler/dex/quick/gen_invoke.cc
+++ b/compiler/dex/quick/gen_invoke.cc
@@ -1208,10 +1208,7 @@
rl_src = LoadValue(rl_src, kCoreReg);
RegLocation rl_dest = InlineTarget(info);
RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
- int signMask = AllocTemp();
- LoadConstant(signMask, 0x7fffffff);
- OpRegRegReg(kOpAnd, rl_result.reg.GetReg(), rl_src.reg.GetReg(), signMask);
- FreeTemp(signMask);
+ OpRegRegImm(kOpAnd, rl_result.reg.GetReg(), rl_src.reg.GetReg(), 0x7fffffff);
StoreValue(rl_dest, rl_result);
return true;
}
@@ -1226,12 +1223,7 @@
RegLocation rl_dest = InlineTargetWide(info);
RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true);
OpRegCopyWide(rl_result.reg.GetReg(), rl_result.reg.GetHighReg(), rl_src.reg.GetReg(), rl_src.reg.GetHighReg());
- FreeTemp(rl_src.reg.GetReg());
- FreeTemp(rl_src.reg.GetHighReg());
- int signMask = AllocTemp();
- LoadConstant(signMask, 0x7fffffff);
- OpRegReg(kOpAnd, rl_result.reg.GetHighReg(), signMask);
- FreeTemp(signMask);
+ OpRegImm(kOpAnd, rl_result.reg.GetHighReg(), 0x7fffffff);
StoreValueWide(rl_dest, rl_result);
return true;
}