Title: [278687] trunk/Source/_javascript_Core
Revision
278687
Author
[email protected]
Date
2021-06-09 18:32:37 -0700 (Wed, 09 Jun 2021)

Log Message

clang-cl: JIT.h(966,67): error: no viable conversion from 'JSC::AbstractMacroAssembler<JSC::X86Assembler>::Address' to 'FunctionPtr<CFunctionPtrTag>'
https://bugs.webkit.org/show_bug.cgi?id=226850

Reviewed by Yusuke Suzuki.

WinCairo clang-cl builds got broken since r278656 (Bug 226072).

* jit/JIT.h: Use the common callOperation(Address, Args...) for
x64 Windows. Added static_assert to check the return type.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (278686 => 278687)


--- trunk/Source/_javascript_Core/ChangeLog	2021-06-10 01:15:23 UTC (rev 278686)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-06-10 01:32:37 UTC (rev 278687)
@@ -1,3 +1,15 @@
+2021-06-09  Fujii Hironori  <[email protected]>
+
+        clang-cl: JIT.h(966,67): error: no viable conversion from 'JSC::AbstractMacroAssembler<JSC::X86Assembler>::Address' to 'FunctionPtr<CFunctionPtrTag>'
+        https://bugs.webkit.org/show_bug.cgi?id=226850
+
+        Reviewed by Yusuke Suzuki.
+
+        WinCairo clang-cl builds got broken since r278656 (Bug 226072).
+
+        * jit/JIT.h: Use the common callOperation(Address, Args...) for
+        x64 Windows. Added static_assert to check the return type.
+
 2021-06-09  Mark Lam  <[email protected]>
 
         Speculative build fix for Win32.

Modified: trunk/Source/_javascript_Core/jit/JIT.h (278686 => 278687)


--- trunk/Source/_javascript_Core/jit/JIT.h	2021-06-10 01:15:23 UTC (rev 278686)
+++ trunk/Source/_javascript_Core/jit/JIT.h	2021-06-10 01:32:37 UTC (rev 278687)
@@ -954,17 +954,6 @@
                 return appendCallWithExceptionCheck(operation);
             return appendCallWithExceptionCheckAndSlowPathReturnType(operation);
         }
-
-        template<typename OperationType, typename... Args>
-        void callOperation(Address target, Args... args)
-        {
-            setupArgumentsForIndirectCall<OperationType>(target, args...);
-            // x64 Windows cannot use standard call when the return type is larger than 64 bits.
-            if constexpr (is64BitType<typename FunctionTraits<OperationType>::ResultType>::value)
-                appendCallWithExceptionCheck(Address(GPRInfo::nonArgGPR0, target.offset));
-            else
-                appendCallWithExceptionCheckAndSlowPathReturnType(Address(GPRInfo::nonArgGPR0, target.offset));
-        }
 #else // OS(WINDOWS) && CPU(X86_64)
         template<typename OperationType, typename... Args>
         MacroAssembler::Call callOperation(OperationType operation, Args... args)
@@ -972,14 +961,18 @@
             setupArguments<OperationType>(args...);
             return appendCallWithExceptionCheck(operation);
         }
+#endif // OS(WINDOWS) && CPU(X86_64)
 
         template<typename OperationType, typename... Args>
         void callOperation(Address target, Args... args)
         {
+#if OS(WINDOWS) && CPU(X86_64)
+            // x64 Windows cannot use standard call when the return type is larger than 64 bits.
+            static_assert(is64BitType<typename FunctionTraits<OperationType>::ResultType>::value);
+#endif
             setupArgumentsForIndirectCall<OperationType>(target, args...);
             appendCallWithExceptionCheck(Address(GPRInfo::nonArgGPR0, target.offset));
         }
-#endif // OS(WINDOWS) && CPU(X86_64)
 
         template<typename Metadata, typename OperationType, typename... Args>
         std::enable_if_t<FunctionTraits<OperationType>::hasResult, MacroAssembler::Call>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to