diff --git a/js/src/jit/MIROps.yaml b/js/src/jit/MIROps.yaml index d6075def524c..082c85954ef5 100644 --- a/js/src/jit/MIROps.yaml +++ b/js/src/jit/MIROps.yaml @@ -1260,7 +1260,6 @@ lastIndex: Int32 result_type: Value possibly_calls: true - can_recover: true # Note: this instruction writes to cx->regExpSearcherLastLimit. # See also MRegExpSearcherLastLimit. @@ -1271,7 +1270,6 @@ lastIndex: Int32 result_type: Int32 possibly_calls: true - can_recover: false # This instruction loads cx->regExpSearcherLastLimit. We don't have a # specialized alias set for this so just use the default alias set similar to @@ -1286,7 +1284,6 @@ string: String result_type: Value possibly_calls: true - can_recover: false - name: RegExpExecTest operands: @@ -1294,7 +1291,6 @@ string: String result_type: Boolean possibly_calls: true - can_recover: false - name: RegExpHasCaptureGroups operands: diff --git a/js/src/jit/Recover.cpp b/js/src/jit/Recover.cpp index 4c1ff56436b2..b7753290833f 100644 --- a/js/src/jit/Recover.cpp +++ b/js/src/jit/Recover.cpp @@ -11,7 +11,6 @@ #include "jsmath.h" #include "builtin/Object.h" -#include "builtin/RegExp.h" #include "builtin/String.h" #include "jit/AtomicOperations.h" #include "jit/Bailouts.h" @@ -1447,30 +1446,6 @@ bool RNaNToZero::recover(JSContext* cx, SnapshotIterator& iter) const { return true; } -bool MRegExpMatcher::writeRecoverData(CompactBufferWriter& writer) const { - MOZ_ASSERT(canRecoverOnBailout()); - writer.writeUnsigned(uint32_t(RInstruction::Recover_RegExpMatcher)); - return true; -} - -RRegExpMatcher::RRegExpMatcher(CompactBufferReader& reader) {} - -bool RRegExpMatcher::recover(JSContext* cx, SnapshotIterator& iter) const { - RootedObject regexp(cx, iter.readObject()); - RootedString input(cx, iter.readString()); - - // Int32 because |lastIndex| is computed from transpiled self-hosted call. - int32_t lastIndex = iter.readInt32(); - - RootedValue result(cx); - if (!RegExpMatcherRaw(cx, regexp, input, lastIndex, nullptr, &result)) { - return false; - } - - iter.storeInstructionResult(result); - return true; -} - bool MTypeOf::writeRecoverData(CompactBufferWriter& writer) const { MOZ_ASSERT(canRecoverOnBailout()); writer.writeUnsigned(uint32_t(RInstruction::Recover_TypeOf)); diff --git a/js/src/jit/Recover.h b/js/src/jit/Recover.h index 878204de83d5..b64b24eb0076 100644 --- a/js/src/jit/Recover.h +++ b/js/src/jit/Recover.h @@ -109,7 +109,6 @@ namespace jit { _(Random) \ _(StringSplit) \ _(NaNToZero) \ - _(RegExpMatcher) \ _(StringReplace) \ _(Substr) \ _(TypeOf) \ @@ -685,14 +684,6 @@ class RNaNToZero final : public RInstruction { bool recover(JSContext* cx, SnapshotIterator& iter) const override; }; -class RRegExpMatcher final : public RInstruction { - public: - RINSTRUCTION_HEADER_NUM_OP_(RegExpMatcher, 3) - - [[nodiscard]] bool recover(JSContext* cx, - SnapshotIterator& iter) const override; -}; - class RStringReplace final : public RInstruction { private: bool isFlatReplacement_;