diff options
Diffstat (limited to 'mozilla-1321521.patch')
-rw-r--r-- | mozilla-1321521.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/mozilla-1321521.patch b/mozilla-1321521.patch new file mode 100644 index 0000000..48ec355 --- /dev/null +++ b/mozilla-1321521.patch @@ -0,0 +1,62 @@ + +# HG changeset patch +# User Lars T Hansen <lhansen@mozilla.com> +# Date 1485504866 -3600 +# Node ID 2c924fb664c18fb3c17bdbf6fc4d808b9107b87a +# Parent 505e39fbc5ed9857ba12c1c12608fc1cca5c43be +Bug 1321521 - register set adjustments for 'none' platform, r=me + +diff --git a/js/src/jit/none/Architecture-none.h b/js/src/jit/none/Architecture-none.h +--- a/js/src/jit/none/Architecture-none.h ++++ b/js/src/jit/none/Architecture-none.h +@@ -2,16 +2,18 @@ + * vim: set ts=8 sts=4 et sw=4 tw=99: + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #ifndef jit_none_Architecture_none_h + #define jit_none_Architecture_none_h + ++#include "jit/shared/Architecture-shared.h" ++ + // JitSpewer.h is included through MacroAssembler implementations for other + // platforms, so include it here to avoid inadvertent build bustage. + #include "jit/JitSpewer.h" + + namespace js { + namespace jit { + + static const bool SupportsSimd = false; +@@ -126,16 +128,30 @@ struct FloatRegister + bool aliases(FloatRegister) const { MOZ_CRASH(); } + uint32_t numAliased() const { MOZ_CRASH(); } + void aliased(uint32_t, FloatRegister*) { MOZ_CRASH(); } + bool equiv(FloatRegister) const { MOZ_CRASH(); } + uint32_t size() const { MOZ_CRASH(); } + uint32_t numAlignedAliased() const { MOZ_CRASH(); } + void alignedAliased(uint32_t, FloatRegister*) { MOZ_CRASH(); } + SetType alignedOrDominatedAliasedSet() const { MOZ_CRASH(); } ++ ++ static constexpr RegTypeName DefaultType = RegTypeName::Float64; ++ ++ template <RegTypeName = DefaultType> ++ static SetType LiveAsIndexableSet(SetType s) { ++ return SetType(0); ++ } ++ ++ template <RegTypeName Name = DefaultType> ++ static SetType AllocatableAsIndexableSet(SetType s) { ++ static_assert(Name != RegTypeName::Any, "Allocatable set are not iterable"); ++ return SetType(0); ++ } ++ + template <typename T> static T ReduceSetForPush(T) { MOZ_CRASH(); } + uint32_t getRegisterDumpOffsetInBytes() { MOZ_CRASH(); } + static uint32_t SetSize(SetType x) { MOZ_CRASH(); } + static Code FromName(const char* name) { MOZ_CRASH(); } + + // This is used in static initializers, so produce a bogus value instead of crashing. + static uint32_t GetPushSizeInBytes(const TypedRegisterSet<FloatRegister>&) { return 0; } + }; + |