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

Changeset 276496 in webkit


Ignore:
Timestamp:
Apr 23, 2021, 7:07:46 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, reverting r276486.
https://bugs.webkit.org/show_bug.cgi?id=224973

broke windows build

Reverted changeset:

"[JSC][Win] callOperationNoExceptionCheck() also needs to
support operations that return SlowPathReturnType"
https://bugs.webkit.org/show_bug.cgi?id=224964
https://trac.webkit.org/changeset/276486

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r276486 r276496  
     12021-04-23  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, reverting r276486.
     4        https://bugs.webkit.org/show_bug.cgi?id=224973
     5
     6        broke windows build
     7
     8        Reverted changeset:
     9
     10        "[JSC][Win] callOperationNoExceptionCheck() also needs to
     11        support operations that return SlowPathReturnType"
     12        https://bugs.webkit.org/show_bug.cgi?id=224964
     13        https://trac.webkit.org/changeset/276486
     14
    1152021-04-22  Fujii Hironori  <Hironori.Fujii@sony.com>
    216
  • trunk/Source/JavaScriptCore/jit/JIT.h

    r276486 r276496  
    825825
    826826#if OS(WINDOWS) && CPU(X86_64)
    827         template<typename Type> static constexpr bool is64BitType = sizeof(Type) <= 8;
    828         template<> static constexpr bool is64BitType<void> = true;
    829 
    830827        template<typename OperationType, typename... Args>
    831         MacroAssembler::Call callOperation(OperationType operation, Args... args)
     828        std::enable_if_t<std::is_same<typename FunctionTraits<OperationType>::ResultType, SlowPathReturnType>::value, MacroAssembler::Call>
     829        callOperation(OperationType operation, Args... args)
    832830        {
    833831            setupArguments<OperationType>(args...);
    834             // x64 Windows cannot use standard call when the return type is larger than 64 bits.
    835             if constexpr (is64BitType<typename FunctionTraits<OperationType>::ResultType>)
    836                 return appendCallWithExceptionCheck(operation);
    837832            return appendCallWithExceptionCheckAndSlowPathReturnType(operation);
     833        }
     834
     835        template<typename Type>
     836        struct is64BitType {
     837            static constexpr bool value = sizeof(Type) <= 8;
     838        };
     839
     840        template<>
     841        struct is64BitType<void> {
     842            static constexpr bool value = true;
     843        };
     844
     845        template<typename OperationType, typename... Args>
     846        std::enable_if_t<!std::is_same<typename FunctionTraits<OperationType>::ResultType, SlowPathReturnType>::value, MacroAssembler::Call>
     847        callOperation(OperationType operation, Args... args)
     848        {
     849            static_assert(is64BitType<typename FunctionTraits<OperationType>::ResultType>::value, "Win64 cannot use standard call when return type is larger than 64 bits.");
     850            setupArguments<OperationType>(args...);
     851            return appendCallWithExceptionCheck(operation);
    838852        }
    839853#else // OS(WINDOWS) && CPU(X86_64)
     
    863877        }
    864878
    865 #if OS(WINDOWS) && CPU(X86_64)
    866         template<typename OperationType, typename... Args>
    867         MacroAssembler::Call callOperationNoExceptionCheck(OperationType operation, Args... args)
    868         {
    869             setupArguments<OperationType>(args...);
    870             updateTopCallFrame();
    871             // x64 Windows cannot use standard call when the return type is larger than 64 bits.
    872             if constexpr (is64BitType<typename FunctionTraits<OperationType>::ResultType>)
    873                 return appendCall(operation);
    874             return appendCallWithSlowPathReturnType(operation);
    875         }
    876 #else
    877879        template<typename OperationType, typename... Args>
    878880        MacroAssembler::Call callOperationNoExceptionCheck(OperationType operation, Args... args)
     
    882884            return appendCall(operation);
    883885        }
    884 #endif // OS(WINDOWS) && CPU(X86_64)
    885886
    886887        template<typename OperationType, typename... Args>
Note: See TracChangeset for help on using the changeset viewer.