Lines Matching refs:assembler
19 #include "ecmascript/compiler/assembler/aarch64/assembler_aarch64.h"
20 #include "ecmascript/compiler/assembler/aarch64/extend_assembler.h"
64 static void PushUndefinedWithArgc(ExtendedAssembler *assembler, Register glue, Register argc, Register temp,
66 static void PushArgsWithArgv(ExtendedAssembler *assembler, Register glue, Register argc, Register argv,
68 static void PushArgsWithArgvInPair(ExtendedAssembler *assembler, Register argc, Register argv, Register padding,
70 static void PushAsmInterpBridgeFrame(ExtendedAssembler *assembler);
71 static void PopAsmInterpBridgeFrame(ExtendedAssembler *assembler);
72 static void StackOverflowCheck(ExtendedAssembler *assembler, Register glue, Register currentSlot, Register numArgs,
74 static void PushLeaveFrame(ExtendedAssembler *assembler, Register glue);
75 static void PopLeaveFrame(ExtendedAssembler *assembler);
76 static void PushAsmBridgeFrame(ExtendedAssembler *assembler);
77 static void PopAsmBridgeFrame(ExtendedAssembler *assembler);
82 static void CallRuntime(ExtendedAssembler *assembler);
84 static void JSFunctionEntry(ExtendedAssembler *assembler);
86 static void OptimizedCallAndPushArgv(ExtendedAssembler *assembler);
88 static void JSProxyCallInternalWithArgV(ExtendedAssembler *assembler);
90 static void JSCall(ExtendedAssembler *assembler);
92 static void CallOptimized(ExtendedAssembler *assembler);
94 static void CallRuntimeWithArgv(ExtendedAssembler *assembler);
96 static void JSCallWithArgV(ExtendedAssembler *assembler);
98 static void JSCallWithArgVAndPushArgv(ExtendedAssembler *assembler);
100 static void SuperCallWithArgV(ExtendedAssembler *assembler);
102 static void AOTCallToAsmInterBridge(ExtendedAssembler *assembler);
104 static void FastCallToAsmInterBridge(ExtendedAssembler *assembler);
106 static void DeoptHandlerAsm(ExtendedAssembler *assembler);
108 static void JSCallNew(ExtendedAssembler *assembler);
110 static void GenJSCall(ExtendedAssembler *assembler, bool isNew);
112 static void GenJSCallWithArgV(ExtendedAssembler *assembler, int id);
114 static void DeoptEnterAsmInterp(ExtendedAssembler *assembler);
115 static void JSCallCheck(ExtendedAssembler *assembler, Register jsfunc, Register taggedValue,
117 static void ThrowNonCallableInternal(ExtendedAssembler *assembler, Register sp);
118 static void JSBoundFunctionCallInternal(ExtendedAssembler *assembler, Register glue,
120 static void OptimizedCallAsmInterpreter(ExtendedAssembler *assembler);
121 static void PushMandatoryJSArgs(ExtendedAssembler *assembler, Register jsfunc,
123 static void PopJSFunctionArgs(ExtendedAssembler *assembler, Register expectedNumArgs, Register actualNumArgs);
124 static void PushJSFunctionEntryFrame(ExtendedAssembler *assembler, Register prevFp);
125 static void PopJSFunctionEntryFrame(ExtendedAssembler *assembler, Register glue);
126 static void PushOptimizedUnfoldArgVFrame(ExtendedAssembler *assembler, Register callSiteSp);
127 static void PopOptimizedUnfoldArgVFrame(ExtendedAssembler *assembler);
128 static void IncreaseStackForArguments(ExtendedAssembler *assembler, Register argC, Register fp,
130 static void PushOptimizedArgsConfigFrame(ExtendedAssembler *assembler);
131 static void PopOptimizedArgsConfigFrame(ExtendedAssembler *assembler);
132 static void JSCallInternal(ExtendedAssembler *assembler, Register jsfunc, bool isNew = false);
133 static void CallBuiltinTrampoline(ExtendedAssembler *assembler);
134 static void CallBuiltinConstructorStub(ExtendedAssembler *assembler, Register builtinStub, Register argv,
141 static void OptimizedFastCallEntry(ExtendedAssembler *assembler);
143 static void OptimizedFastCallAndPushArgv(ExtendedAssembler *assembler);
145 static void JSFastCallWithArgV(ExtendedAssembler *assembler);
147 static void JSFastCallWithArgVAndPushArgv(ExtendedAssembler *assembler);
152 static void AsmInterpreterEntry(ExtendedAssembler *assembler);
154 static void AsmInterpEntryDispatch(ExtendedAssembler *assembler);
156 static void GeneratorReEnterAsmInterp(ExtendedAssembler *assembler);
158 static void GeneratorReEnterAsmInterpDispatch(ExtendedAssembler *assembler);
160 static void PushCallThisRangeAndDispatch(ExtendedAssembler *assembler);
162 static void PushCallRangeAndDispatch(ExtendedAssembler *assembler);
164 static void PushCallArgs3AndDispatch(ExtendedAssembler *assembler);
166 static void PushCallArgs2AndDispatch(ExtendedAssembler *assembler);
168 static void PushCallArg1AndDispatch(ExtendedAssembler *assembler);
170 static void PushCallArg0AndDispatch(ExtendedAssembler *assembler);
172 static void PushCallThisArg0AndDispatch(ExtendedAssembler *assembler);
174 static void PushCallThisArg1AndDispatch(ExtendedAssembler *assembler);
176 static void PushCallThisArgs2AndDispatch(ExtendedAssembler *assembler);
178 static void PushCallThisArgs3AndDispatch(ExtendedAssembler *assembler);
180 static void PushCallThisRangeAndDispatchNative(ExtendedAssembler *assembler);
182 static void PushCallRangeAndDispatchNative(ExtendedAssembler *assembler);
184 static void PushCallNewAndDispatchNative(ExtendedAssembler *assembler);
186 static void PushNewTargetAndDispatchNative(ExtendedAssembler *assembler);
188 static void PushCallNewAndDispatch(ExtendedAssembler *assembler);
190 static void PushSuperCallAndDispatch(ExtendedAssembler *assembler);
192 static void PushCallArgsAndDispatchNative(ExtendedAssembler *assembler);
194 static void ResumeRspAndDispatch(ExtendedAssembler *assembler);
196 static void ResumeRspAndReturn([[maybe_unused]] ExtendedAssembler *assembler);
198 static void ResumeRspAndReturnBaseline([[maybe_unused]] ExtendedAssembler *assembler);
200 static void ResumeCaughtFrameAndDispatch(ExtendedAssembler *assembler);
202 static void ResumeUncaughtFrameAndReturn(ExtendedAssembler *assembler);
204 static void ResumeRspAndRollback(ExtendedAssembler *assembler);
206 static void CallGetter(ExtendedAssembler *assembler);
208 static void CallSetter(ExtendedAssembler *assembler);
210 static void CallContainersArgs2(ExtendedAssembler *assembler);
212 static void CallContainersArgs3(ExtendedAssembler *assembler);
214 static void CallReturnWithArgv([[maybe_unused]]ExtendedAssembler *assembler);
216 static void ASMFastWriteBarrier(ExtendedAssembler *assembler);
218 static void ASMWriteBarrierWithEden(ExtendedAssembler *assembler);
220 static void ASMFastSharedWriteBarrier(ExtendedAssembler *assembler, Label& needCall);
222 static void PushCallThis(ExtendedAssembler *assembler, JSCallMode mode,
225 static Register GetThisRegsiter(ExtendedAssembler *assembler, JSCallMode mode, Register defaultRegister);
226 static Register GetNewTargetRegsiter(ExtendedAssembler *assembler, JSCallMode mode, Register defaultRegister);
228 static void PushVregs(ExtendedAssembler *assembler, Label *stackOverflow, FrameTransitionType type);
230 static void DispatchCall(ExtendedAssembler *assembler, Register pc, Register newSp,
233 static void CallNativeInternal(ExtendedAssembler *assembler, Register nativeCode);
235 static bool PushBuiltinFrame(ExtendedAssembler *assembler, Register glue,
238 static void ThrowStackOverflowExceptionAndReturn(ExtendedAssembler *assembler, Register glue, Register fp,
241 static void PushFrameState(ExtendedAssembler *assembler, Register prevSp, Register fp, Register currentSlot,
244 static void JSCallCommonEntry(ExtendedAssembler *assembler, JSCallMode mode, FrameTransitionType type);
246 static void JSCallCommonFastPath(ExtendedAssembler *assembler, JSCallMode mode, Label *pushCallThis,
248 static void JSCallCommonSlowPath(ExtendedAssembler *assembler, JSCallMode mode,
251 static void GetNumVregsFromCallField(ExtendedAssembler *assembler, Register callField, Register numVregs);
253 static void GetDeclaredNumArgsFromCallField(ExtendedAssembler *assembler, Register callField,
256 static void SaveFpAndJumpSize(ExtendedAssembler *assembler, Immediate jumpSize);
258 static void PushAsmInterpEntryFrame(ExtendedAssembler *assembler);
260 static void PopAsmInterpEntryFrame(ExtendedAssembler *assembler);
262 static void PushGeneratorFrameState(ExtendedAssembler *assembler, Register &prevSpRegister, Register &fpRegister,
266 static void CallBCStub(ExtendedAssembler *assembler, Register &newSp, Register &glue,
269 static void CallNativeEntry(ExtendedAssembler *assembler);
271 static void CallFastBuiltin(ExtendedAssembler *assembler, Label *callNativeBuiltin);
273 static void CallNativeWithArgv(ExtendedAssembler *assembler, bool callNew, bool hasNewTarget = false);
274 static void PreserveMostCall(ExtendedAssembler* assembler);
282 static void CallArg0AndCheckToBaseline(ExtendedAssembler *assembler);
283 static void CallArg1AndCheckToBaseline(ExtendedAssembler *assembler);
284 static void CallArgs2AndCheckToBaseline(ExtendedAssembler *assembler);
285 static void CallArgs3AndCheckToBaseline(ExtendedAssembler *assembler);
286 static void CallThisArg0AndCheckToBaseline(ExtendedAssembler *assembler);
287 static void CallThisArg1AndCheckToBaseline(ExtendedAssembler *assembler);
288 static void CallThisArgs2AndCheckToBaseline(ExtendedAssembler *assembler);
289 static void CallThisArgs3AndCheckToBaseline(ExtendedAssembler *assembler);
290 static void CallRangeAndCheckToBaseline(ExtendedAssembler *assembler);
291 static void CallNewAndCheckToBaseline(ExtendedAssembler *assembler);
292 static void SuperCallAndCheckToBaseline(ExtendedAssembler *assembler);
293 static void CallThisRangeAndCheckToBaseline(ExtendedAssembler *assembler);
295 static void CallArg0AndDispatchFromBaseline(ExtendedAssembler *assembler);
296 static void CallArg1AndDispatchFromBaseline(ExtendedAssembler *assembler);
297 static void CallArgs2AndDispatchFromBaseline(ExtendedAssembler *assembler);
298 static void CallArgs3AndDispatchFromBaseline(ExtendedAssembler *assembler);
299 static void CallThisArg0AndDispatchFromBaseline(ExtendedAssembler *assembler);
300 static void CallThisArg1AndDispatchFromBaseline(ExtendedAssembler *assembler);
301 static void CallThisArgs2AndDispatchFromBaseline(ExtendedAssembler *assembler);
302 static void CallThisArgs3AndDispatchFromBaseline(ExtendedAssembler *assembler);
303 static void CallRangeAndDispatchFromBaseline(ExtendedAssembler *assembler);
304 static void CallNewAndDispatchFromBaseline(ExtendedAssembler *assembler);
305 static void SuperCallAndDispatchFromBaseline(ExtendedAssembler *assembler);
306 static void CallThisRangeAndDispatchFromBaseline(ExtendedAssembler *assembler);
308 static void CallArg0AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
309 static void CallArg1AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
310 static void CallArgs2AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
311 static void CallArgs3AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
312 static void CallThisArg0AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
313 static void CallThisArg1AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
314 static void CallThisArgs2AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
315 static void CallThisArgs3AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
316 static void CallRangeAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
317 static void CallNewAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
318 static void SuperCallAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
319 static void CallThisRangeAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler);
321 static void GetBaselineBuiltinFp(ExtendedAssembler *assembler);