Lines Matching refs:masm

40 #define __ ACCESS_MASM(masm)
42 void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
46 __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
50 static void GenerateTailCallToReturnedCode(MacroAssembler* masm,
52 ASM_CODE_COMMENT(masm);
59 FrameScope scope(masm, StackFrame::INTERNAL);
83 void Generate_JSBuiltinsConstructStubHelper(MacroAssembler* masm) {
100 FrameScope scope(masm, StackFrame::CONSTRUCT);
198 FrameScope scope(masm, StackFrame::INTERNAL);
207 void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
219 FrameScope scope(masm, StackFrame::MANUAL);
253 __ IncrementCounter(masm->isolate()->counters()->constructed_objects(), 1, x4,
256 __ Call(BUILTIN_CODE(masm->isolate(), FastNewObject), RelocInfo::CODE_TARGET);
273 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
274 masm->pc_offset());
356 masm->isolate()->heap()->SetConstructStubInvokeDeoptPCOffset(
357 masm->pc_offset());
410 void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
411 Generate_JSBuiltinsConstructStubHelper(masm);
414 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
415 FrameScope scope(masm, StackFrame::INTERNAL);
421 static void AssertCodeTIsBaselineAllowClobber(MacroAssembler* masm,
430 static void AssertCodeTIsBaseline(MacroAssembler* masm, Register code,
433 return AssertCodeTIsBaselineAllowClobber(masm, code, scratch);
438 static void GetSharedFunctionInfoBytecodeOrBaseline(MacroAssembler* masm,
442 ASM_CODE_COMMENT(masm);
448 AssertCodeTIsBaseline(masm, sfi_data, scratch1);
463 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
488 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
495 ExternalReference::debug_suspended_generator_address(masm->isolate());
564 GetSharedFunctionInfoBytecodeOrBaseline(masm, x3, x0, &is_baseline);
588 FrameScope scope(masm, StackFrame::INTERNAL);
601 FrameScope scope(masm, StackFrame::INTERNAL);
612 FrameScope scope(masm, StackFrame::INTERNAL);
642 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
647 NoRootArrayScope no_root_array(masm);
655 win64_unwindinfo::XdataEncoder* xdata_encoder = masm->GetXdataEncoder();
693 masm->isolate()));
705 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
742 Assembler::BlockPoolsScope block_pools(masm);
747 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
755 masm->isolate()));
772 masm->isolate()));
778 UseScratchRegisterScope temps(masm);
792 masm->isolate()->builtins()->code_handle(entry_trampoline);
800 masm->isolate()));
829 masm->isolate()));
845 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
846 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
849 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
850 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
854 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
855 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
867 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
879 FrameScope scope(masm, StackFrame::INTERNAL);
883 masm->isolate()));
966 ? BUILTIN_CODE(masm->isolate(), Construct)
967 : masm->isolate()->builtins()->Call();
978 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
979 Generate_JSEntryTrampolineHelper(masm, false);
982 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
983 Generate_JSEntryTrampolineHelper(masm, true);
986 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
993 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
996 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
999 ASM_CODE_COMMENT(masm);
1010 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
1012 ASM_CODE_COMMENT(masm);
1047 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
1051 ASM_CODE_COMMENT(masm);
1055 GenerateTailCallToReturnedCode(masm, function_id);
1059 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
1067 ASM_CODE_COMMENT(masm);
1101 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure);
1110 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
1113 static void MaybeOptimizeCode(MacroAssembler* masm, Register feedback_vector,
1122 ASM_CODE_COMMENT(masm);
1125 TailCallRuntimeIfStateEquals(masm, tiering_state,
1128 TailCallRuntimeIfStateEquals(masm, tiering_state,
1140 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
1145 ASM_CODE_COMMENT(masm);
1215 MacroAssembler* masm, Register optimization_state, Register feedback_vector,
1217 ASM_CODE_COMMENT(masm);
1228 MacroAssembler* masm, Register optimization_state,
1230 ASM_CODE_COMMENT(masm);
1240 MaybeOptimizeCode(masm, feedback_vector, tiering_state);
1248 TailCallOptimizedCodeSlot(masm, optimized_code_entry, x4);
1253 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm,
1266 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1267 UseScratchRegisterScope temps(masm);
1291 masm, optimization_state, feedback_vector, &has_optimized_code_or_state);
1295 UseScratchRegisterScope temps(masm);
1306 FrameScope frame_scope(masm, StackFrame::MANUAL);
1308 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1327 ResetBytecodeAgeAndOsrState(masm, bytecode_array);
1347 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1353 UseScratchRegisterScope temps(masm);
1373 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1376 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1383 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1387 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1413 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1427 masm, kInterpreterBytecodeArrayRegister, x11, &is_baseline);
1456 masm, optimization_state, feedback_vector, &has_optimized_code_or_state);
1472 FrameScope frame_scope(masm, StackFrame::MANUAL);
1477 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
1501 UseScratchRegisterScope temps(masm);
1547 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1557 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1570 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1577 LeaveInterpreterFrame(masm, x2, x4);
1605 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1627 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1634 ReplaceClosureCodeWithOptimizedCode(masm, x2, closure);
1638 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1642 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1650 static void GenerateInterpreterPushArgs(MacroAssembler* masm, Register num_args,
1655 ASM_CODE_COMMENT(masm);
1689 UseScratchRegisterScope temps(masm);
1726 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1744 GenerateInterpreterPushArgs(masm, num_args, first_arg_index, spread_arg_out,
1749 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1752 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1759 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1776 GenerateInterpreterPushArgs(masm, num_args, first_arg_index, spread_arg_out,
1784 __ Jump(BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl),
1788 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1793 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1797 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1801 ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
1844 UseScratchRegisterScope temps(masm);
1856 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1881 masm->isolate()));
1887 UseScratchRegisterScope temps(masm);
1894 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1913 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1922 Generate_InterpreterEnterBytecode(masm);
1938 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1939 Generate_InterpreterEnterBytecode(masm);
1943 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1954 UseScratchRegisterScope temps(masm);
2021 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
2022 Generate_ContinueToBuiltinHelper(masm, false, false);
2026 MacroAssembler* masm) {
2027 Generate_ContinueToBuiltinHelper(masm, false, true);
2030 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
2031 Generate_ContinueToBuiltinHelper(masm, true, false);
2035 MacroAssembler* masm) {
2036 Generate_ContinueToBuiltinHelper(masm, true, true);
2039 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
2041 FrameScope scope(masm, StackFrame::INTERNAL);
2053 void Generate_OSREntry(MacroAssembler* masm, Register entry_address,
2063 UseScratchRegisterScope temps(masm);
2073 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
2074 ASM_CODE_COMMENT(masm);
2076 FrameScope scope(masm, StackFrame::INTERNAL);
2112 Generate_OSREntry(masm, x0, Code::kHeaderSize - kHeapObjectTag);
2117 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
2118 return OnStackReplacement(masm, true);
2121 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
2124 return OnStackReplacement(masm, false);
2128 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
2183 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
2192 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
2197 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
2217 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
2229 UseScratchRegisterScope temps(masm);
2260 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
2263 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
2314 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
2318 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2379 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2388 void Generate_PrepareForCopyingVarargs(MacroAssembler* masm, Register argc,
2428 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2467 Generate_PrepareForCopyingVarargs(masm, argc, len);
2502 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2525 FrameScope scope(masm, StackFrame::MANUAL);
2543 Generate_PrepareForCopyingVarargs(masm, argc, len);
2570 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2628 FrameScope scope(masm, StackFrame::INTERNAL);
2632 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2660 void Generate_PushBoundArguments(MacroAssembler* masm) {
2788 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2801 Generate_PushBoundArguments(masm);
2806 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2811 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2828 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2831 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2845 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq);
2850 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2865 __ Jump(masm->isolate()->builtins()->CallFunction(
2872 FrameScope scope(masm, StackFrame::INTERNAL);
2881 FrameScope frame(masm, StackFrame::INTERNAL);
2889 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2911 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2915 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2920 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2930 Generate_PushBoundArguments(masm);
2945 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2949 void Builtins::Generate_Construct(MacroAssembler* masm) {
2980 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2986 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2992 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
3004 __ Jump(masm->isolate()->builtins()->CallFunction(),
3011 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
3016 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
3059 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
3060 FrameScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
3094 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
3095 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
3097 FrameScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
3116 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
3121 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
3126 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
3131 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
3136 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
3142 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
3150 HardAbortScope hard_aborts(masm);
3198 FrameScope scope(masm, StackFrame::MANUAL);
3254 __ Mov(x2, ExternalReference::isolate_address(masm->isolate()));
3293 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
3296 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
3298 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
3300 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
3307 FrameScope scope(masm, StackFrame::MANUAL);
3310 __ Mov(x2, ExternalReference::isolate_address(masm->isolate()));
3318 UseScratchRegisterScope temps(masm);
3336 UseScratchRegisterScope temps(masm);
3339 IsolateAddressId::kCEntryFPAddress, masm->isolate()));
3347 UseScratchRegisterScope temps(masm);
3354 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
3360 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
3361 UseScratchRegisterScope temps(masm);
3438 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
3442 ASM_CODE_COMMENT(masm);
3444 Isolate* isolate = masm->isolate();
3571 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3619 __ Mov(scratch, ExternalReference::isolate_address(masm->isolate()));
3642 FrameScope frame_scope(masm, StackFrame::MANUAL);
3687 AllowExternalCallThatCantCauseGC scope(masm);
3688 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3693 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3716 __ Mov(isolate_address, ExternalReference::isolate_address(masm->isolate()));
3739 FrameScope frame_scope(masm, StackFrame::MANUAL);
3767 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3772 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3789 void CopyRegListToFrame(MacroAssembler* masm, const Register& dst,
3793 ASM_CODE_COMMENT(masm);
3795 UseScratchRegisterScope temps(masm);
3805 masm->Add(src, sp, src_offset);
3806 masm->Add(dst, dst, dst_offset);
3810 masm->Ldp(temp0, temp1, MemOperand(src, i * reg_size));
3819 masm->Stp(temp0, temp1, MemOperand(dst, offset0));
3821 masm->Str(temp0, MemOperand(dst, offset0));
3822 masm->Str(temp1, MemOperand(dst, offset1));
3825 masm->Sub(dst, dst, dst_offset);
3828 void RestoreRegList(MacroAssembler* masm, const CPURegList& reg_list,
3830 ASM_CODE_COMMENT(masm);
3832 UseScratchRegisterScope temps(masm);
3840 masm->Add(src, src_base, src_offset);
3852 masm->Ldr(reg0, MemOperand(src, offset0));
3860 masm->Ldp(reg0, reg1, MemOperand(src, offset0));
3862 masm->Ldr(reg0, MemOperand(src, offset0));
3863 masm->Ldr(reg1, MemOperand(src, offset1));
3868 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3870 Isolate* isolate = masm->isolate();
3885 // masm scratches.
3934 AllowExternalCallThatCantCauseGC scope(masm);
3945 CopyRegListToFrame(masm, x1, FrameDescription::registers_offset(),
3949 CopyRegListToFrame(masm, x1, FrameDescription::double_registers_offset(),
3955 UseScratchRegisterScope temps(masm);
3988 AllowExternalCallThatCantCauseGC scope(masm);
3994 UseScratchRegisterScope temps(masm);
4024 RestoreRegList(masm, saved_double_registers, x1,
4028 UseScratchRegisterScope temps(masm);
4049 RestoreRegList(masm, saved_registers, last_output_frame,
4052 UseScratchRegisterScope temps(masm);
4066 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
4067 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
4070 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
4071 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
4074 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
4075 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
4084 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
4114 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
4125 AssertCodeTIsBaseline(masm, code_obj, x3);
4194 FrameScope scope(masm, StackFrame::INTERNAL);
4203 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
4204 Generate_OSREntry(masm, code_obj, Code::kHeaderSize - kHeapObjectTag);
4225 FrameScope scope(masm, StackFrame::INTERNAL);
4238 MacroAssembler* masm) {
4239 Generate_BaselineOrInterpreterEntry(masm, false);
4243 MacroAssembler* masm) {
4244 Generate_BaselineOrInterpreterEntry(masm, true);
4248 MacroAssembler* masm) {
4249 Generate_BaselineOrInterpreterEntry(masm, false, true);