Templatize CodePtr/Refs/FunctionPtrs with PtrTags.
[WebKit-https.git] / Source / WebCore / cssjit / FunctionCall.h
index 9b5166b..346cf28 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2013-2018 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -27,6 +27,7 @@
 
 #if ENABLE(CSS_SELECTOR_JIT)
 
+#include "CSSPtrTag.h"
 #include "RegisterAllocator.h"
 #include "StackAllocator.h"
 #include <JavaScriptCore/GPRInfo.h>
@@ -36,7 +37,7 @@ namespace WebCore {
 
 class FunctionCall {
 public:
-    FunctionCall(JSC::MacroAssembler& assembler, RegisterAllocator& registerAllocator, StackAllocator& stackAllocator, Vector<std::pair<JSC::MacroAssembler::Call, JSC::FunctionPtr>, 32>& callRegistry)
+    FunctionCall(JSC::MacroAssembler& assembler, RegisterAllocator& registerAllocator, StackAllocator& stackAllocator, Vector<std::pair<JSC::MacroAssembler::Call, JSC::FunctionPtr<CSSOperationPtrTag>>, 32>& callRegistry)
         : m_assembler(assembler)
         , m_registerAllocator(registerAllocator)
         , m_stackAllocator(stackAllocator)
@@ -47,7 +48,7 @@ public:
     {
     }
 
-    void setFunctionAddress(JSC::FunctionPtr functionAddress)
+    void setFunctionAddress(JSC::FunctionPtr<CSSOperationPtrTag> functionAddress)
     {
         m_functionAddress = functionAddress;
     }
@@ -147,7 +148,7 @@ private:
                 m_assembler.move(m_firstArgument, JSC::GPRInfo::argumentGPR0);
         }
 
-        JSC::MacroAssembler::Call call = m_assembler.call(JSC::CFunctionPtrTag);
+        JSC::MacroAssembler::Call call = m_assembler.call(CSSOperationPtrTag);
         m_callRegistry.append(std::make_pair(call, m_functionAddress));
     }
 
@@ -178,12 +179,12 @@ private:
     JSC::MacroAssembler& m_assembler;
     RegisterAllocator& m_registerAllocator;
     StackAllocator& m_stackAllocator;
-    Vector<std::pair<JSC::MacroAssembler::Call, JSC::FunctionPtr>, 32>& m_callRegistry;
+    Vector<std::pair<JSC::MacroAssembler::Call, JSC::FunctionPtr<CSSOperationPtrTag>>, 32>& m_callRegistry;
 
     RegisterVector m_savedRegisters;
     StackAllocator::StackReferenceVector m_savedRegisterStackReferences;
     
-    JSC::FunctionPtr m_functionAddress;
+    JSC::FunctionPtr<CSSOperationPtrTag> m_functionAddress;
     unsigned m_argumentCount;
     JSC::MacroAssembler::RegisterID m_firstArgument;
     JSC::MacroAssembler::RegisterID m_secondArgument;