Version 3.22.0
LiveEdit to mark more closure functions for re-instantiation when scope layout changes. (issue 2872)
Made bounds check elimination iterative instead of recursive. (Chromium issue 289706)
Turned on i18n support by default.
Set the proper instance-type on HAllocate in BuildFastLiteral. (Chromium issue 284577)
Performance and stability improvements on all platforms.
git-svn-id: http://v8.googlecode.com/svn/trunk@16891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/assembler.cc b/src/assembler.cc
index fbff62d..6581aa1 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -207,6 +207,26 @@
// -----------------------------------------------------------------------------
+// Implementation of PlatformFeatureScope
+
+PlatformFeatureScope::PlatformFeatureScope(CpuFeature f)
+ : old_supported_(CpuFeatures::supported_),
+ old_found_by_runtime_probing_only_(
+ CpuFeatures::found_by_runtime_probing_only_) {
+ uint64_t mask = static_cast<uint64_t>(1) << f;
+ CpuFeatures::supported_ |= mask;
+ CpuFeatures::found_by_runtime_probing_only_ &= ~mask;
+}
+
+
+PlatformFeatureScope::~PlatformFeatureScope() {
+ CpuFeatures::supported_ = old_supported_;
+ CpuFeatures::found_by_runtime_probing_only_ =
+ old_found_by_runtime_probing_only_;
+}
+
+
+// -----------------------------------------------------------------------------
// Implementation of Label
int Label::pos() const {