Lines Matching refs:masm
33 #define __ ACCESS_MASM(masm)
35 void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
36 ASM_CODE_COMMENT(masm);
38 __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
42 static void GenerateTailCallToReturnedCode(MacroAssembler* masm,
50 FrameScope scope(masm, StackFrame::INTERNAL);
78 void Generate_PushArguments(MacroAssembler* masm, Register array, Register argc,
97 void Generate_JSBuiltinsConstructStubHelper(MacroAssembler* masm) {
109 FrameScope scope(masm, StackFrame::CONSTRUCT);
123 UseScratchRegisterScope temps(masm);
125 Generate_PushArguments(masm, t2, a0, temps.Acquire(), temps.Acquire(),
153 void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
162 UseScratchRegisterScope temps(masm);
165 FrameScope scope(masm, StackFrame::MANUAL);
183 UseScratchRegisterScope temps(masm);
198 __ IncrementCounter(masm->isolate()->counters()->constructed_objects(), 1,
200 __ Call(BUILTIN_CODE(masm->isolate(), FastNewObject),
217 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
218 masm->pc_offset());
255 UseScratchRegisterScope temps(masm);
268 UseScratchRegisterScope temps(masm);
269 Generate_PushArguments(masm, t2, a0, temps.Acquire(), temps.Acquire(),
290 masm->isolate()->heap()->SetConstructStubInvokeDeoptPCOffset(
291 masm->pc_offset());
330 UseScratchRegisterScope temps(masm);
352 void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
353 Generate_JSBuiltinsConstructStubHelper(masm);
356 static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
367 static void GetSharedFunctionInfoBytecodeOrBaseline(MacroAssembler* masm,
371 ASM_CODE_COMMENT(masm);
387 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
412 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
419 ExternalReference::debug_suspended_generator_address(masm->isolate());
475 GetSharedFunctionInfoBytecodeOrBaseline(masm, a3, a0, &is_baseline);
500 FrameScope scope(masm, StackFrame::INTERNAL);
513 FrameScope scope(masm, StackFrame::INTERNAL);
524 FrameScope scope(masm, StackFrame::INTERNAL);
530 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
531 FrameScope scope(masm, StackFrame::INTERNAL);
537 static void Generate_CheckStackOverflow(MacroAssembler* masm, Register argc,
569 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
574 NoRootArrayScope no_root_array(masm);
619 IsolateAddressId::kCEntryFPAddress, masm->isolate());
652 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
673 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
680 IsolateAddressId::kPendingExceptionAddress, masm->isolate()));
716 masm->isolate()->builtins()->code_handle(entry_trampoline);
736 masm->isolate()));
753 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
754 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
757 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
758 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
762 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
763 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
767 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
779 FrameScope scope(masm, StackFrame::INTERNAL);
783 IsolateAddressId::kContextAddress, masm->isolate());
792 Generate_CheckStackOverflow(masm, a6, a0, s2);
798 UseScratchRegisterScope temps(masm);
799 Generate_PushArguments(masm, a5, a4, temps.Acquire(), temps.Acquire(),
829 ? BUILTIN_CODE(masm->isolate(), Construct)
830 : masm->isolate()->builtins()->Call();
838 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
839 Generate_JSEntryTrampolineHelper(masm, false);
842 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
843 Generate_JSEntryTrampolineHelper(masm, true);
846 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
849 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
852 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
857 ASM_CODE_COMMENT(masm);
868 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
870 ASM_CODE_COMMENT(masm);
901 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
905 ASM_CODE_COMMENT(masm);
909 GenerateTailCallToReturnedCode(masm, function_id);
913 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
921 ASM_CODE_COMMENT(masm);
946 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure,
957 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
960 static void MaybeOptimizeCode(MacroAssembler* masm, Register feedback_vector,
970 ASM_CODE_COMMENT(masm);
976 TailCallRuntimeIfStateEquals(masm, tiering_state,
979 TailCallRuntimeIfStateEquals(masm, tiering_state,
991 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
997 ASM_CODE_COMMENT(masm);
1071 MacroAssembler* masm, Register optimization_state, Register feedback_vector,
1073 ASM_CODE_COMMENT(masm);
1075 UseScratchRegisterScope temps(masm);
1086 MacroAssembler* masm, Register optimization_state,
1088 ASM_CODE_COMMENT(masm);
1090 UseScratchRegisterScope temps(masm);
1095 UseScratchRegisterScope temps(masm);
1104 MaybeOptimizeCode(masm, feedback_vector, tiering_state);
1112 TailCallOptimizedCodeSlot(masm, optimized_code_entry, temps.Acquire(),
1117 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm,
1130 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1131 UseScratchRegisterScope temps(masm);
1143 UseScratchRegisterScope temps(masm);
1154 masm, optimization_state, feedback_vector, &has_optimized_code_or_state);
1158 UseScratchRegisterScope temps(masm);
1169 FrameScope frame_scope(masm, StackFrame::MANUAL);
1171 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1190 ResetBytecodeAgeAndOsrState(masm, bytecode_array);
1196 UseScratchRegisterScope temps(masm);
1215 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1221 UseScratchRegisterScope temps(masm);
1237 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1240 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1247 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1248 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1275 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1278 UseScratchRegisterScope temps(masm);
1292 masm, kInterpreterBytecodeArrayRegister, kScratchReg, &is_baseline);
1343 FrameScope frame_scope(masm, StackFrame::MANUAL);
1346 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
1410 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1418 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1435 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1442 LeaveInterpreterFrame(masm, scratch, scratch2);
1470 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1491 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1498 ReplaceClosureCodeWithOptimizedCode(masm, a2, closure, scratch, scratch2);
1502 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1506 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1516 static void GenerateInterpreterPushArgs(MacroAssembler* masm, Register num_args,
1519 ASM_CODE_COMMENT(masm);
1532 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1556 GenerateInterpreterPushArgs(masm, a3, a2, a4);
1570 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1573 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1587 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1605 GenerateInterpreterPushArgs(masm, argc_without_receiver, a4, a5);
1624 __ Jump(BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl),
1628 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1633 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1644 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1649 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1674 masm->isolate()));
1682 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1724 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1746 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1755 Generate_InterpreterEnterBytecode(masm);
1771 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1772 Generate_InterpreterEnterBytecode(masm);
1776 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1781 UseScratchRegisterScope temp(masm);
1831 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
1832 Generate_ContinueToBuiltinHelper(masm, false, false);
1836 MacroAssembler* masm) {
1837 Generate_ContinueToBuiltinHelper(masm, false, true);
1840 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
1841 Generate_ContinueToBuiltinHelper(masm, true, false);
1845 MacroAssembler* masm) {
1846 Generate_ContinueToBuiltinHelper(masm, true, true);
1849 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
1851 FrameScope scope(masm, StackFrame::INTERNAL);
1863 void Generate_OSREntry(MacroAssembler* masm, Register entry_address,
1870 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
1871 ASM_CODE_COMMENT(masm);
1873 FrameScope scope(masm, StackFrame::INTERNAL);
1899 Generate_OSREntry(masm, a0, Operand(Code::kHeaderSize - kHeapObjectTag));
1903 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
1904 return OnStackReplacement(masm, true);
1907 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
1910 return OnStackReplacement(masm, false);
1914 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
1941 UseScratchRegisterScope temps(masm);
1977 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1986 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1991 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
2010 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
2013 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
2042 UseScratchRegisterScope temps(masm);
2077 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
2081 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2109 UseScratchRegisterScope temps(masm);
2148 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2159 MacroAssembler* masm, Register count, Register argc_in_out,
2161 UseScratchRegisterScope temps(masm);
2195 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2197 UseScratchRegisterScope temps(masm);
2235 Generate_AllocateSpaceAndShiftExistingArguments(masm, a4, a0, a7);
2242 UseScratchRegisterScope temps(masm);
2270 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2279 UseScratchRegisterScope temps(masm);
2285 UseScratchRegisterScope temps(masm);
2296 FrameScope scope(masm, StackFrame::MANUAL);
2330 Generate_AllocateSpaceAndShiftExistingArguments(masm, a7, a0, a2);
2339 UseScratchRegisterScope temps(masm);
2360 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2423 FrameScope scope(masm, StackFrame::INTERNAL);
2428 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2457 FrameScope frame(masm, StackFrame::INTERNAL);
2465 void Generate_PushBoundArguments(MacroAssembler* masm) {
2471 UseScratchRegisterScope temps(masm);
2490 UseScratchRegisterScope temps(masm);
2501 FrameScope scope(masm, StackFrame::MANUAL);
2536 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2545 UseScratchRegisterScope temps(masm);
2553 Generate_PushBoundArguments(masm);
2558 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2563 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2570 UseScratchRegisterScope temps(masm);
2578 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2582 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2591 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq,
2596 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2609 __ Jump(masm->isolate()->builtins()->CallFunction(
2616 FrameScope scope(masm, StackFrame::INTERNAL);
2623 FrameScope frame(masm, StackFrame::INTERNAL);
2630 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2653 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2657 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2662 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2671 Generate_PushBoundArguments(masm);
2676 UseScratchRegisterScope temps(masm);
2688 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2692 void Builtins::Generate_Construct(MacroAssembler* masm) {
2705 UseScratchRegisterScope temps(masm);
2716 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2722 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2728 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
2738 __ Jump(masm->isolate()->builtins()->CallFunction(),
2745 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
2750 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
2783 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2784 FrameScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
2816 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
2817 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2819 FrameScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
2839 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
2862 FrameScope scope(masm, StackFrame::MANUAL);
2882 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2899 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
2924 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
2927 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
2929 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
2931 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
2938 FrameScope scope(masm, StackFrame::MANUAL);
2942 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2962 UseScratchRegisterScope temp(masm);
2969 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
3092 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
3097 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
3102 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
3107 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
3112 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
3128 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
3132 ASM_CODE_COMMENT(masm);
3133 Isolate* isolate = masm->isolate();
3146 UseScratchRegisterScope temp(masm);
3245 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3258 UseScratchRegisterScope temps(masm);
3301 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3323 FrameScope frame_scope(masm, StackFrame::MANUAL);
3365 AllowExternalCallThatCantCauseGC scope(masm);
3366 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3371 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3403 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3422 FrameScope frame_scope(masm, StackFrame::MANUAL);
3444 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3449 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3483 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3485 Isolate* isolate = masm->isolate();
3546 AllowExternalCallThatCantCauseGC scope(masm);
3607 AllowExternalCallThatCantCauseGC scope(masm);
3674 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
3675 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
3678 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
3679 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
3682 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3683 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3692 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
3715 UseScratchRegisterScope temps(masm);
3724 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
3730 UseScratchRegisterScope temps(masm);
3737 UseScratchRegisterScope temps(masm);
3739 AssertCodeIsBaseline(masm, code_obj, scratch);
3751 UseScratchRegisterScope temps(masm);
3804 FrameScope scope(masm, StackFrame::INTERNAL);
3815 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
3816 Generate_OSREntry(masm, code_obj,
3838 FrameScope scope(masm, StackFrame::INTERNAL);
3851 MacroAssembler* masm) {
3852 Generate_BaselineOrInterpreterEntry(masm, false);
3856 MacroAssembler* masm) {
3857 Generate_BaselineOrInterpreterEntry(masm, true);
3861 MacroAssembler* masm) {
3862 Generate_BaselineOrInterpreterEntry(masm, false, true);