Changeset 276496 in webkit
- Timestamp:
- Apr 23, 2021, 7:07:46 AM (5 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r276486 r276496 1 2021-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 1 15 2021-04-22 Fujii Hironori <Hironori.Fujii@sony.com> 2 16 -
trunk/Source/JavaScriptCore/jit/JIT.h
r276486 r276496 825 825 826 826 #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 830 827 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) 832 830 { 833 831 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);837 832 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); 838 852 } 839 853 #else // OS(WINDOWS) && CPU(X86_64) … … 863 877 } 864 878 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 #else877 879 template<typename OperationType, typename... Args> 878 880 MacroAssembler::Call callOperationNoExceptionCheck(OperationType operation, Args... args) … … 882 884 return appendCall(operation); 883 885 } 884 #endif // OS(WINDOWS) && CPU(X86_64)885 886 886 887 template<typename OperationType, typename... Args>
Note:
See TracChangeset
for help on using the changeset viewer.