Skip to content

Commit

Permalink
Unreviewed, reverting 278366@main (fc1560b)
Browse files Browse the repository at this point in the history
  • Loading branch information
Constellation committed May 4, 2024
1 parent 8251b5c commit b25db3d
Show file tree
Hide file tree
Showing 66 changed files with 3,120 additions and 3,676 deletions.
1 change: 0 additions & 1 deletion Source/JavaScriptCore/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -878,7 +878,6 @@ set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
jit/JITOperations.h
jit/JITStubRoutine.h
jit/JITThunks.h
jit/OperationResult.h
jit/PCToCodeOriginMap.h
jit/PolymorphicCallStubRoutine.h
jit/Reg.h
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1028,7 +1028,6 @@
535557141D9D9EA5006D583B /* WasmMemory.h in Headers */ = {isa = PBXBuildFile; fileRef = 535557131D9D9EA5006D583B /* WasmMemory.h */; settings = {ATTRIBUTES = (Private, ); }; };
535C24611F78928E006EC40E /* create_regex_tables in Headers */ = {isa = PBXBuildFile; fileRef = A718F8211178EB4B002465A7 /* create_regex_tables */; };
535C246C1F7A1778006EC40E /* UnifiedSource136.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 535C246B1F7A1777006EC40E /* UnifiedSource136.cpp */; };
535EC0972BCEF71900CCC5F7 /* OperationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 535EC0962BCEF71900CCC5F7 /* OperationResult.h */; settings = {ATTRIBUTES = (Private, ); }; };
53663FDA23562F96005EA68C /* BytecodeIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 53663FD923562F90005EA68C /* BytecodeIndex.h */; settings = {ATTRIBUTES = (Private, ); }; };
536B310C1F71C5990037FC33 /* UnifiedSource119.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 536B30871F71C5380037FC33 /* UnifiedSource119.cpp */; };
536B310D1F71C5990037FC33 /* UnifiedSource125.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 536B30881F71C5380037FC33 /* UnifiedSource125.cpp */; };
Expand Down Expand Up @@ -4084,7 +4083,6 @@
535557151D9DFA32006D583B /* WasmMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WasmMemory.cpp; sourceTree = "<group>"; };
535C246B1F7A1777006EC40E /* UnifiedSource136.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource136.cpp; path = "DerivedSources/JavaScriptCore/unified-sources/UnifiedSource136.cpp"; sourceTree = BUILT_PRODUCTS_DIR; };
535E08C9225460AB00DF00CA /* postprocess-header-rule */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "postprocess-header-rule"; sourceTree = "<group>"; };
535EC0962BCEF71900CCC5F7 /* OperationResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OperationResult.h; sourceTree = "<group>"; };
5360DABB2356ADCA003F6AB8 /* BytecodeIndex.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = BytecodeIndex.cpp; sourceTree = "<group>"; };
53663FD923562F90005EA68C /* BytecodeIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeIndex.h; sourceTree = "<group>"; };
53696E5720A3A70200D7E01E /* BytecodeStructs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeStructs.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -6916,7 +6914,6 @@
726B91AC26581653008E6F82 /* JITWorklistThread.cpp */,
726B91A826581652008E6F82 /* JITWorklistThread.h */,
A76C51741182748D00715B05 /* JSInterfaceJIT.h */,
535EC0962BCEF71900CCC5F7 /* OperationResult.h */,
792CB3471C4EED5C00D13AF3 /* PCToCodeOriginMap.cpp */,
792CB3481C4EED5C00D13AF3 /* PCToCodeOriginMap.h */,
0FE834151A6EF97B00D04847 /* PolymorphicCallStubRoutine.cpp */,
Expand Down Expand Up @@ -11478,7 +11475,6 @@
14A4680D216FA56A000D2B1A /* OpcodeSize.h in Headers */,
0F2BDC2C151FDE9100CD8910 /* Operands.h in Headers */,
A70447EA17A0BD4600F5898E /* OperandsInlines.h in Headers */,
535EC0972BCEF71900CCC5F7 /* OperationResult.h in Headers */,
BC18C4480E16F5CD00B34460 /* Operations.h in Headers */,
0FE228ED1436AB2700196C48 /* Options.h in Headers */,
FE3842332324D51B009DD445 /* OptionsList.h in Headers */,
Expand Down
5 changes: 0 additions & 5 deletions Source/JavaScriptCore/assembler/MacroAssembler.h
Original file line number Diff line number Diff line change
Expand Up @@ -936,11 +936,6 @@ class MacroAssembler : public MacroAssemblerBase {
return branchTest32(cond, address, mask);
}

