Changeset 252273 in webkit for trunk/Source/JavaScriptCore/jit/JITOperations.cpp
- Timestamp:
- Nov 8, 2019, 4:11:28 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JITOperations.cpp
r252229 r252273 2646 2646 } 2647 2647 2648 ALWAYS_INLINE static JSValue profiledAdd(JSGlobalObject* globalObject, JSValue op1, JSValue op2, BinaryArithProfile& arithProfile)2648 ALWAYS_INLINE static JSValue profiledAdd(JSGlobalObject* globalObject, JSValue op1, JSValue op2, ArithProfile& arithProfile) 2649 2649 { 2650 2650 arithProfile.observeLHSAndRHS(op1, op2); … … 2662 2662 } 2663 2663 2664 EncodedJSValue JIT_OPERATION operationValueAddProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)2664 EncodedJSValue JIT_OPERATION operationValueAddProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile) 2665 2665 { 2666 2666 ASSERT(arithProfile); … … 2680 2680 JSValue op2 = JSValue::decode(encodedOp2); 2681 2681 2682 BinaryArithProfile* arithProfile = addIC->arithProfile();2682 ArithProfile* arithProfile = addIC->arithProfile(); 2683 2683 ASSERT(arithProfile); 2684 2684 arithProfile->observeLHSAndRHS(op1, op2); … … 2702 2702 JITOperationPrologueCallFrameTracer tracer(vm, callFrame); 2703 2703 2704 BinaryArithProfile* arithProfile = addIC->arithProfile();2704 ArithProfile* arithProfile = addIC->arithProfile(); 2705 2705 ASSERT(arithProfile); 2706 2706 return JSValue::encode(profiledAdd(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2), *arithProfile)); … … 2717 2717 2718 2718 auto nonOptimizeVariant = operationValueAddNoOptimize; 2719 if ( BinaryArithProfile* arithProfile = addIC->arithProfile())2719 if (ArithProfile* arithProfile = addIC->arithProfile()) 2720 2720 arithProfile->observeLHSAndRHS(op1, op2); 2721 2721 addIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant); … … 2750 2750 } 2751 2751 2752 ALWAYS_INLINE static EncodedJSValue profiledMul(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)2752 ALWAYS_INLINE static EncodedJSValue profiledMul(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true) 2753 2753 { 2754 2754 VM& vm = globalObject->vm(); … … 2791 2791 2792 2792 auto nonOptimizeVariant = operationValueMulNoOptimize; 2793 if ( BinaryArithProfile* arithProfile = mulIC->arithProfile())2793 if (ArithProfile* arithProfile = mulIC->arithProfile()) 2794 2794 arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2)); 2795 2795 mulIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant); … … 2802 2802 } 2803 2803 2804 EncodedJSValue JIT_OPERATION operationValueMulProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)2804 EncodedJSValue JIT_OPERATION operationValueMulProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile) 2805 2805 { 2806 2806 VM& vm = globalObject->vm(); … … 2818 2818 JITOperationPrologueCallFrameTracer tracer(vm, callFrame); 2819 2819 2820 BinaryArithProfile* arithProfile = mulIC->arithProfile();2820 ArithProfile* arithProfile = mulIC->arithProfile(); 2821 2821 ASSERT(arithProfile); 2822 2822 arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2)); … … 2837 2837 JITOperationPrologueCallFrameTracer tracer(vm, callFrame); 2838 2838 2839 BinaryArithProfile* arithProfile = mulIC->arithProfile();2839 ArithProfile* arithProfile = mulIC->arithProfile(); 2840 2840 ASSERT(arithProfile); 2841 2841 return profiledMul(globalObject, encodedOp1, encodedOp2, *arithProfile); … … 2863 2863 } 2864 2864 2865 EncodedJSValue JIT_OPERATION operationArithNegateProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOperand, UnaryArithProfile* arithProfile)2865 EncodedJSValue JIT_OPERATION operationArithNegateProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOperand, ArithProfile* arithProfile) 2866 2866 { 2867 2867 ASSERT(arithProfile); … … 2872 2872 2873 2873 JSValue operand = JSValue::decode(encodedOperand); 2874 arithProfile->observe Arg(operand);2874 arithProfile->observeLHS(operand); 2875 2875 2876 2876 JSValue primValue = operand.toPrimitive(globalObject); … … 2900 2900 JSValue operand = JSValue::decode(encodedOperand); 2901 2901 2902 UnaryArithProfile* arithProfile = negIC->arithProfile();2902 ArithProfile* arithProfile = negIC->arithProfile(); 2903 2903 ASSERT(arithProfile); 2904 arithProfile->observe Arg(operand);2904 arithProfile->observeLHS(operand); 2905 2905 negIC->generateOutOfLine(callFrame->codeBlock(), operationArithNegateProfiled); 2906 2906 … … 2934 2934 JSValue operand = JSValue::decode(encodedOperand); 2935 2935 2936 if ( UnaryArithProfile* arithProfile = negIC->arithProfile())2937 arithProfile->observe Arg(operand);2936 if (ArithProfile* arithProfile = negIC->arithProfile()) 2937 arithProfile->observeLHS(operand); 2938 2938 negIC->generateOutOfLine(callFrame->codeBlock(), operationArithNegate); 2939 2939 … … 2961 2961 } 2962 2962 2963 ALWAYS_INLINE static EncodedJSValue profiledSub(VM& vm, JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)2963 ALWAYS_INLINE static EncodedJSValue profiledSub(VM& vm, JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true) 2964 2964 { 2965 2965 auto scope = DECLARE_THROW_SCOPE(vm); … … 2985 2985 } 2986 2986 2987 EncodedJSValue JIT_OPERATION operationValueSubProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)2987 EncodedJSValue JIT_OPERATION operationValueSubProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile) 2988 2988 { 2989 2989 ASSERT(arithProfile); … … 3003 3003 3004 3004 auto nonOptimizeVariant = operationValueSubNoOptimize; 3005 if ( BinaryArithProfile* arithProfile = subIC->arithProfile())3005 if (ArithProfile* arithProfile = subIC->arithProfile()) 3006 3006 arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2)); 3007 3007 subIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant); … … 3029 3029 JITOperationPrologueCallFrameTracer tracer(vm, callFrame); 3030 3030 3031 BinaryArithProfile* arithProfile = subIC->arithProfile();3031 ArithProfile* arithProfile = subIC->arithProfile(); 3032 3032 ASSERT(arithProfile); 3033 3033 arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2)); … … 3048 3048 JITOperationPrologueCallFrameTracer tracer(vm, callFrame); 3049 3049 3050 BinaryArithProfile* arithProfile = subIC->arithProfile();3050 ArithProfile* arithProfile = subIC->arithProfile(); 3051 3051 ASSERT(arithProfile); 3052 3052 return profiledSub(vm, globalObject, encodedOp1, encodedOp2, *arithProfile);
Note:
See TracChangeset
for help on using the changeset viewer.