diff --git a/js/src/jit/ABIFunctionList-inl.h b/js/src/jit/ABIFunctionList-inl.h index 190cfb636557..ea7ef3f79b41 100644 --- a/js/src/jit/ABIFunctionList-inl.h +++ b/js/src/jit/ABIFunctionList-inl.h @@ -28,6 +28,7 @@ #include "js/Conversions.h" // JS::ToInt32 #include "vm/ArgumentsObject.h" // js::ArgumentsObject::finishForIonPure +#include "vm/RegExpShared.h" // js::ExecuteRegExpAtomRaw #include "vm/TraceLogging.h" // js::TraceLogStartEventPrivate, // js::TraceLogStartEvent, // js::TraceLogStopEventPrivate @@ -57,6 +58,7 @@ namespace jit { _(js::ecmaAtan2) \ _(js::ecmaHypot) \ _(js::ecmaPow) \ + _(js::ExecuteRegExpAtomRaw) \ _(js::hypot3) \ _(js::hypot4) \ _(js::irregexp::CaseInsensitiveCompareNonUnicode) \ diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp index 5a2084a16945..3a80037f799e 100644 --- a/js/src/jit/CodeGenerator.cpp +++ b/js/src/jit/CodeGenerator.cpp @@ -2264,12 +2264,15 @@ static bool PrepareAndExecuteRegExp(JSContext* cx, MacroAssembler& masm, masm.computeEffectiveAddress(matchPairsAddress, temp3); masm.PushRegsInMask(regsToSave); + using Fn = RegExpRunStatus (*)(RegExpShared * re, JSLinearString * input, + size_t start, MatchPairs * matchPairs); masm.setupUnalignedABICall(temp2); masm.passABIArg(regexpReg); masm.passABIArg(input); masm.passABIArg(lastIndex); masm.passABIArg(temp3); - masm.callWithABI(JS_FUNC_TO_DATA_PTR(void*, ExecuteRegExpAtomRaw)); + masm.callWithABI(); + masm.storeCallInt32Result(temp1); masm.PopRegsInMask(regsToSave);