Jump branchTestPtr(ResultCondition cond, AbsoluteAddress address, TrustedImm32 mask = TrustedImm32(-1))
{
return branchTest32(cond, address, mask);
}

Jump branchAddPtr(ResultCondition cond, RegisterID src, RegisterID dest)
{
return branchAdd32(cond, src, dest);
Expand Down
5 changes: 2 additions & 3 deletions Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#include "MacroAssembler.h"

#include "JSCPtrTag.h"
#include "OperationResult.h"
#include "ProbeContext.h"
#include <wtf/InlineASM.h>
#include <wtf/TZoneMallocInlines.h>
Expand Down Expand Up @@ -61,9 +60,9 @@ namespace JSC {

WTF_MAKE_TZONE_ALLOCATED_IMPL(MacroAssemblerARM64);

JSC_DECLARE_NOEXCEPT_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_ANNOTATE_JIT_OPERATION_PROBE(ctiMasmProbeTrampoline);
JSC_DECLARE_NOEXCEPT_JIT_OPERATION(ctiMasmProbeTrampolineSIMD, void, ());
JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampolineSIMD, void, ());
JSC_ANNOTATE_JIT_OPERATION_PROBE(ctiMasmProbeTrampolineSIMD);

using namespace ARM64Registers;
Expand Down
3 changes: 1 addition & 2 deletions Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,12 @@
#if ENABLE(ASSEMBLER) && CPU(ARM_THUMB2)
#include "MacroAssembler.h"

#include "OperationResult.h"
#include "ProbeContext.h"
#include <wtf/InlineASM.h>

namespace JSC {

JSC_DECLARE_NOEXCEPT_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_ANNOTATE_JIT_OPERATION_PROBE(ctiMasmProbeTrampoline);

using namespace ARMRegisters;
Expand Down
3 changes: 1 addition & 2 deletions Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,12 @@

#if ENABLE(ASSEMBLER) && CPU(RISCV64)

#include "OperaitonResult.h"
#include "ProbeContext.h"
#include <wtf/InlineASM.h>

namespace JSC {

JSC_DECLARE_NOEXCEPT_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_ANNOTATE_JIT_OPERATION_PROBE(ctiMasmProbeTrampoline);

using namespace RISCV64Registers;
Expand Down
5 changes: 2 additions & 3 deletions Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
#if ENABLE(ASSEMBLER) && (CPU(X86) || CPU(X86_64))
#include "MacroAssembler.h"

#include "OperationResult.h"
#include "ProbeContext.h"
#include <wtf/InlineASM.h>

Expand All @@ -42,10 +41,10 @@

namespace JSC {

JSC_DECLARE_NOEXCEPT_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
JSC_ANNOTATE_JIT_OPERATION_PROBE(ctiMasmProbeTrampoline);
#if CPU(X86_64)
JSC_DECLARE_NOEXCEPT_JIT_OPERATION(ctiMasmProbeTrampolineSIMD, void, ());
JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampolineSIMD, void, ());
JSC_ANNOTATE_JIT_OPERATION_PROBE(ctiMasmProbeTrampolineSIMD);
#endif

Expand Down
1 change: 0 additions & 1 deletion Source/JavaScriptCore/b3/B3Type.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ class Type {

~Type() = default;

static const unsigned numberOfPrimitiveTypes = V128 + 1;
static Type tupleFromIndex(unsigned index) { ASSERT(!(index & tupleFlag)); return bitwise_cast<Type>(index | tupleFlag); }

TypeKind kind() const { return m_kind & tupleFlag ? Tuple : m_kind; }
Expand Down
7 changes: 2 additions & 5 deletions Source/JavaScriptCore/b3/B3Validate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -699,13 +699,10 @@ class Validater {
VALIDATE(value->numChildren() >= 1, ("At ", *value));
VALIDATE(value->child(0)->type() == pointerType(), ("At ", *value));
if (value->type().isTuple()) {
// FIXME: Right now we only support a pair of two GPR values since on every calling
// FIXME: Right now we only support a pair of register sized values since on every calling
// convention we support that's returned in returnValueGPR/returnValueGPR2, respectively.
VALIDATE(m_procedure.resultCount(value->type()) == 2, ("At ", *value));
if (is32Bit())
VALIDATE(m_procedure.typeAtOffset(value->type(), 0) == registerType(), ("At ", *value));
else
VALIDATE(m_procedure.typeAtOffset(value->type(), 0).isInt(), ("At ", *value));
VALIDATE(m_procedure.typeAtOffset(value->type(), 0) == registerType(), ("At ", *value));
VALIDATE(m_procedure.typeAtOffset(value->type(), 1) == registerType(), ("At ", *value));
}

Expand Down
12 changes: 3 additions & 9 deletions Source/JavaScriptCore/b3/air/AirCCallingConvention.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,10 @@ size_t cCallResultCount(Code& code, CCallValue* value)
return 2;
return 1;
case Tuple:
// We only support functions that return each parameter in its own register for now.
// We only support tuples that return exactly two register sized ints.
UNUSED_PARAM(code);
ASSERT(code.proc().resultCount(value->type()) == 2);
if (is32Bit())
ASSERT(code.proc().typeAtOffset(value->type(), 0) == pointerType());
else
ASSERT(code.proc().typeAtOffset(value->type(), 0).isInt());
ASSERT(code.proc().typeAtOffset(value->type(), 0) == pointerType());
ASSERT(code.proc().typeAtOffset(value->type(), 1) == pointerType());
return 2;
default:
Expand Down Expand Up @@ -174,10 +171,7 @@ Tmp cCallResult(Code& code, CCallValue* value, unsigned index)
case Tuple:
ASSERT_UNUSED(code, code.proc().resultCount(value->type()) == 2);
// We only support functions that return each parameter in its own register for now.
if (is32Bit())
ASSERT(code.proc().typeAtOffset(value->type(), 0) == registerType());
else
ASSERT(code.proc().typeAtOffset(value->type(), 0).isInt());
ASSERT(code.proc().typeAtOffset(value->type(), 0) == registerType());
ASSERT(code.proc().typeAtOffset(value->type(), 1) == registerType());
return index ? Tmp(GPRInfo::returnValueGPR2) : Tmp(GPRInfo::returnValueGPR);
case V128:
Expand Down
1 change: 0 additions & 1 deletion Source/JavaScriptCore/b3/testb3.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@
#include "JITCompilation.h"
#include "JSCInlines.h"
#include "LinkBuffer.h"
#include "OperationResult.h"
#include "PureNaN.h"
#include <cmath>
#include <regex>
Expand Down
36 changes: 18 additions & 18 deletions Source/JavaScriptCore/b3/testb3_5.cpp

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions Source/JavaScriptCore/b3/testb3_6.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1613,8 +1613,8 @@ void testLateRegister()
CHECK(invoke<uint64_t>(*code) == result);
}

JSC_DECLARE_NOEXCEPT_JIT_OPERATION(interpreterPrint, void, (Vector<intptr_t>* stream, intptr_t value));
JSC_DEFINE_NOEXCEPT_JIT_OPERATION(interpreterPrint, void, (Vector<intptr_t>* stream, intptr_t value))
JSC_DECLARE_JIT_OPERATION(interpreterPrint, void, (Vector<intptr_t>* stream, intptr_t value));
JSC_DEFINE_JIT_OPERATION(interpreterPrint, void, (Vector<intptr_t>* stream, intptr_t value))
{
stream->append(value);
}
Expand Down Expand Up @@ -2840,9 +2840,9 @@ void testMoveConstants()
}

extern "C" {
static JSC_DECLARE_NOEXCEPT_JIT_OPERATION_WITHOUT_WTF_INTERNAL(testMoveConstantsWithLargeOffsetsFunc, double, (double));
static JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(testMoveConstantsWithLargeOffsetsFunc, double, (double));
}
JSC_DEFINE_NOEXCEPT_JIT_OPERATION(testMoveConstantsWithLargeOffsetsFunc, double, (double a))
JSC_DEFINE_JIT_OPERATION(testMoveConstantsWithLargeOffsetsFunc, double, (double a))
{
return a;
}
Expand Down
12 changes: 6 additions & 6 deletions Source/JavaScriptCore/b3/testb3_7.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -587,18 +587,18 @@ void generateLoopNotBackwardsDominant(Procedure& proc, std::array<int, 100>& arr
}

extern "C" {
static JSC_DECLARE_NOEXCEPT_JIT_OPERATION_WITHOUT_WTF_INTERNAL(oneFunction, int, (int* callCount));
static JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(oneFunction, int, (int* callCount));
}
JSC_DEFINE_NOEXCEPT_JIT_OPERATION(oneFunction, int, (int* callCount))
JSC_DEFINE_JIT_OPERATION(oneFunction, int, (int* callCount))
{
(*callCount)++;
return 1;
}

extern "C" {
static JSC_DECLARE_NOEXCEPT_JIT_OPERATION_WITHOUT_WTF_INTERNAL(noOpFunction, void, ());
static JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(noOpFunction, void, ());
}
JSC_DEFINE_NOEXCEPT_JIT_OPERATION(noOpFunction, void, ())
JSC_DEFINE_JIT_OPERATION(noOpFunction, void, ())
{
}

Expand Down Expand Up @@ -1415,9 +1415,9 @@ void testFloatEqualOrUnorderedDontFold()
}

extern "C" {
static JSC_DECLARE_NOEXCEPT_JIT_OPERATION_WITHOUT_WTF_INTERNAL(functionNineArgs, void, (int32_t, void*, void*, void*, void*, void*, void*, void*, void*));
static JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(functionNineArgs, void, (int32_t, void*, void*, void*, void*, void*, void*, void*, void*));
}
JSC_DEFINE_NOEXCEPT_JIT_OPERATION(functionNineArgs, void, (int32_t, void*, void*, void*, void*, void*, void*, void*, void*))
JSC_DEFINE_JIT_OPERATION(functionNineArgs, void, (int32_t, void*, void*, void*, void*, void*, void*, void*, void*))
{
}

Expand Down
2 changes: 1 addition & 1 deletion Source/JavaScriptCore/dfg/DFGAbstractInterpreter.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ class AbstractInterpreter {

void verifyEdge(Node*, Edge);
void verifyEdges(Node*);
void executeDoubleUnaryOpEffects(Node*, const auto& functor);
void executeDoubleUnaryOpEffects(Node*, double(*equivalentFunction)(double));

bool handleConstantDivOp(Node*);

Expand Down
4 changes: 2 additions & 2 deletions Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
Original file line number Diff line number Diff line change
Expand Up @@ -1450,7 +1450,7 @@ bool AbstractInterpreter<AbstractStateType>::executeEffects(unsigned clobberLimi
}

case ArithSqrt:
executeDoubleUnaryOpEffects(node, [](double value) -> double { return sqrt(value); });
executeDoubleUnaryOpEffects(node, sqrt);
break;

case ArithFRound:
Expand Down Expand Up @@ -5504,7 +5504,7 @@ FiltrationResult AbstractInterpreter<AbstractStateType>::filterClassInfo(
}

template<typename AbstractStateType>
void AbstractInterpreter<AbstractStateType>::executeDoubleUnaryOpEffects(Node* node, const auto& equivalentFunction)
void AbstractInterpreter<AbstractStateType>::executeDoubleUnaryOpEffects(Node* node, double(*equivalentFunction)(double))
{
JSValue child = forNode(node->child1()).value();
if (std::optional<double> number = child.toNumberFromPrimitive()) {
Expand Down
3 changes: 1 addition & 2 deletions Source/JavaScriptCore/dfg/DFGArithMode.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
#pragma once

#include "MathCommon.h"
#include "OperationResult.h"

#if ENABLE(DFG_JIT)

Expand Down Expand Up @@ -63,7 +62,7 @@ enum class UnaryType : uint32_t {
};

using UnaryFunction = double(JIT_OPERATION_ATTRIBUTES*)(double);
using UnaryOperation = OperationReturnType<double>(JIT_OPERATION_ATTRIBUTES*)(JSGlobalObject*, EncodedJSValue);
using UnaryOperation = double(JIT_OPERATION_ATTRIBUTES*)(JSGlobalObject*, EncodedJSValue);

} // namespace Arith

Expand Down
1 change: 1 addition & 0 deletions Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ class ArrayifySlowPathGenerator final : public JumpingSlowPathGenerator<MacroAss
}
for (unsigned i = m_plans.size(); i--;)
jit->silentFill(m_plans[i]);
jit->exceptionCheck();

if (m_op == ArrayifyToStructure) {
ASSERT(m_structure.get());
Expand Down
3 changes: 1 addition & 2 deletions Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4420,7 +4420,6 @@ bool ByteCodeParser::handleDOMJITGetter(Operand result, const GetByVariant& vari
CallDOMGetterData* callDOMGetterData = m_graph.m_callDOMGetterData.add();
callDOMGetterData->customAccessorGetter = variant.customAccessorGetter();
ASSERT(callDOMGetterData->customAccessorGetter);
// JITOperationList::assertIsJITOperation(callDOMGetterData->customAccessorGetter);
callDOMGetterData->requiredClassInfo = domAttribute->classInfo;

if (const auto* domJIT = domAttribute->domJIT) {
Expand Down Expand Up @@ -5222,7 +5221,7 @@ void ByteCodeParser::handleGetById(
#endif
}

// Special path for custom accessors since custom's offset does not have any meaning.
// Special path for custom accessors since custom's offset does not have any meanings.
// So, this is completely different from Simple one. But we have a chance to optimize it when we use DOMJIT.
if (is64Bit()) {
if (getByStatus.numVariants() == 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ class CallArrayAllocatorSlowPathGenerator final : public JumpingSlowPathGenerato
jit->callOperation(m_function, m_resultGPR, SpeculativeJIT::TrustedImmPtr(&jit->vm()), m_structure, m_size, m_storageGPR);
for (unsigned i = m_plans.size(); i--;)
jit->silentFill(m_plans[i]);
jit->exceptionCheck();
jit->loadPtr(MacroAssembler::Address(m_resultGPR, JSObject::butterflyOffset()), m_storageGPR);
jumpTo(jit);
}
Expand Down Expand Up @@ -109,6 +110,7 @@ class CallArrayAllocatorWithVariableSizeSlowPathGenerator final : public Jumping
jit->callOperation(m_function, m_resultGPR, m_globalObject, scratchGPR, m_sizeGPR, m_storageGPR);
for (unsigned i = m_plans.size(); i--;)
jit->silentFill(m_plans[i]);
jit->exceptionCheck();
jumpTo(jit);
}

Expand Down Expand Up @@ -148,6 +150,7 @@ class CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator final
jit->callOperation(m_function, m_resultGPR, m_globalObject, m_structureGPR, m_sizeGPR, m_storageGPR);
for (unsigned i = m_plans.size(); i--;)
jit->silentFill(m_plans[i]);
jit->exceptionCheck();
jumpTo(jit);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class CallCreateDirectArgumentsSlowPathGenerator final : public JumpingSlowPathG
operationCreateDirectArguments, m_resultGPR, SpeculativeJIT::TrustedImmPtr(&jit->vm()), m_structure, m_lengthGPR, m_minCapacity);
for (unsigned i = m_plans.size(); i--;)
jit->silentFill(m_plans[i]);
jit->exceptionCheck();
jit->loadPtr(
MacroAssembler::Address(m_resultGPR, DirectArguments::offsetOfLength()), m_lengthGPR);
jumpTo(jit);
Expand Down
17 changes: 4 additions & 13 deletions Source/JavaScriptCore/dfg/DFGJITCompiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,27 +141,18 @@ class JITCompiler : public CCallHelpers {
}

// Add a call out from JIT code, without an exception check.
template<PtrTag tag>
requires (tag != NoPtrTag)
Call appendCall(const CodePtr<tag> function)
Call appendCall(const CodePtr<CFunctionPtrTag> function)
{
Call functionCall = call(OperationPtrTag);
// FIXME: If we had CustomGetters in JITOperationList we could just call retagged on all
// code paths but since we don't register them retagging triggers an ASSERT.
if constexpr (tag == OperationPtrTag)
m_calls.append(CallLinkRecord(functionCall, function));
else
m_calls.append(CallLinkRecord(functionCall, function.template retagged<OperationPtrTag>()));
m_calls.append(CallLinkRecord(functionCall, function.retagged<OperationPtrTag>()));
return functionCall;
}

#if OS(WINDOWS) && CPU(X86_64)
template<PtrTag tag>
requires (tag != NoPtrTag)
JITCompiler::Call appendCallWithUGPRPair(const CodePtr<tag> function)
JITCompiler::Call appendCallWithUGPRPair(const CodePtr<CFunctionPtrTag> function)
{
Call functionCall = callWithUGPRPair(OperationPtrTag);
m_calls.append(CallLinkRecord(functionCall, function.template retagged<OperationPtrTag>()));
m_calls.append(CallLinkRecord(functionCall, function.retagged<OperationPtrTag>()));
return functionCall;
}
#endif
Expand Down
Loading

0 comments on commit b25db3d

Please sign in to comment.