⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 278687 in webkit


Ignore:
Timestamp:
Jun 9, 2021, 6:32:37 PM (5 years ago)
Author:
Fujii Hironori
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.

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r278672 r278687  
     12021-06-09  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        clang-cl: JIT.h(966,67): error: no viable conversion from 'JSC::AbstractMacroAssembler<JSC::X86Assembler>::Address' to 'FunctionPtr<CFunctionPtrTag>'
     4        https://bugs.webkit.org/show_bug.cgi?id=226850
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        WinCairo clang-cl builds got broken since r278656 (Bug 226072).
     9
     10        * jit/JIT.h: Use the common callOperation(Address, Args...) for
     11        x64 Windows. Added static_assert to check the return type.
     12
    1132021-06-09  Mark Lam  <mark.lam@apple.com>
    214
  • trunk/Source/JavaScriptCore/jit/JIT.h

    r278656 r278687  
    955955            return appendCallWithExceptionCheckAndSlowPathReturnType(operation);
    956956        }
    957 
    958         template<typename OperationType, typename... Args>
    959         void callOperation(Address target, Args... args)
    960         {
    961             setupArgumentsForIndirectCall<OperationType>(target, args...);
    962             // x64 Windows cannot use standard call when the return type is larger than 64 bits.
    963             if constexpr (is64BitType<typename FunctionTraits<OperationType>::ResultType>::value)
    964                 appendCallWithExceptionCheck(Address(GPRInfo::nonArgGPR0, target.offset));
    965             else
    966                 appendCallWithExceptionCheckAndSlowPathReturnType(Address(GPRInfo::nonArgGPR0, target.offset));
    967         }
    968957#else // OS(WINDOWS) && CPU(X86_64)
    969958        template<typename OperationType, typename... Args>
     
    973962            return appendCallWithExceptionCheck(operation);
    974963        }
     964#endif // OS(WINDOWS) && CPU(X86_64)
    975965
    976966        template<typename OperationType, typename... Args>
    977967        void callOperation(Address target, Args... args)
    978968        {
     969#if OS(WINDOWS) && CPU(X86_64)
     970            // x64 Windows cannot use standard call when the return type is larger than 64 bits.
     971            static_assert(is64BitType<typename FunctionTraits<OperationType>::ResultType>::value);
     972#endif
    979973            setupArgumentsForIndirectCall<OperationType>(target, args...);
    980974            appendCallWithExceptionCheck(Address(GPRInfo::nonArgGPR0, target.offset));
    981975        }
    982 #endif // OS(WINDOWS) && CPU(X86_64)
    983976
    984977        template<typename Metadata, typename OperationType, typename... Args>
Note: See TracChangeset for help on using the changeset viewer.