Lines Matching refs:masm

37 #define __ ACCESS_MASM(masm)
39 void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
42 __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
46 static void GenerateTailCallToReturnedCode(MacroAssembler* masm,
53 ASM_CODE_COMMENT(masm);
55 FrameScope scope(masm, StackFrame::INTERNAL);
86 void Generate_PushArguments(MacroAssembler* masm, Register array, Register argc,
107 void Generate_JSBuiltinsConstructStubHelper(MacroAssembler* masm) {
121 FrameScope scope(masm, StackFrame::CONSTRUCT);
140 Generate_PushArguments(masm, esi, eax, ecx, no_reg,
167 FrameScope scope(masm, StackFrame::INTERNAL);
176 void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
185 FrameScope scope(masm, StackFrame::MANUAL);
217 __ IncrementCounter(masm->isolate()->counters()->constructed_objects(), 1,
219 __ Call(BUILTIN_CODE(masm->isolate(), FastNewObject), RelocInfo::CODE_TARGET);
235 masm->isolate()->heap()->SetConstructStubCreateDeoptPCOffset(
236 masm->pc_offset());
273 Generate_PushArguments(masm, edi, eax, ecx, no_reg,
294 masm->isolate()->heap()->SetConstructStubInvokeDeoptPCOffset(
295 masm->pc_offset());
351 void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
352 Generate_JSBuiltinsConstructStubHelper(masm);
355 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
356 FrameScope scope(masm, StackFrame::INTERNAL);
372 void Generate_JSEntryVariant(MacroAssembler* masm, StackFrame::Type type,
378 NoRootArrayScope uninitialized_root_register(masm);
402 IsolateAddressId::kCEntryFPAddress, masm->isolate());
413 IsolateAddressId::kContextAddress, masm->isolate());
420 IsolateAddressId::kJSEntrySPAddress, masm->isolate());
436 masm->isolate()->builtins()->SetJSEntryHandlerOffset(handler_entry.pos());
441 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
443 __ Move(eax, masm->isolate()->factory()->exception());
453 masm->isolate()->builtins()->code_handle(entry_trampoline);
484 void Builtins::Generate_JSEntry(MacroAssembler* masm) {
485 Generate_JSEntryVariant(masm, StackFrame::ENTRY, Builtin::kJSEntryTrampoline);
488 void Builtins::Generate_JSConstructEntry(MacroAssembler* masm) {
489 Generate_JSEntryVariant(masm, StackFrame::CONSTRUCT_ENTRY,
493 void Builtins::Generate_JSRunMicrotasksEntry(MacroAssembler* masm) {
494 Generate_JSEntryVariant(masm, StackFrame::ENTRY,
498 static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
501 FrameScope scope(masm, StackFrame::INTERNAL);
508 IsolateAddressId::kContextAddress, masm->isolate());
537 Generate_PushArguments(masm, scratch1, eax, ecx, scratch2,
552 ? BUILTIN_CODE(masm->isolate(), Construct)
553 : masm->isolate()->builtins()->Call();
563 void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
564 Generate_JSEntryTrampolineHelper(masm, false);
567 void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
568 Generate_JSEntryTrampolineHelper(masm, true);
571 void Builtins::Generate_RunMicrotasksTrampoline(MacroAssembler* masm) {
577 __ Jump(BUILTIN_CODE(masm->isolate(), RunMicrotasks), RelocInfo::CODE_TARGET);
580 static void GetSharedFunctionInfoBytecode(MacroAssembler* masm,
593 static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
603 static void GetSharedFunctionInfoBytecodeOrBaseline(MacroAssembler* masm,
607 ASM_CODE_COMMENT(masm);
615 AssertCodeIsBaseline(masm, sfi_data, scratch1);
632 void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
656 ExternalReference::debug_hook_on_function_call_address(masm->isolate());
662 ExternalReference::debug_suspended_generator_address(masm->isolate());
718 GetSharedFunctionInfoBytecodeOrBaseline(masm, ecx, eax, &is_baseline);
749 FrameScope scope(masm, StackFrame::INTERNAL);
762 FrameScope scope(masm, StackFrame::INTERNAL);
772 FrameScope scope(masm, StackFrame::INTERNAL);
778 static void ReplaceClosureCodeWithOptimizedCode(MacroAssembler* masm,
783 ASM_CODE_COMMENT(masm);
792 static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
794 ASM_CODE_COMMENT(masm);
825 static void TailCallRuntimeIfStateEquals(MacroAssembler* masm,
829 ASM_CODE_COMMENT(masm);
833 GenerateTailCallToReturnedCode(masm, function_id);
837 static void TailCallOptimizedCodeSlot(MacroAssembler* masm,
844 ASM_CODE_COMMENT(masm);
868 ReplaceClosureCodeWithOptimizedCode(masm, optimized_code_entry, closure, edx,
883 GenerateTailCallToReturnedCode(masm, Runtime::kHealOptimizedCodeSlot);
886 static void MaybeOptimizeCode(MacroAssembler* masm, Register tiering_state) {
893 ASM_CODE_COMMENT(masm);
896 TailCallRuntimeIfStateEquals(masm, tiering_state,
899 TailCallRuntimeIfStateEquals(masm, tiering_state,
911 static void AdvanceBytecodeOffsetOrReturn(MacroAssembler* masm,
916 ASM_CODE_COMMENT(masm);
996 MacroAssembler* masm, Register optimization_state,
998 ASM_CODE_COMMENT(masm);
1016 MacroAssembler* masm, Register optimization_state,
1018 ASM_CODE_COMMENT(masm);
1027 MaybeOptimizeCode(masm, tiering_state);
1036 TailCallOptimizedCodeSlot(masm, optimized_code_entry);
1041 void ResetBytecodeAgeAndOsrState(MacroAssembler* masm,
1067 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
1078 GetSharedFunctionInfoBytecodeOrBaseline(masm, ecx, eax, &is_baseline);
1100 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state, xmm1,
1116 FrameScope frame_scope(masm, StackFrame::MANUAL);
1129 GetSharedFunctionInfoBytecode(masm, kInterpreterBytecodeArrayRegister, eax);
1141 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
1205 masm->isolate())));
1212 masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
1227 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1237 LeaveInterpreterFrame(masm, edx, ecx);
1269 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1276 GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
1294 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state, xmm1,
1303 ReplaceClosureCodeWithOptimizedCode(masm, ecx, closure, eax, ecx);
1311 GenerateTailCallToReturnedCode(masm, Runtime::kInstallBaselineCode);
1319 static void GenerateInterpreterPushArgs(MacroAssembler* masm,
1327 ASM_CODE_COMMENT(masm);
1340 MacroAssembler* masm, ConvertReceiverMode receiver_mode,
1380 GenerateInterpreterPushArgs(masm, scratch, argv);
1385 GenerateInterpreterPushArgs(masm, scratch, argv);
1398 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithSpread),
1401 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny),
1419 MacroAssembler* masm, Register num_args, Register start_addr,
1480 MacroAssembler* masm, InterpreterPushArgsMode mode) {
1502 masm, eax, ecx, edx, edi,
1524 __ Jump(BUILTIN_CODE(masm->isolate(), ArrayConstructorImpl),
1536 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithSpread),
1546 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
1554 static void Generate_InterpreterEnterBytecode(MacroAssembler* masm) {
1559 masm->isolate()->heap()->interpreter_entry_return_pc_offset());
1586 masm->isolate()),
1597 masm->isolate())));
1636 void Builtins::Generate_InterpreterEnterAtNextBytecode(MacroAssembler* masm) {
1653 AdvanceBytecodeOffsetOrReturn(masm, kInterpreterBytecodeArrayRegister,
1664 Generate_InterpreterEnterBytecode(masm);
1681 void Builtins::Generate_InterpreterEnterAtBytecode(MacroAssembler* masm) {
1682 Generate_InterpreterEnterBytecode(masm);
1685 void Builtins::Generate_BaselineOutOfLinePrologue(MacroAssembler* masm) {
1720 LoadTieringStateAndJumpIfNeedsProcessing(masm, optimization_state,
1734 FrameScope frame_scope(masm, StackFrame::MANUAL);
1736 ASM_CODE_COMMENT_STRING(masm, "Frame Setup");
1753 ResetBytecodeAgeAndOsrState(masm, bytecode_array);
1763 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt check");
1788 ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
1795 MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(masm, optimization_state,
1802 ASM_CODE_COMMENT_STRING(masm, "Stack/interrupt call");
1807 FrameScope frame_scope(masm, StackFrame::INTERNAL);
1823 void Generate_ContinueToBuiltinHelper(MacroAssembler* masm,
1879 void Builtins::Generate_ContinueToCodeStubBuiltin(MacroAssembler* masm) {
1880 Generate_ContinueToBuiltinHelper(masm, false, false);
1884 MacroAssembler* masm) {
1885 Generate_ContinueToBuiltinHelper(masm, false, true);
1888 void Builtins::Generate_ContinueToJavaScriptBuiltin(MacroAssembler* masm) {
1889 Generate_ContinueToBuiltinHelper(masm, true, false);
1893 MacroAssembler* masm) {
1894 Generate_ContinueToBuiltinHelper(masm, true, true);
1897 void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
1899 FrameScope scope(masm, StackFrame::INTERNAL);
1910 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
1965 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
1973 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
1978 void Builtins::Generate_FunctionPrototypeCall(MacroAssembler* masm) {
2014 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
2017 void Builtins::Generate_ReflectApply(MacroAssembler* masm) {
2069 __ Jump(BUILTIN_CODE(masm->isolate(), CallWithArrayLike),
2073 void Builtins::Generate_ReflectConstruct(MacroAssembler* masm) {
2108 eax, masm->RootAsOperand(RootIndex::kUndefinedValue), ecx,
2133 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructWithArrayLike),
2144 MacroAssembler* masm, Register count, Register argc_in_out,
2184 void Builtins::Generate_CallOrConstructVarargs(MacroAssembler* masm,
2237 Generate_AllocateSpaceAndShiftExistingArguments(masm, kArgumentsLength, eax,
2278 void Builtins::Generate_CallOrConstructForwardVarargs(MacroAssembler* masm,
2303 FrameScope scope(masm, StackFrame::MANUAL);
2342 Generate_AllocateSpaceAndShiftExistingArguments(masm, edx, eax, esi, ebx,
2382 void Builtins::Generate_CallFunction(MacroAssembler* masm,
2441 FrameScope scope(masm, StackFrame::INTERNAL);
2447 __ Call(BUILTIN_CODE(masm->isolate(), ToObject),
2476 void Generate_PushBoundArguments(MacroAssembler* masm) {
2507 FrameScope frame(masm, StackFrame::MANUAL);
2559 void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm) {
2572 Generate_PushBoundArguments(masm);
2576 __ Jump(BUILTIN_CODE(masm->isolate(), Call_ReceiverIsAny),
2581 void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
2603 __ Jump(masm->isolate()->builtins()->CallFunction(mode),
2609 __ Jump(BUILTIN_CODE(masm->isolate(), CallBoundFunction),
2622 __ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET);
2629 __ Jump(BUILTIN_CODE(masm->isolate(), CallWrappedFunction),
2644 __ Jump(masm->isolate()->builtins()->CallFunction(
2651 FrameScope scope(masm, StackFrame::INTERNAL);
2660 FrameScope frame(masm, StackFrame::INTERNAL);
2668 void Builtins::Generate_ConstructFunction(MacroAssembler* masm) {
2688 __ Jump(BUILTIN_CODE(masm->isolate(), JSBuiltinsConstructStub),
2695 __ Jump(BUILTIN_CODE(masm->isolate(), JSConstructStubGeneric),
2700 void Builtins::Generate_ConstructBoundFunction(MacroAssembler* masm) {
2710 Generate_PushBoundArguments(masm);
2723 __ Jump(BUILTIN_CODE(masm->isolate(), Construct), RelocInfo::CODE_TARGET);
2727 void Builtins::Generate_Construct(MacroAssembler* masm) {
2755 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructFunction),
2764 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructBoundFunction),
2771 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructProxy),
2782 __ Jump(masm->isolate()->builtins()->CallFunction(),
2789 __ Jump(BUILTIN_CODE(masm->isolate(), ConstructedNonConstructable),
2795 void Generate_OSREntry(MacroAssembler* masm, Register entry_address) {
2796 ASM_CODE_COMMENT(masm);
2804 void OnStackReplacement(MacroAssembler* masm, bool is_interpreter) {
2805 ASM_CODE_COMMENT(masm);
2807 FrameScope scope(masm, StackFrame::INTERNAL);
2838 Generate_OSREntry(masm, eax);
2843 void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
2844 return OnStackReplacement(masm, true);
2847 void Builtins::Generate_BaselineOnStackReplacement(MacroAssembler* masm) {
2850 return OnStackReplacement(masm, false);
2854 void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
2859 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2860 FrameScope scope(masm, StackFrame::WASM_COMPILE_LAZY);
2920 void Builtins::Generate_WasmDebugBreak(MacroAssembler* masm) {
2921 HardAbortScope hard_abort(masm); // Avoid calls to Abort.
2923 FrameScope scope(masm, StackFrame::WASM_DEBUG_BREAK);
2961 void Builtins::Generate_GenericJSToWasmWrapper(MacroAssembler* masm) {
2966 void Builtins::Generate_WasmReturnPromiseOnSuspend(MacroAssembler* masm) {
2971 void Builtins::Generate_WasmSuspend(MacroAssembler* masm) {
2976 void Builtins::Generate_WasmResume(MacroAssembler* masm) {
2981 void Builtins::Generate_WasmOnStackReplace(MacroAssembler* masm) {
2987 void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
3046 __ Move(ecx, Immediate(ExternalReference::isolate_address(masm->isolate())));
3064 IsolateAddressId::kPendingExceptionAddress, masm->isolate());
3082 IsolateAddressId::kPendingHandlerContextAddress, masm->isolate());
3085 IsolateAddressId::kPendingHandlerEntrypointAddress, masm->isolate());
3087 IsolateAddressId::kPendingHandlerFPAddress, masm->isolate());
3089 IsolateAddressId::kPendingHandlerSPAddress, masm->isolate());
3096 FrameScope scope(masm, StackFrame::MANUAL);
3101 Immediate(ExternalReference::isolate_address(masm->isolate())));
3122 IsolateAddressId::kCEntryFPAddress, masm->isolate());
3131 void Builtins::Generate_DoubleToI(MacroAssembler* masm) {
3159 CpuFeatureScope scope(masm, SSE3);
3186 CpuFeatureScope scope(masm, SSE3);
3238 void PrepareCallApiFunction(MacroAssembler* masm, int argc, Register scratch) {
3239 ASM_CODE_COMMENT(masm);
3250 void CallApiFunctionAndReturn(MacroAssembler* masm, Register function_address,
3255 Isolate* isolate = masm->isolate();
3393 void Builtins::Generate_CallApiCallback(MacroAssembler* masm) {
3447 __ Push(Immediate(ExternalReference::isolate_address(masm->isolate())));
3469 PrepareCallApiFunction(masm, kApiArgc + kApiStackSpace, edi);
3505 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
3510 void Builtins::Generate_CallApiGetter(MacroAssembler* masm) {
3534 __ Push(Immediate(ExternalReference::isolate_address(masm->isolate())));
3548 PrepareCallApiFunction(masm, kApiArgc, scratch);
3579 CallApiFunctionAndReturn(masm, function_address, thunk_ref, thunk_last_arg,
3584 void Builtins::Generate_DirectCEntry(MacroAssembler* masm) {
3598 void MemMoveEmitMainLoop(MacroAssembler* masm, Label* move_last_15,
3600 ASM_CODE_COMMENT(masm);
3648 void MemMoveEmitPopAndReturn(MacroAssembler* masm) {
3656 void Builtins::Generate_MemMove(MacroAssembler* masm) {
3734 MemMoveEmitMainLoop(masm, &move_last_15, FORWARD, MOVE_ALIGNED);
3742 MemMoveEmitPopAndReturn(masm);
3746 MemMoveEmitMainLoop(masm, &move_last_15, FORWARD, MOVE_UNALIGNED);
3763 MemMoveEmitMainLoop(masm, &last_15_much_overlap, FORWARD, MOVE_UNALIGNED);
3799 MemMoveEmitMainLoop(masm, &move_first_15, BACKWARD, MOVE_ALIGNED);
3809 MemMoveEmitPopAndReturn(masm);
3813 MemMoveEmitMainLoop(masm, &move_first_15, BACKWARD, MOVE_UNALIGNED);
3830 MemMoveEmitMainLoop(masm, &first_15_much_overlap, BACKWARD, MOVE_UNALIGNED);
3852 MemMoveEmitPopAndReturn(masm);
3859 MemMoveEmitPopAndReturn(masm);
3868 MemMoveEmitPopAndReturn(masm);
3879 MemMoveEmitPopAndReturn(masm);
3910 MemMoveEmitPopAndReturn(masm);
3915 MemMoveEmitPopAndReturn(masm);
3920 MemMoveEmitPopAndReturn(masm);
3927 MemMoveEmitPopAndReturn(masm);
3932 MemMoveEmitPopAndReturn(masm);
3939 MemMoveEmitPopAndReturn(masm);
3973 MemMoveEmitPopAndReturn(masm);
3978 void Generate_DeoptimizationEntry(MacroAssembler* masm,
3980 Isolate* isolate = masm->isolate();
3999 __ mov(masm->ExternalReferenceAsOperand(c_entry_fp_address, esi), ebp);
4026 Immediate(ExternalReference::isolate_address(masm->isolate())));
4028 AllowExternalCallThatCantCauseGC scope(masm);
4091 AllowExternalCallThatCantCauseGC scope(masm);
4157 void Builtins::Generate_DeoptimizationEntry_Eager(MacroAssembler* masm) {
4158 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kEager);
4161 void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
4162 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
4165 void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
4166 Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
4175 void Generate_BaselineOrInterpreterEntry(MacroAssembler* masm,
4208 __ Jump(masm->isolate()->builtins()->code_handle(builtin_id),
4218 AssertCodeIsBaseline(masm, code_obj, ecx);
4276 FrameScope scope(masm, StackFrame::INTERNAL);
4292 ResetBytecodeAgeAndOsrState(masm, kInterpreterBytecodeArrayRegister);
4293 Generate_OSREntry(masm, code_obj);
4321 FrameScope scope(masm, StackFrame::INTERNAL);
4337 MacroAssembler* masm) {
4338 Generate_BaselineOrInterpreterEntry(masm, false);
4342 MacroAssembler* masm) {
4343 Generate_BaselineOrInterpreterEntry(masm, true);
4347 MacroAssembler* masm) {
4348 Generate_BaselineOrInterpreterEntry(masm, false, true);