Index: src/mips64/simulator-mips64.cc |
diff --git a/src/mips64/simulator-mips64.cc b/src/mips64/simulator-mips64.cc |
index 262f3c9dd389e618d38ef3cc5e95f3bc1f5d5aa2..70c06c885f4637720133fb348b123ea2f7d43044 100644 |
--- a/src/mips64/simulator-mips64.cc |
+++ b/src/mips64/simulator-mips64.cc |
@@ -2333,8 +2333,10 @@ void Simulator::SignalException(Exception e) { |
static_cast<int>(e)); |
} |
+// Min/Max template functions for Double and Single arguments. |
+ |
template <typename T> |
-T FPAbs(T a); |
+static T FPAbs(T a); |
template <> |
double FPAbs<double>(double a) { |
@@ -2347,7 +2349,7 @@ float FPAbs<float>(float a) { |
} |
template <typename T> |
-bool Simulator::FPUProcessNaNsAndZeros(T a, T b, IsMin min, T& result) { |
+static bool FPUProcessNaNsAndZeros(T a, T b, MaxMinKind kind, T& result) { |
if (std::isnan(a) && std::isnan(b)) { |
result = a; |
} else if (std::isnan(a)) { |
@@ -2356,9 +2358,9 @@ bool Simulator::FPUProcessNaNsAndZeros(T a, T b, IsMin min, T& result) { |
result = a; |
} else if (b == a) { |
// Handle -0.0 == 0.0 case. |
- // std::signbit() returns int 0 or 1 so substracting IsMin::kMax negates the |
- // result. |
- result = std::signbit(b) - static_cast<int>(min) ? b : a; |
+ // std::signbit() returns int 0 or 1 so substracting MaxMinKind::kMax |
+ // negates the result. |
+ result = std::signbit(b) - static_cast<int>(kind) ? b : a; |
} else { |
return false; |
} |
@@ -2366,9 +2368,9 @@ bool Simulator::FPUProcessNaNsAndZeros(T a, T b, IsMin min, T& result) { |
} |
template <typename T> |
-T Simulator::FPUMin(T a, T b) { |
+static T FPUMin(T a, T b) { |
T result; |
- if (FPUProcessNaNsAndZeros(a, b, IsMin::kMin, result)) { |
+ if (FPUProcessNaNsAndZeros(a, b, MaxMinKind::kMin, result)) { |
return result; |
} else { |
return b < a ? b : a; |
@@ -2376,9 +2378,9 @@ T Simulator::FPUMin(T a, T b) { |
} |
template <typename T> |
-T Simulator::FPUMax(T a, T b) { |
+static T FPUMax(T a, T b) { |
T result; |
- if (FPUProcessNaNsAndZeros(a, b, IsMin::kMax, result)) { |
+ if (FPUProcessNaNsAndZeros(a, b, MaxMinKind::kMax, result)) { |
return result; |
} else { |
return b > a ? b : a; |
@@ -2386,9 +2388,9 @@ T Simulator::FPUMax(T a, T b) { |
} |
template <typename T> |
-T Simulator::FPUMinA(T a, T b) { |
+static T FPUMinA(T a, T b) { |
T result; |
- if (!FPUProcessNaNsAndZeros(a, b, IsMin::kMin, result)) { |
+ if (!FPUProcessNaNsAndZeros(a, b, MaxMinKind::kMin, result)) { |
if (FPAbs(a) < FPAbs(b)) { |
result = a; |
} else if (FPAbs(b) < FPAbs(a)) { |
@@ -2401,9 +2403,9 @@ T Simulator::FPUMinA(T a, T b) { |
} |
template <typename T> |
-T Simulator::FPUMaxA(T a, T b) { |
+static T FPUMaxA(T a, T b) { |
T result; |
- if (!FPUProcessNaNsAndZeros(a, b, IsMin::kMin, result)) { |
+ if (!FPUProcessNaNsAndZeros(a, b, MaxMinKind::kMin, result)) { |
if (FPAbs(a) > FPAbs(b)) { |
result = a; |
} else if (FPAbs(b) > FPAbs(a)) { |