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);
80 void Generate_PushArguments(MacroAssembler* masm, Register array, Register argc,
99 void Generate_JSBuiltinsConstructStubHelper(MacroAssembler* masm) {
111 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), RelocInfo::CODE_TARGET);
206 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
207 masm->pc_offset());
252 Generate_PushArguments(masm, t2, a0, t0, t1, ArgumentsElementType::kRaw);
272 masm->isolate()->heap()->SetConstructStubInvokeDeoptPCOffset(
273 masm->pc_offset());
329 void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
330 Generate_JSBuiltinsConstructStubHelper(masm);
333 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
334 FrameScope scope(masm, StackFrame::INTERNAL);
340 static void Generate_CheckStackOverflow(MacroAssembler* masm, Register argc,
342 ASM_CODE_COMMENT(masm);
381 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
387 NoRootArrayScope no_root_array(masm);
414 masm->isolate()));
443 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
464 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
471 IsolateAddressId::kPendingExceptionAddress, masm->isolate()));
496 masm->isolate()->builtins()->code_handle(entry_trampoline);
517 masm->isolate()));
534 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
535 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
538 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
539 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
543 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
544 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
548 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
561 FrameScope scope(masm, StackFrame::INTERNAL);
565 IsolateAddressId::kContextAddress, masm->isolate());
581 Generate_CheckStackOverflow(masm, t1, t0, t2);
586 Generate_PushArguments(masm, s0, a0, t2, t0, ArgumentsElementType::kHandle);
611 ? BUILTIN_CODE(masm->isolate(), Construct)
612 : masm->isolate()->builtins()->Call();
621 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
622 Generate_JSEntryTrampolineHelper(masm, false);
625 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
626 Generate_JSEntryTrampolineHelper(masm, true);
629 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
632 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
635 static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
645 static void GetSharedFunctionInfoBytecodeOrBaseline(MacroAssembler* masm,
649 ASM_CODE_COMMENT(masm);
656 AssertCodeIsBaseline(masm, sfi_data, scratch1);
670 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
693 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
700 ExternalReference::debug_suspended_generator_address(masm->isolate());
748 GetSharedFunctionInfoBytecodeOrBaseline(masm, a3, a0, &is_baseline);
773 FrameScope scope(masm, StackFrame::INTERNAL);
785 FrameScope scope(masm, StackFrame::INTERNAL);
795 FrameScope scope(masm, StackFrame::INTERNAL);
801 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
806 ASM_CODE_COMMENT(masm);
815 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
817 ASM_CODE_COMMENT(masm);
846 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
850 ASM_CODE_COMMENT(masm);
854 GenerateTailCallToReturnedCode(masm, function_id);
858 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
889 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure,
899 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
902 static void MaybeOptimizeCode(MacroAssembler* masm, Register feedback_vector,
912 ASM_CODE_COMMENT(masm);
915 TailCallRuntimeIfStateEquals(masm, tiering_state,
918 TailCallRuntimeIfStateEquals(masm, tiering_state,
930 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
936 ASM_CODE_COMMENT(masm);
1007 MacroAssembler* masm, Register optimization_state, Register feedback_vector,
1009 ASM_CODE_COMMENT(masm);
1020 MacroAssembler* masm, Register optimization_state,
1022 ASM_CODE_COMMENT(masm);
1026 UseScratchRegisterScope temps(masm);
1035 MaybeOptimizeCode(masm, feedback_vector, tiering_state);
1043 TailCallOptimizedCodeSlot(masm, optimized_code_entry, t1, t3);
1047 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm,
1060 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1061 UseScratchRegisterScope temps(masm);
1073 UseScratchRegisterScope temps(masm);
1083 UseScratchRegisterScope temps(masm);
1087 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1093 UseScratchRegisterScope temps(masm);
1104 FrameScope frame_scope(masm, StackFrame::MANUAL);
1106 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1124 ResetBytecodeAgeAndOsrState(masm, bytecode_array);
1130 UseScratchRegisterScope temps(masm);
1149 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1155 UseScratchRegisterScope temps(masm);
1171 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1172 UseScratchRegisterScope temps(masm);
1177 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1184 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1185 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1212 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1224 masm, kInterpreterBytecodeArrayRegister, kScratchReg, &is_baseline);
1271 FrameScope frame_scope(masm, StackFrame::MANUAL);
1274 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
1336 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1343 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1359 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1366 LeaveInterpreterFrame(masm, t0, t1);
1394 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1412 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1419 ReplaceClosureCodeWithOptimizedCode(masm, a2, closure, t4, t5);
1423 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1427 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1437 static void GenerateInterpreterPushArgs(MacroAssembler* masm, Register num_args,
1440 ASM_CODE_COMMENT(masm);
1453 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1478 GenerateInterpreterPushArgs(masm, t0, a2, t4, t1);
1493 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1496 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1510 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1529 GenerateInterpreterPushArgs(masm, argc_without_receiver, t4, t1, t0);
1549 __ Jump(BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl),
1553 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1558 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1569 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1574 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1596 masm->isolate()));
1604 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1645 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1667 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1676 Generate_InterpreterEnterBytecode(masm);
1692 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1693 Generate_InterpreterEnterBytecode(masm);
1697 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1702 UseScratchRegisterScope temps(masm);
1752 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
1753 Generate_ContinueToBuiltinHelper(masm, false, false);
1757 MacroAssembler* masm) {
1758 Generate_ContinueToBuiltinHelper(masm, false, true);
1761 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
1762 Generate_ContinueToBuiltinHelper(masm, true, false);
1766 MacroAssembler* masm) {
1767 Generate_ContinueToBuiltinHelper(masm, true, true);
1770 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
1772 FrameScope scope(masm, StackFrame::INTERNAL);
1785 void Generate_OSREntry(MacroAssembler* masm, Register entry_address,
1792 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
1794 FrameScope scope(masm, StackFrame::INTERNAL);
1821 Generate_OSREntry(masm, v0, Operand(Code::kHeaderSize - kHeapObjectTag));
1825 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
1826 return OnStackReplacement(masm, true);
1829 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
1832 return OnStackReplacement(masm, false);
1836 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
1878 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1886 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1891 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
1909 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1912 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
1951 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1955 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2001 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2012 MacroAssembler* masm, Register count, Register argc_in_out,
2045 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2078 Generate_AllocateSpaceAndShiftExistingArguments(masm, t0, a0, t4, t3, t1, t2);
2107 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2127 FrameScope scope(masm, StackFrame::MANUAL);
2156 Generate_AllocateSpaceAndShiftExistingArguments(masm, t2, a0, a2, t5, t6,
2185 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2240 FrameScope scope(masm, StackFrame::INTERNAL);
2245 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2272 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2308 FrameScope scope(masm, StackFrame::MANUAL);
2338 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2343 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2361 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2365 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2379 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq,
2384 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2399 __ Jump(masm->isolate()->builtins()->CallFunction(
2406 FrameScope scope(masm, StackFrame::INTERNAL);
2414 FrameScope frame(masm, StackFrame::INTERNAL);
2421 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2442 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2446 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2451 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2484 FrameScope scope(masm, StackFrame::MANUAL);
2522 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2526 void Builtins::Generate_Construct(MacroAssembler* masm) {
2556 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2562 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2568 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
2579 __ Jump(masm->isolate()->builtins()->CallFunction(),
2586 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
2591 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
2628 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2629 FrameScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
2664 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
2665 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2667 FrameScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
2686 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
2690 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
2695 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
2700 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
2705 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
2712 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
2735 FrameScope scope(masm, StackFrame::MANUAL);
2755 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2772 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
2797 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
2800 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
2802 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
2804 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
2811 FrameScope scope(masm, StackFrame::MANUAL);
2815 __ li(a2, ExternalReference::isolate_address(masm->isolate()));
2836 UseScratchRegisterScope temps(masm);
2839 masm->isolate()));
2849 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
2982 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
2986 ASM_CODE_COMMENT(masm);
2987 Isolate* isolate = masm->isolate();
3095 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3149 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3171 FrameScope frame_scope(masm, StackFrame::MANUAL);
3209 AllowExternalCallThatCantCauseGC scope(masm);
3210 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3215 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3245 __ li(scratch, ExternalReference::isolate_address(masm->isolate()));
3263 FrameScope frame_scope(masm, StackFrame::MANUAL);
3282 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3287 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3317 void Builtins::Generate_MemCopyUint8Uint8(MacroAssembler* masm) {
3832 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3834 Isolate* isolate = masm->isolate();
3895 AllowExternalCallThatCantCauseGC scope(masm);
3957 AllowExternalCallThatCantCauseGC scope(masm);
4023 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
4024 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
4027 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
4028 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
4031 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
4032 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
4041 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
4069 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
4080 AssertCodeIsBaseline(masm, code_obj, t2);
4146 FrameScope scope(masm, StackFrame::INTERNAL);
4159 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
4160 Generate_OSREntry(masm, code_obj,
4182 FrameScope scope(masm, StackFrame::INTERNAL);
4194 MacroAssembler* masm) {
4195 Generate_BaselineOrInterpreterEntry(masm, false);
4199 MacroAssembler* masm) {
4200 Generate_BaselineOrInterpreterEntry(masm, true);
4204 MacroAssembler* masm) {
4205 Generate_BaselineOrInterpreterEntry(masm, false, true);