Lines Matching refs:masm
36 #define __ ACCESS_MASM(masm)
38 void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
40 __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
44 static void GenerateTailCallToReturnedCode(MacroAssembler* masm,
52 FrameScope scope(masm, StackFrame::INTERNAL);
79 void Generate_PushArguments(MacroAssembler* masm, Register array, Register argc,
98 void Generate_JSBuiltinsConstructStubHelper(MacroAssembler* masm) {
110 FrameScope scope(masm, StackFrame::CONSTRUCT);
124 Generate_PushArguments(masm, t2, a0, t3, t0, ArgumentsElementType::kRaw);
150 void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
161 FrameScope scope(masm, StackFrame::MANUAL);
188 __ IncrementCounter(masm->isolate()->counters()->constructed_objects(), 1,
190 __ Call(BUILTIN_CODE(masm->isolate(), FastNewObject),
207 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
208 masm->pc_offset());
253 Generate_PushArguments(masm, t2, a0, t0, t1, ArgumentsElementType::kRaw);
272 masm->isolate()->heap()->SetConstructStubInvokeDeoptPCOffset(
273 masm->pc_offset());
327 void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
328 Generate_JSBuiltinsConstructStubHelper(masm);
331 static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
343 static void GetSharedFunctionInfoBytecodeOrBaseline(MacroAssembler* masm,
353 AssertCodeIsBaseline(masm, sfi_data, scratch1);
366 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
387 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
394 ExternalReference::debug_suspended_generator_address(masm->isolate());
444 GetSharedFunctionInfoBytecodeOrBaseline(masm, a3, a0, &is_baseline);
469 FrameScope scope(masm, StackFrame::INTERNAL);
481 FrameScope scope(masm, StackFrame::INTERNAL);
491 FrameScope scope(masm, StackFrame::INTERNAL);
497 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
498 FrameScope scope(masm, StackFrame::INTERNAL);
504 static void Generate_CheckStackOverflow(MacroAssembler* masm, Register argc,
535 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
540 NoRootArrayScope no_root_array(masm);
582 IsolateAddressId::kCEntryFPAddress, masm->isolate());
618 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
639 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
646 IsolateAddressId::kPendingExceptionAddress, masm->isolate()));
683 masm->isolate()->builtins()->code_handle(entry_trampoline);
702 masm->isolate()));
719 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
720 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
723 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
724 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
728 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
729 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
733 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
745 FrameScope scope(masm, StackFrame::INTERNAL);
749 IsolateAddressId::kContextAddress, masm->isolate());
758 Generate_CheckStackOverflow(masm, a6, a0, s2);
763 Generate_PushArguments(masm, a5, a4, s1, s2, ArgumentsElementType::kHandle);
789 ? BUILTIN_CODE(masm->isolate(), Construct)
790 : masm->isolate()->builtins()->Call();
798 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
799 Generate_JSEntryTrampolineHelper(masm, false);
802 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
803 Generate_JSEntryTrampolineHelper(masm, true);
806 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
809 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
812 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
826 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
856 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
863 GenerateTailCallToReturnedCode(masm, function_id);
867 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
898 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure,
910 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
913 static void MaybeOptimizeCode(MacroAssembler* masm, Register feedback_vector,
925 TailCallRuntimeIfStateEquals(masm, tiering_state,
928 TailCallRuntimeIfStateEquals(masm, tiering_state,
940 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
1016 MacroAssembler* masm, Register optimization_state, Register feedback_vector,
1018 ASM_CODE_COMMENT(masm);
1029 MacroAssembler* masm, Register optimization_state,
1031 ASM_CODE_COMMENT(masm);
1035 UseScratchRegisterScope temps(masm);
1044 MaybeOptimizeCode(masm, feedback_vector, tiering_state);
1051 TailCallOptimizedCodeSlot(masm, optimized_code_entry, t3, a5);
1055 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm,
1068 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1069 UseScratchRegisterScope temps(masm);
1081 UseScratchRegisterScope temps(masm);
1091 UseScratchRegisterScope temps(masm);
1095 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1101 UseScratchRegisterScope temps(masm);
1112 FrameScope frame_scope(masm, StackFrame::MANUAL);
1114 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1132 ResetBytecodeAgeAndOsrState(masm, bytecode_array);
1138 UseScratchRegisterScope temps(masm);
1157 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1163 UseScratchRegisterScope temps(masm);
1179 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1180 UseScratchRegisterScope temps(masm);
1185 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1192 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1193 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1220 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1232 masm, kInterpreterBytecodeArrayRegister, kScratchReg, &is_baseline);
1279 FrameScope frame_scope(masm, StackFrame::MANUAL);
1282 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
1344 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1351 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1368 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1375 LeaveInterpreterFrame(masm, t0, t1);
1403 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1421 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1428 ReplaceClosureCodeWithOptimizedCode(masm, a2, closure, t0, t1);
1432 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1435 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1445 static void GenerateInterpreterPushArgs(MacroAssembler* masm, Register num_args,
1460 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1485 GenerateInterpreterPushArgs(masm, a3, a2, a4, t0);
1500 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1503 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1517 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1536 GenerateInterpreterPushArgs(masm, argc_without_receiver, a4, a5, t0);
1555 __ Jump(BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl),
1559 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1564 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1575 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1580 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1602 masm->isolate()));
1610 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1650 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1672 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1681 Generate_InterpreterEnterBytecode(masm);
1697 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1698 Generate_InterpreterEnterBytecode(masm);
1702 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1707 UseScratchRegisterScope temps(masm);
1757 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
1758 Generate_ContinueToBuiltinHelper(masm, false, false);
1762 MacroAssembler* masm) {
1763 Generate_ContinueToBuiltinHelper(masm, false, true);
1766 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
1767 Generate_ContinueToBuiltinHelper(masm, true, false);
1771 MacroAssembler* masm) {
1772 Generate_ContinueToBuiltinHelper(masm, true, true);
1775 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
1777 FrameScope scope(masm, StackFrame::INTERNAL);
1790 void Generate_OSREntry(MacroAssembler* masm, Register entry_address,
1797 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
1799 FrameScope scope(masm, StackFrame::INTERNAL);
1824 Generate_OSREntry(masm, v0, Operand(Code::kHeaderSize - kHeapObjectTag));
1828 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
1829 return OnStackReplacement(masm, true);
1832 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
1835 return OnStackReplacement(masm, false);
1839 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
1890 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1899 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1904 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
1924 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1927 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
1982 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1986 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2046 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2057 MacroAssembler* masm, Register count, Register argc_in_out,
2090 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2126 Generate_AllocateSpaceAndShiftExistingArguments(masm, a4, a0, a7, a6, t0, t1);
2160 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2180 FrameScope scope(masm, StackFrame::MANUAL);
2210 Generate_AllocateSpaceAndShiftExistingArguments(masm, a7, a0, a2, t0, t1,
2239 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2294 FrameScope scope(masm, StackFrame::INTERNAL);
2299 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2326 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2361 FrameScope scope(masm, StackFrame::MANUAL);
2392 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2397 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2414 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2418 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2431 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq,
2436 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2451 __ Jump(masm->isolate()->builtins()->CallFunction(
2458 FrameScope scope(masm, StackFrame::INTERNAL);
2466 FrameScope frame(masm, StackFrame::INTERNAL);
2472 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2493 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2497 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2502 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2534 FrameScope scope(masm, StackFrame::MANUAL);
2573 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2577 void Builtins::Generate_Construct(MacroAssembler* masm) {
2607 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2613 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2619 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
2630 __ Jump(masm->isolate()->builtins()->CallFunction(),
2637 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
2642 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
2679 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2680 FrameScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
2694 masm, MIPS_SIMD, CpuFeatureScope::CheckPolicy::kDontCheckSupported);
2722 masm, MIPS_SIMD, CpuFeatureScope::CheckPolicy::kDontCheckSupported);
2749 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
2750 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2752 FrameScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
2771 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
2775 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
2780 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
2785 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
2790 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
2797 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
2820 FrameScope scope(masm, StackFrame::MANUAL);
2840 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2857 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
2882 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
2885 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
2887 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
2889 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
2896 FrameScope scope(masm, StackFrame::MANUAL);
2900 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2921 UseScratchRegisterScope temps(masm);
2924 masm->isolate()));
2934 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
3070 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
3074 Isolate* isolate = masm->isolate();
3180 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3234 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3256 FrameScope frame_scope(masm, StackFrame::MANUAL);
3299 AllowExternalCallThatCantCauseGC scope(masm);
3300 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3305 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3335 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3353 FrameScope frame_scope(masm, StackFrame::MANUAL);
3373 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3378 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3412 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3414 Isolate* isolate = masm->isolate();
3475 AllowExternalCallThatCantCauseGC scope(masm);
3536 AllowExternalCallThatCantCauseGC scope(masm);
3602 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
3603 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
3606 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
3607 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
3610 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3611 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3620 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
3648 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
3659 AssertCodeIsBaseline(masm, code_obj, t2);
3724 FrameScope scope(masm, StackFrame::INTERNAL);
3737 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
3738 Generate_OSREntry(masm, code_obj,
3760 FrameScope scope(masm, StackFrame::INTERNAL);
3773 MacroAssembler* masm) {
3774 Generate_BaselineOrInterpreterEntry(masm, false);
3778 MacroAssembler* masm) {
3779 Generate_BaselineOrInterpreterEntry(masm, true);
3783 MacroAssembler* masm) {
3784 Generate_BaselineOrInterpreterEntry(masm, false, true);