Lines Matching defs:masm

35 #define __ ACCESS_MASM(masm)
37 void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
45 __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
49 static void GenerateTailCallToReturnedCode(MacroAssembler* masm,
57 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
84 void Generate_PushArguments(MacroAssembler* masm, Register array, Register argc,
88 UseScratchRegisterScope temps(masm);
105 void Generate_JSBuiltinsConstructStubHelper(MacroAssembler* masm) {
123 FrameAndConstantPoolScope scope(masm, StackFrame::CONSTRUCT);
142 Generate_PushArguments(masm, r4, r0, r5, ArgumentsElementType::kRaw);
166 FrameScope scope(masm, StackFrame::INTERNAL);
175 void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
185 FrameScope scope(masm, StackFrame::MANUAL);
212 __ IncrementCounter(masm->isolate()->counters()->constructed_objects(), 1, r4,
214 __ Call(BUILTIN_CODE(masm->isolate(), FastNewObject), RelocInfo::CODE_TARGET);
229 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
230 masm->pc_offset());
265 Generate_PushArguments(masm, r4, r0, r5, ArgumentsElementType::kRaw);
283 masm->isolate()->heap()->SetConstructStubInvokeDeoptPCOffset(
284 masm->pc_offset());
339 void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
340 Generate_JSBuiltinsConstructStubHelper(masm);
343 static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
353 static void GetSharedFunctionInfoBytecodeOrBaseline(MacroAssembler* masm,
357 ASM_CODE_COMMENT(masm);
363 AssertCodeIsBaseline(masm, sfi_data, scratch1);
378 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
401 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
410 ExternalReference::debug_suspended_generator_address(masm->isolate());
460 GetSharedFunctionInfoBytecodeOrBaseline(masm, r3, r0, &is_baseline);
483 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
495 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
505 FrameScope scope(masm, StackFrame::INTERNAL);
511 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
512 FrameScope scope(masm, StackFrame::INTERNAL);
544 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
563 NoRootArrayScope no_root_array(masm);
589 masm->isolate()));
610 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
632 Assembler::BlockConstPoolScope block_const_pool(masm);
637 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
645 IsolateAddressId::kPendingExceptionAddress, masm->isolate()));
663 masm->isolate()->builtins()->code_handle(entry_trampoline);
685 masm->isolate()));
708 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
709 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
712 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
713 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
717 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
718 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
722 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
746 FrameScope scope(masm, StackFrame::INTERNAL);
750 IsolateAddressId::kContextAddress, masm->isolate());
776 Generate_PushArguments(masm, r4, r0, r5, ArgumentsElementType::kHandle);
801 ? BUILTIN_CODE(masm->isolate(), Construct)
802 : masm->isolate()->builtins()->Call();
814 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
815 Generate_JSEntryTrampolineHelper(masm, false);
818 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
819 Generate_JSEntryTrampolineHelper(masm, true);
822 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
829 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
832 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
835 ASM_CODE_COMMENT(masm);
844 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
846 ASM_CODE_COMMENT(masm);
874 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
878 ASM_CODE_COMMENT(masm);
882 GenerateTailCallToReturnedCode(masm, function_id);
886 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
915 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure);
924 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
927 static void MaybeOptimizeCode(MacroAssembler* masm, Register feedback_vector,
939 TailCallRuntimeIfStateEquals(masm, tiering_state,
942 TailCallRuntimeIfStateEquals(masm, tiering_state,
954 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
959 ASM_CODE_COMMENT(masm);
1033 MacroAssembler* masm, Register optimization_state, Register feedback_vector,
1035 ASM_CODE_COMMENT(masm);
1046 MacroAssembler* masm, Register optimization_state,
1048 ASM_CODE_COMMENT(masm);
1058 MaybeOptimizeCode(masm, feedback_vector, tiering_state);
1065 TailCallOptimizedCodeSlot(masm, optimized_code_entry, r6);
1070 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm, Register bytecode_array,
1084 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1085 UseScratchRegisterScope temps(masm);
1099 UseScratchRegisterScope temps(masm);
1110 UseScratchRegisterScope temps(masm);
1114 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1121 UseScratchRegisterScope temps(masm);
1132 FrameScope frame_scope(masm, StackFrame::MANUAL);
1134 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1154 UseScratchRegisterScope temps(masm);
1155 ResetBytecodeAgeAndOsrState(masm, bytecodeArray, temps.Acquire());
1162 UseScratchRegisterScope temps(masm);
1175 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1181 UseScratchRegisterScope temps(masm);
1197 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1198 UseScratchRegisterScope temps(masm);
1204 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1211 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1212 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1240 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1252 masm, kInterpreterBytecodeArrayRegister, r8, &is_baseline);
1277 masm, optimization_state, feedback_vector, &has_optimized_code_or_state);
1293 FrameScope frame_scope(masm, StackFrame::MANUAL);
1296 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister, r9);
1357 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1364 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1380 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1387 LeaveInterpreterFrame(masm, r2, r4);
1415 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1435 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1442 ReplaceClosureCodeWithOptimizedCode(masm, r2, closure);
1446 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1450 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1457 static void GenerateInterpreterPushArgs(MacroAssembler* masm, Register num_args,
1460 ASM_CODE_COMMENT(masm);
1472 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1498 GenerateInterpreterPushArgs(masm, r3, r2, r4);
1515 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1518 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1532 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1552 GenerateInterpreterPushArgs(masm, argc_without_receiver, r4, r5);
1573 Handle<Code> code = BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl);
1577 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1582 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1593 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1598 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1621 masm->isolate()));
1630 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1662 UseScratchRegisterScope temps(masm);
1672 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1692 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1701 Generate_InterpreterEnterBytecode(masm);
1717 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1718 Generate_InterpreterEnterBytecode(masm);
1722 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1727 UseScratchRegisterScope temps(masm);
1775 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
1776 Generate_ContinueToBuiltinHelper(masm, false, false);
1780 MacroAssembler* masm) {
1781 Generate_ContinueToBuiltinHelper(masm, false, true);
1784 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
1785 Generate_ContinueToBuiltinHelper(masm, true, false);
1789 MacroAssembler* masm) {
1790 Generate_ContinueToBuiltinHelper(masm, true, true);
1793 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
1795 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
1806 void Generate_OSREntry(MacroAssembler* masm, Register entry_address,
1819 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
1820 ASM_CODE_COMMENT(masm);
1822 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
1846 ConstantPoolUnavailableScope constant_pool_unavailable(masm);
1854 Generate_OSREntry(masm, r0, Operand::SmiUntag(r1));
1859 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
1860 return OnStackReplacement(masm, true);
1863 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
1866 return OnStackReplacement(masm, false);
1870 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
1909 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1917 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1922 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
1941 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1944 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
1981 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1985 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2029 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2040 MacroAssembler* masm, Register count, Register argc_in_out,
2044 UseScratchRegisterScope temps(masm);
2073 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2111 Generate_AllocateSpaceAndShiftExistingArguments(masm, r4, r0, r9, r5, r6);
2140 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2162 FrameScope scope(masm, StackFrame::MANUAL);
2200 Generate_AllocateSpaceAndShiftExistingArguments(masm, r5, r0, r2, scratch,
2227 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2281 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
2286 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2314 void Generate_PushBoundArguments(MacroAssembler* masm) {
2315 ASM_CODE_COMMENT(masm);
2347 UseScratchRegisterScope temps(masm);
2362 FrameScope scope(masm, StackFrame::MANUAL);
2393 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2405 Generate_PushBoundArguments(masm);
2409 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2414 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2431 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2434 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2448 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq);
2453 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2467 __ Jump(masm->isolate()->builtins()->CallFunction(
2474 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
2483 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
2491 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2512 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2516 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2521 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2531 Generate_PushBoundArguments(masm);
2540 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2544 void Builtins::Generate_Construct(MacroAssembler* masm) {
2574 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2580 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2586 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
2597 __ Jump(masm->isolate()->builtins()->CallFunction(),
2604 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
2609 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
2614 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2615 FrameAndConstantPoolScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
2673 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
2674 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2676 FrameAndConstantPoolScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
2710 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
2715 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
2720 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
2725 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
2730 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
2736 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
2761 FrameScope scope(masm, StackFrame::MANUAL);
2791 __ Move(r2, ExternalReference::isolate_address(masm->isolate()));
2806 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
2832 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
2835 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
2837 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
2839 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
2846 FrameScope scope(masm, StackFrame::MANUAL);
2850 __ Move(r2, ExternalReference::isolate_address(masm->isolate()));
2869 UseScratchRegisterScope temps(masm);
2872 IsolateAddressId::kCEntryFPAddress, masm->isolate()));
2878 ConstantPoolUnavailableScope constant_pool_unavailable(masm);
2884 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
2887 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2888 UseScratchRegisterScope temps(masm);
2988 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
2992 ASM_CODE_COMMENT(masm);
2993 Isolate* isolate = masm->isolate();
3095 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3143 __ Move(scratch, ExternalReference::isolate_address(masm->isolate()));
3165 FrameScope frame_scope(masm, StackFrame::MANUAL);
3201 AllowExternalCallThatCantCauseGC scope(masm);
3202 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3207 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3233 __ Move(scratch, ExternalReference::isolate_address(masm->isolate()));
3246 FrameScope frame_scope(masm, StackFrame::MANUAL);
3265 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3270 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3283 void Builtins::Generate_MemCopyUint8Uint8(MacroAssembler* masm) {
3291 UseScratchRegisterScope temps(masm);
3320 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3322 Isolate* isolate = masm->isolate();
3333 UseScratchRegisterScope temps(masm);
3351 UseScratchRegisterScope temps(masm);
3384 AllowExternalCallThatCantCauseGC scope(masm);
3404 UseScratchRegisterScope temps(masm);
3418 UseScratchRegisterScope temps(masm);
3455 AllowExternalCallThatCantCauseGC scope(masm);
3496 UseScratchRegisterScope temps(masm);
3520 UseScratchRegisterScope temps(masm);
3531 UseScratchRegisterScope temps(masm);
3543 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
3544 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
3547 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
3548 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
3551 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3552 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3561 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
3589 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
3600 AssertCodeIsBaseline(masm, code_obj, r3);
3665 FrameScope scope(masm, StackFrame::INTERNAL);
3675 UseScratchRegisterScope temps(masm);
3676 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister,
3678 Generate_OSREntry(masm, code_obj,
3700 FrameScope scope(masm, StackFrame::INTERNAL);
3713 MacroAssembler* masm) {
3714 Generate_BaselineOrInterpreterEntry(masm, false);
3718 MacroAssembler* masm) {
3719 Generate_BaselineOrInterpreterEntry(masm, true);
3723 MacroAssembler* masm) {
3724 Generate_BaselineOrInterpreterEntry(masm, false, true);