Index: src/mips/assembler-mips.cc |
diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc |
index e629868e4edc1f570cf0fc6f654d5efdc8093f38..7e0be710aa43dc3651fdbe923d6182f7d49a5e5f 100644 |
--- a/src/mips/assembler-mips.cc |
+++ b/src/mips/assembler-mips.cc |
@@ -43,38 +43,22 @@ |
namespace v8 { |
namespace internal { |
-#ifdef DEBUG |
-bool CpuFeatures::initialized_ = false; |
-#endif |
-unsigned CpuFeatures::supported_ = 0; |
-unsigned CpuFeatures::found_by_runtime_probing_only_ = 0; |
-unsigned CpuFeatures::cross_compile_ = 0; |
- |
- |
-ExternalReference ExternalReference::cpu_features() { |
- ASSERT(CpuFeatures::initialized_); |
- return ExternalReference(&CpuFeatures::supported_); |
-} |
- |
- |
// Get the CPU features enabled by the build. For cross compilation the |
// preprocessor symbols CAN_USE_FPU_INSTRUCTIONS |
// can be defined to enable FPU instructions when building the |
// snapshot. |
-static uint64_t CpuFeaturesImpliedByCompiler() { |
- uint64_t answer = 0; |
+static unsigned CpuFeaturesImpliedByCompiler() { |
+ unsigned answer = 0; |
#ifdef CAN_USE_FPU_INSTRUCTIONS |
- answer |= static_cast<uint64_t>(1) << FPU; |
+ answer |= 1u << FPU; |
#endif // def CAN_USE_FPU_INSTRUCTIONS |
-#ifdef __mips__ |
// If the compiler is allowed to use FPU then we can use FPU too in our code |
// generation even when generating snapshots. This won't work for cross |
// compilation. |
-#if(defined(__mips_hard_float) && __mips_hard_float != 0) |
- answer |= static_cast<uint64_t>(1) << FPU; |
-#endif // defined(__mips_hard_float) && __mips_hard_float != 0 |
-#endif // def __mips__ |
+#if defined(__mips__) && defined(__mips_hard_float) && __mips_hard_float != 0 |
+ answer |= 1u << FPU; |
+#endif |
return answer; |
} |
@@ -102,43 +86,30 @@ const char* DoubleRegister::AllocationIndexToString(int index) { |
} |
-void CpuFeatures::Probe(bool serializer_enabled) { |
- unsigned standard_features = (OS::CpuFeaturesImpliedByPlatform() | |
- CpuFeaturesImpliedByCompiler()); |
- ASSERT(supported_ == 0 || |
- (supported_ & standard_features) == standard_features); |
-#ifdef DEBUG |
- initialized_ = true; |
-#endif |
- |
- // Get the features implied by the OS and the compiler settings. This is the |
- // minimal set of features which is also allowed for generated code in the |
- // snapshot. |
- supported_ |= standard_features; |
+void CpuFeatures::ProbeImpl(bool cross_compile) { |
+ supported_ |= OS::CpuFeaturesImpliedByPlatform(); |
+ supported_ |= CpuFeaturesImpliedByCompiler(); |
- if (serializer_enabled) { |
- // No probing for features if we might serialize (generate snapshot). |
- return; |
- } |
+ // Only use statically determined features for cross compile (snapshot). |
+ if (cross_compile) return; |
// If the compiler is allowed to use fpu then we can use fpu too in our |
// code generation. |
-#if !defined(__mips__) |
+#ifndef __mips__ |
// For the simulator build, use FPU. |
- supported_ |= static_cast<uint64_t>(1) << FPU; |
+ supported_ |= 1u << FPU; |
#else |
- // Probe for additional features not already known to be available. |
+ // Probe for additional features at runtime. |
CPU cpu; |
- if (cpu.has_fpu()) { |
- // This implementation also sets the FPU flags if |
- // runtime detection of FPU returns true. |
- supported_ |= static_cast<uint64_t>(1) << FPU; |
- found_by_runtime_probing_only_ |= static_cast<uint64_t>(1) << FPU; |
- } |
+ if (cpu.has_fpu()) supported_ |= 1u << FPU; |
#endif |
} |
+void CpuFeatures::PrintTarget() { } |
+void CpuFeatures::PrintFeatures() { } |
+ |
+ |
int ToNumber(Register reg) { |
ASSERT(reg.is_valid()); |
const int kNumbers[] = { |
@@ -2079,10 +2050,9 @@ void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { |
} |
if (!RelocInfo::IsNone(rinfo.rmode())) { |
// Don't record external references unless the heap will be serialized. |
- if (rmode == RelocInfo::EXTERNAL_REFERENCE) { |
- if (!Serializer::enabled(isolate()) && !emit_debug_code()) { |
- return; |
- } |
+ if (rmode == RelocInfo::EXTERNAL_REFERENCE && |
+ !serializer_enabled() && !emit_debug_code()) { |
+ return; |
} |
ASSERT(buffer_space() >= kMaxRelocSize); // Too late to grow buffer here. |
if (rmode == RelocInfo::CODE_TARGET_WITH_ID) { |