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, t2,
190 __ Call(BUILTIN_CODE(masm->isolate(), FastNewObject), RelocInfo::CODE_TARGET);
206 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
207 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);
367 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
388 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
395 ExternalReference::debug_suspended_generator_address(masm->isolate());
446 GetSharedFunctionInfoBytecodeOrBaseline(masm, a3, t5, &is_baseline);
470 FrameScope scope(masm, StackFrame::INTERNAL);
482 FrameScope scope(masm, StackFrame::INTERNAL);
492 FrameScope scope(masm, StackFrame::INTERNAL);
498 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
499 FrameScope scope(masm, StackFrame::INTERNAL);
505 static void Generate_CheckStackOverflow(MacroAssembler* masm, Register argc,
536 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
541 NoRootArrayScope no_root_array(masm);
579 IsolateAddressId::kCEntryFPAddress, masm->isolate());
615 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
636 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
643 IsolateAddressId::kPendingExceptionAddress, masm->isolate()));
681 masm->isolate()->builtins()->code_handle(entry_trampoline);
700 masm->isolate()));
717 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
718 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
721 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
722 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
726 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
727 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
731 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
743 FrameScope scope(masm, StackFrame::INTERNAL);
747 IsolateAddressId::kContextAddress, masm->isolate());
756 Generate_CheckStackOverflow(masm, a6, a0, s2);
761 Generate_PushArguments(masm, a5, a4, s1, s2, ArgumentsElementType::kHandle);
787 ? BUILTIN_CODE(masm->isolate(), Construct)
788 : masm->isolate()->builtins()->Call();
796 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
797 Generate_JSEntryTrampolineHelper(masm, false);
800 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
801 Generate_JSEntryTrampolineHelper(masm, true);
804 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
807 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
810 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
821 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
851 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
858 GenerateTailCallToReturnedCode(masm, function_id);
862 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
891 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure);
901 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
904 static void MaybeOptimizeCode(MacroAssembler* masm, Register feedback_vector,
915 TailCallRuntimeIfStateEquals(masm, tiering_state,
918 TailCallRuntimeIfStateEquals(masm, tiering_state,
930 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
1006 MacroAssembler* masm, Register optimization_state, Register feedback_vector,
1008 ASM_CODE_COMMENT(masm);
1022 MacroAssembler* masm, Register optimization_state,
1024 ASM_CODE_COMMENT(masm);
1028 UseScratchRegisterScope temps(masm);
1037 MaybeOptimizeCode(masm, feedback_vector, tiering_state);
1045 TailCallOptimizedCodeSlot(masm, optimized_code_entry);
1049 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm,
1062 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1063 UseScratchRegisterScope temps(masm);
1077 UseScratchRegisterScope temps(masm);
1087 UseScratchRegisterScope temps(masm);
1091 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1097 UseScratchRegisterScope temps(masm);
1108 FrameScope frame_scope(masm, StackFrame::MANUAL);
1110 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1128 ResetBytecodeAgeAndOsrState(masm, bytecode_array);
1134 UseScratchRegisterScope temps(masm);
1153 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1159 UseScratchRegisterScope temps(masm);
1175 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1176 UseScratchRegisterScope temps(masm);
1181 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1188 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1189 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1216 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1229 masm, kInterpreterBytecodeArrayRegister, kScratchReg, &is_baseline);
1277 FrameScope frame_scope(masm, StackFrame::MANUAL);
1280 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
1342 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1350 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1367 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1374 LeaveInterpreterFrame(masm, t0, t1);
1402 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1421 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1428 ReplaceClosureCodeWithOptimizedCode(masm, a2, closure);
1432 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1436 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1446 static void GenerateInterpreterPushArgs(MacroAssembler* masm, Register num_args,
1461 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1486 GenerateInterpreterPushArgs(masm, a3, a2, a4, t0);
1501 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1504 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1518 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1538 GenerateInterpreterPushArgs(masm, argc_without_receiver, a4, a5, t0);
1557 __ Jump(BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl),
1561 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1566 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1577 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1582 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1605 masm->isolate()));
1613 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1653 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1675 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1684 Generate_InterpreterEnterBytecode(masm);
1700 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1701 Generate_InterpreterEnterBytecode(masm);
1705 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1710 UseScratchRegisterScope temps(masm);
1761 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
1762 Generate_ContinueToBuiltinHelper(masm, false, false);
1766 MacroAssembler* masm) {
1767 Generate_ContinueToBuiltinHelper(masm, false, true);
1770 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
1771 Generate_ContinueToBuiltinHelper(masm, true, false);
1775 MacroAssembler* masm) {
1776 Generate_ContinueToBuiltinHelper(masm, true, true);
1779 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
1781 FrameScope scope(masm, StackFrame::INTERNAL);
1793 void Generate_OSREntry(MacroAssembler* masm, Register entry_address,
1800 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
1802 FrameScope scope(masm, StackFrame::INTERNAL);
1829 Generate_OSREntry(masm, a0, Operand(Code::kHeaderSize - kHeapObjectTag));
1833 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
1834 return OnStackReplacement(masm, true);
1837 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
1840 return OnStackReplacement(masm, false);
1844 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
1895 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1904 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1909 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
1927 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1930 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
1985 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1989 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2049 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2060 MacroAssembler* masm, Register count, Register argc_in_out,
2093 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2129 Generate_AllocateSpaceAndShiftExistingArguments(masm, a4, a0, a7, a6, t0, t1);
2163 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2183 FrameScope scope(masm, StackFrame::MANUAL);
2213 Generate_AllocateSpaceAndShiftExistingArguments(masm, a7, a0, a2, t0, t1,
2242 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2297 FrameScope scope(masm, StackFrame::INTERNAL);
2302 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2329 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2364 FrameScope scope(masm, StackFrame::MANUAL);
2395 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2400 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2418 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2422 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2435 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq,
2440 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2455 __ Jump(masm->isolate()->builtins()->CallFunction(
2462 FrameScope scope(masm, StackFrame::INTERNAL);
2470 FrameScope frame(masm, StackFrame::INTERNAL);
2476 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2497 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2501 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2506 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2538 FrameScope scope(masm, StackFrame::MANUAL);
2578 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2582 void Builtins::Generate_Construct(MacroAssembler* masm) {
2612 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2618 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2624 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
2635 __ Jump(masm->isolate()->builtins()->CallFunction(),
2642 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
2647 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
2684 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2685 FrameScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
2726 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
2727 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2729 FrameScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
2748 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
2752 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
2757 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
2762 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
2767 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
2774 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
2797 FrameScope scope(masm, StackFrame::MANUAL);
2817 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2834 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
2859 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
2862 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
2864 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
2866 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
2873 FrameScope scope(masm, StackFrame::MANUAL);
2877 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2898 UseScratchRegisterScope temps(masm);
2901 masm->isolate()));
2911 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
3049 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
3053 Isolate* isolate = masm->isolate();
3157 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3211 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3233 FrameScope frame_scope(masm, StackFrame::MANUAL);
3276 AllowExternalCallThatCantCauseGC scope(masm);
3277 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3282 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3313 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3331 FrameScope frame_scope(masm, StackFrame::MANUAL);
3351 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3356 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3385 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3387 Isolate* isolate = masm->isolate();
3448 AllowExternalCallThatCantCauseGC scope(masm);
3508 AllowExternalCallThatCantCauseGC scope(masm);
3574 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
3575 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
3578 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
3579 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
3582 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3583 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3592 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
3620 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
3631 AssertCodeIsBaseline(masm, code_obj, t2);
3697 FrameScope scope(masm, StackFrame::INTERNAL);
3710 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
3711 Generate_OSREntry(masm, code_obj,
3733 FrameScope scope(masm, StackFrame::INTERNAL);
3746 MacroAssembler* masm) {
3747 Generate_BaselineOrInterpreterEntry(masm, false);
3751 MacroAssembler* masm) {
3752 Generate_BaselineOrInterpreterEntry(masm, true);
3756 MacroAssembler* masm) {
3757 Generate_BaselineOrInterpreterEntry(masm, false, true);