summaryrefslogtreecommitdiff
path: root/compiler/optimizing/intrinsics_mips.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2018-01-19 14:50:10 +0000
committer Vladimir Marko <vmarko@google.com> 2018-01-22 18:35:16 +0000
commit4d17987da58d9411adbed1a18203d76d6119612d (patch)
treef2953a0eb3ebc3f8533d22c14f4a09d7f0d4168d /compiler/optimizing/intrinsics_mips.cc
parente57043081e6b091a9fd23a84043373148ae72f1f (diff)
ART: Add entrypoint and intrinsic for Math.pow().
MathBenchmarks.java#timePow results on taimen's little cores fixed at frequency 1401600 with forced JIT compilation: - before: - X32: 356.33 (@FastNative), 315.39 (@CriticalNative) - X64: 357.31 (@FastNative), 315.37 (@CriticalNative) - after (LICM defeats the benchmark): - X32: 2.88 - X64: 2.87 - after but with kAllSideEffects to prevent LICM: - X32: 275.42 - X64: 275.67 Test: Rely on TreeHugger. Bug: 70727450 Change-Id: Iaa31f70acabbd57c163cfeafe02eed67c1348861
Diffstat (limited to 'compiler/optimizing/intrinsics_mips.cc')
-rw-r--r--compiler/optimizing/intrinsics_mips.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_mips.cc b/compiler/optimizing/intrinsics_mips.cc
index 113c9de5a2..cafa5228d9 100644
--- a/compiler/optimizing/intrinsics_mips.cc
+++ b/compiler/optimizing/intrinsics_mips.cc
@@ -2835,6 +2835,15 @@ void IntrinsicCodeGeneratorMIPS::VisitMathAtan2(HInvoke* invoke) {
GenFPFPToFPCall(invoke, codegen_, kQuickAtan2);
}
+// static double java.lang.Math.pow(double y, double x)
+void IntrinsicLocationsBuilderMIPS::VisitMathPow(HInvoke* invoke) {
+ CreateFPFPToFPCallLocations(allocator_, invoke);
+}
+
+void IntrinsicCodeGeneratorMIPS::VisitMathPow(HInvoke* invoke) {
+ GenFPFPToFPCall(invoke, codegen_, kQuickPow);
+}
+
// static double java.lang.Math.cbrt(double a)
void IntrinsicLocationsBuilderMIPS::VisitMathCbrt(HInvoke* invoke) {
CreateFPToFPCallLocations(allocator_, invoke);