@@ -62,7 +62,7 @@ class Inline
62
62
#endif
63
63
IR::Instr * InlineGetterSetterFunction (IR::Instr *accessorInstr, const FunctionJITTimeInfo *const inlineeData, const StackSym *symCallerThis, const uint inlineCacheIndex, bool isGetter, bool *pIsInlined, uint recursiveInlineDepth);
64
64
IR::Instr * InlineFunctionCommon (IR::Instr *callInstr, bool originalCallTargetOpndIsJITOpt, StackSym* originalCallTargetStackSym, const FunctionJITTimeInfo *funcInfo, Func *inlinee, IR::Instr *instrNext,
65
- IR::RegOpnd * returnValueOpnd, IR::Instr *inlineBailoutChecksBeforeInstr, const StackSym *symCallerThis, uint recursiveInlineDepth, bool safeThis = false , bool isApplyTarget = false , bool isCallbackCallApplyTarget = false );
65
+ IR::RegOpnd * returnValueOpnd, IR::Instr *inlineBailoutChecksBeforeInstr, const StackSym *symCallerThis, uint recursiveInlineDepth, bool safeThis = false , bool isApplyTarget = false );
66
66
IR::Instr * SimulateCallForGetterSetter (IR::Instr *accessorInstr, IR::Instr* insertInstr, IR::PropertySymOpnd* methodOpnd, bool isGetter);
67
67
68
68
IR::Instr * InlineApply (IR::Instr *callInstr, const FunctionJITTimeInfo * applyData, const FunctionJITTimeInfo * inlinerData, const StackSym *symThis, bool * pIsInlined, uint callSiteId, uint recursiveInlineDepth, uint argsCount);
@@ -73,11 +73,12 @@ class Inline
73
73
const StackSym *symThis, IR::Instr ** returnInstr, uint recursiveInlineDepth, bool isArrayOpndArgumentsObject, uint argsCount);
74
74
void GetArgInstrsForCallAndApply (IR::Instr* callInstr, IR::Instr** implicitThisArgOut, IR::Instr** explicitThisArgOut, IR::Instr** argumentsOrArrayArgOut, uint &argOutCount);
75
75
_Success_ (return != false ) bool TryGetCallApplyAndTargetLdInstrs (IR::Instr * callInstr, _Outptr_result_nullonfailure_ IR::Instr ** callApplyLdInstr, _Outptr_result_nullonfailure_ IR::Instr ** callApplyTargetLdInstr);
76
- IR::Instr * InlineCall (IR::Instr *callInstr, const FunctionJITTimeInfo * inlineeData, const FunctionJITTimeInfo * inlinerData, const StackSym *symThis, bool * pIsInlined, uint callSiteId, uint recursiveInlineDepth);
76
+ IR::Instr * InlineCall (IR::Instr *callInstr, const FunctionJITTimeInfo * inlineeData, const FunctionJITTimeInfo * inlinerData, const StackSym *symThis, bool * pIsInlined, uint callSiteId, uint recursiveInlineDepth, bool isCallInstanceFunction );
77
77
bool InlineCallTarget (IR::Instr *callInstr, const FunctionJITTimeInfo* inlinerData, const FunctionJITTimeInfo** pInlineeData, const FunctionJITTimeInfo *callFuncInfo,
78
- const StackSym *symThis, IR::Instr ** returnInstr, uint recursiveInlineDepth);
78
+ const StackSym *symThis, IR::Instr ** returnInstr, uint recursiveInlineDepth, bool isCallInstanceFunction );
79
79
80
- bool TryGetCallApplyInlineeData (const FunctionJITTimeInfo* inlinerData, IR::Instr * callApplyLdInstr, IR::Instr * callApplyTargetLdInstr, const FunctionJITTimeInfo ** inlineeData, Js::InlineCacheIndex * inlineCacheIndex, IR::Instr ** callbackDefInstr);
80
+ bool TryGetCallApplyInlineeData (const FunctionJITTimeInfo* inlinerData, IR::Instr * callInstr, IR::Instr * callApplyLdInstr, IR::Instr * callApplyTargetLdInstr, const FunctionJITTimeInfo ** inlineeData, Js::InlineCacheIndex * inlineCacheIndex,
81
+ IR::Instr ** callbackDefInstr, bool isCallInstanceFunction);
81
82
82
83
bool InlConstFoldArg (IR::Instr *instr, __in_ecount_opt(callerArgOutCount) IR::Instr *callerArgOuts[], Js::ArgSlot callerArgOutCount);
83
84
bool InlConstFold (IR::Instr *instr, IntConstType *pValue, __in_ecount_opt(callerArgOutCount) IR::Instr *callerArgOuts[], Js::ArgSlot callerArgOutCount);
@@ -100,6 +101,7 @@ class Inline
100
101
IR::Instr * TryGetCallbackDefInstr (StackSym * callbackSym);
101
102
IR::Instr * TryGetCallbackDefInstrForCallInstr (IR::Instr * callInstr);
102
103
IR::Instr * TryGetCallbackDefInstrForCallApplyTarget (IR::Instr * callApplyLdInstr);
104
+ IR::Instr * TryGetCallbackDefInstrForCallInstanceFunction (IR::Instr * callInstr);
103
105
104
106
IR::Instr * InlineSpread (IR::Instr *spreadCall);
105
107
@@ -108,7 +110,7 @@ class Inline
108
110
void SetupInlineeFrame (Func *inlinee, IR::Instr *inlineeStart, Js::ArgSlot actualCount, IR::Opnd *functionObject);
109
111
void FixupExtraActualParams (IR::Instr * instr, IR::Instr *argOuts[], IR::Instr *argOutsExtra[], uint index, uint actualCount, Js::ProfileId callSiteId);
110
112
void RemoveExtraFixupArgouts (IR::Instr* instr, uint argoutRemoveCount, Js::ProfileId callSiteId);
111
- IR::Instr* PrepareInsertionPoint (IR::Instr *callInstr, const FunctionJITTimeInfo *funcInfo, IR::Instr *insertBeforeInstr, bool isCallbackCallApplyTarget = false );
113
+ IR::Instr* PrepareInsertionPoint (IR::Instr *callInstr, const FunctionJITTimeInfo *funcInfo, IR::Instr *insertBeforeInstr);
112
114
IR::ByteCodeUsesInstr* EmitFixedMethodOrFunctionObjectChecksForBuiltIns (IR::Instr *callInstr, IR::Instr * funcObjCheckInsertInstr, const FunctionJITTimeInfo * inlineeInfo, bool isPolymorphic, bool isBuiltIn, bool isCtor, bool isInlined);
113
115
Js::ArgSlot MapActuals (IR::Instr *callInstr, __out_ecount(maxParamCount) IR::Instr *argOuts[], Js::ArgSlot formalCount, Func *inlinee, Js::ProfileId callSiteId, bool *stackArgsArgOutExpanded, IR::Instr *argOutsExtra[] = nullptr, Js::ArgSlot maxParamCount = Js::InlineeCallInfo::MaxInlineeArgoutCount);
114
116
uint32 CountActuals (IR::Instr *callIntr);
0 commit comments