Home | History | Annotate | Download | only in arm64

Lines Matching refs:masm

25 #define __ ACCESS_MASM(masm)
27 void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
47 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
56 FrameScope scope(masm, StackFrame::INTERNAL);
61 MacroAssembler::PushPopQueue queue(masm);
74 void DoubleToIStub::Generate(MacroAssembler* masm) {
81 DCHECK(jssp.Is(masm->StackPointer()));
123 if (masm->emit_debug_code()) {
154 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Register left,
253 static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
261 if (masm->emit_debug_code()) {
307 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
380 MacroAssembler* masm, Register left, Register right, Register left_map,
436 static void CompareICStub_CheckInputType(MacroAssembler* masm, Register input,
452 void CompareICStub::GenerateGeneric(MacroAssembler* masm) {
459 CompareICStub_CheckInputType(masm, lhs, left(), &miss);
460 CompareICStub_CheckInputType(masm, rhs, right(), &miss);
477 EmitIdenticalObjectComparison(masm, lhs, rhs, x10, d0, &slow, cond);
493 EmitSmiNonsmiComparison(masm, lhs, rhs, lhs_d, rhs_d, &slow, strict());
535 EmitStrictTwoHeapObjectCompare(masm, lhs, rhs, lhs_type, rhs_type, x14);
562 EmitCheckForInternalizedStringsOrObjects(masm, lhs, rhs, lhs_map, rhs_map,
576 StringHelper::GenerateFlatOneByteStringEquals(masm, lhs, rhs, x10, x11,
579 StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, x10, x11,
592 FrameScope scope(masm, StackFrame::INTERNAL);
619 GenerateMiss(masm);
623 void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
632 saved_regs.Remove(*(masm->TmpList()));
633 saved_fp_regs.Remove(*(masm->FPTmpList()));
640 AllowExternalCallThatCantCauseGC scope(masm);
662 void StoreRegistersStateStub::Generate(MacroAssembler* masm) {
663 MacroAssembler::NoUseRealAbortsScope no_use_real_aborts(masm);
664 UseScratchRegisterScope temps(masm);
676 void RestoreRegistersStateStub::Generate(MacroAssembler* masm) {
677 MacroAssembler::NoUseRealAbortsScope no_use_real_aborts(masm);
678 UseScratchRegisterScope temps(masm);
687 void MathPowStub::Generate(MacroAssembler* masm) {
795 if (masm->emit_debug_code()) {
796 UseScratchRegisterScope temps(masm);
833 AllowExternalCallThatCantCauseGC scope(masm);
920 AllowExternalCallThatCantCauseGC scope(masm);
994 void CEntryStub::Generate(MacroAssembler* masm) {
1000 MacroAssembler::NoUseRealAbortsScope no_use_real_aborts(masm);
1003 ProfileEntryHookStub::MaybeCallEntryHook(masm);
1052 FrameScope scope(masm, StackFrame::MANUAL);
1123 UseScratchRegisterScope temps(masm);
1197 DCHECK(csp.Is(masm->StackPointer()));
1199 FrameScope scope(masm, StackFrame::MANUAL);
1248 void JSEntryStub::Generate(MacroAssembler* masm) {
1268 ProfileEntryHookStub::MaybeCallEntryHook(masm);
1320 Assembler::BlockPoolsScope block_pools(masm);
1410 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
1418 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, x10,
1423 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1427 void LoadIndexedStringStub::Generate(MacroAssembler* masm) {
1447 char_at_generator.GenerateFast(masm);
1451 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper);
1455 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
1459 void RegExpExecStub::Generate(MacroAssembler* masm) {
1758 stub.GenerateCall(masm, code_object);
1909 if (masm->emit_debug_code()) {
1944 static void CallStubInRecordCallTarget(MacroAssembler* masm, CodeStub* stub,
1948 FrameScope scope(masm, StackFrame::INTERNAL);
1962 static void GenerateRecordCallTarget(MacroAssembler* masm, Register argc,
1979 DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
1980 masm->isolate()->heap()->megamorphic_symbol());
1981 DCHECK_EQ(*TypeFeedbackVector::UninitializedSentinel(masm->isolate()),
1982 masm->isolate()->heap()->uninitialized_symbol());
2050 CreateAllocationSiteStub create_stub(masm->isolate());
2051 CallStubInRecordCallTarget(masm, &create_stub, argc, function,
2056 CreateWeakCellStub weak_cell_stub(masm->isolate());
2057 CallStubInRecordCallTarget(masm, &weak_cell_stub, argc, function,
2083 void CallConstructStub::Generate(MacroAssembler* masm) {
2099 GenerateRecordCallTarget(masm, x0, function, x2, x3, x4, x5, x11, x12);
2128 void CallICStub::HandleArrayCase(MacroAssembler* masm, Label* miss) {
2159 ArrayConstructorStub stub(masm->isolate(), arg_count());
2164 void CallICStub::Generate(MacroAssembler* masm) {
2216 __ Jump(masm->isolate()->builtins()->CallFunction(convert_mode(),
2228 HandleArrayCase(masm, &miss);
2251 __ Jump(masm->isolate()->builtins()->Call(convert_mode(), tail_call_mode()),
2286 FrameScope scope(masm, StackFrame::INTERNAL);
2287 CreateWeakCellStub create_stub(masm->isolate());
2298 GenerateMiss(masm);
2304 void CallICStub::GenerateMiss(MacroAssembler* masm) {
2307 FrameScope scope(masm, StackFrame::INTERNAL);
2320 void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
2344 StringCharLoadGenerator::Generate(masm,
2355 MacroAssembler* masm, EmbedMode embed_mode,
2362 call_helper.BeforeCall(masm);
2383 call_helper.AfterCall(masm);
2394 call_helper.BeforeCall(masm);
2399 call_helper.AfterCall(masm);
2406 void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
2421 MacroAssembler* masm,
2426 call_helper.BeforeCall(masm);
2430 call_helper.AfterCall(masm);
2437 void CompareICStub::GenerateBooleans(MacroAssembler* masm) {
2455 GenerateMiss(masm);
2459 void CompareICStub::GenerateSmis(MacroAssembler* masm) {
2478 GenerateMiss(masm);
2482 void CompareICStub::GenerateNumbers(MacroAssembler* masm) {
2544 GenerateMiss(masm);
2548 void CompareICStub::GenerateInternalizedStrings(MacroAssembler* masm) {
2582 GenerateMiss(masm);
2586 void CompareICStub::GenerateUniqueNames(MacroAssembler* masm) {
2621 GenerateMiss(masm);
2625 void CompareICStub::GenerateStrings(MacroAssembler* masm) {
2685 StringHelper::GenerateFlatOneByteStringEquals(masm, lhs, rhs, x10, x11,
2688 StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, x10, x11,
2696 FrameScope scope(masm, StackFrame::INTERNAL);
2709 GenerateMiss(masm);
2713 void CompareICStub::GenerateReceivers(MacroAssembler* masm) {
2734 GenerateMiss(masm);
2738 void CompareICStub::GenerateKnownReceivers(MacroAssembler* masm) {
2776 GenerateMiss(masm);
2784 void CompareICStub::GenerateMiss(MacroAssembler* masm) {
2789 FrameScope scope(masm, StackFrame::INTERNAL);
2813 void SubStringStub::Generate(MacroAssembler* masm) {
3057 generator.GenerateFast(masm);
3060 generator.SkipSlow(masm, &runtime);
3063 void ToStringStub::Generate(MacroAssembler* masm) {
3095 void ToNameStub::Generate(MacroAssembler* masm) {
3129 MacroAssembler* masm, Register left, Register right, Register scratch1,
3158 GenerateOneByteCharsCompareLoop(masm, left, right, left_length, scratch2,
3168 MacroAssembler* masm, Register left, Register right, Register scratch1,
3184 GenerateOneByteCharsCompareLoop(masm, left, right, min_length, scratch2,
3208 MacroAssembler* masm, Register left, Register right, Register length,
3235 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
3262 void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) {
3265 regs_.Save(masm);
3279 masm, kUpdateRememberedSetOnNoNeedToInformIncrementalMarker, mode);
3280 InformIncrementalMarker(masm);
3281 regs_.Restore(masm); // Restore the extra scratch registers we used.
3291 masm, kReturnOnNoNeedToInformIncrementalMarker, mode);
3292 InformIncrementalMarker(masm);
3293 regs_.Restore(masm); // Restore the extra scratch registers we used.
3298 void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
3299 regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode());
3309 AllowExternalCallThatCantCauseGC scope(masm);
3315 regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode());
3320 MacroAssembler* masm,
3340 regs_.Restore(masm); // Restore the extra scratch registers we used.
3380 regs_.Restore(masm); // Restore the extra scratch registers we used.
3397 void RecordWriteStub::Generate(MacroAssembler* masm) {
3407 InstructionAccurateScope scope(masm, 2);
3420 GenerateIncremental(masm, INCREMENTAL);
3423 GenerateIncremental(masm, INCREMENTAL_COMPACTION);
3427 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
3436 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
3443 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
3446 stub.GenerateForTrampoline(masm);
3450 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
3453 stub.GenerateForTrampoline(masm);
3457 void CallICTrampolineStub::Generate(MacroAssembler* masm) {
3464 void LoadICStub::Generate(MacroAssembler* masm) { GenerateImpl(masm, false); }
3467 void LoadICStub::GenerateForTrampoline(MacroAssembler* masm) {
3468 GenerateImpl(masm, true);
3472 static void HandleArrayCases(MacroAssembler* masm, Register feedback,
3540 static void HandleMonomorphicCase(MacroAssembler* masm, Register receiver,
3563 void LoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3580 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3587 HandleArrayCases(masm, feedback, receiver_map, scratch1, x7, true, &miss);
3593 masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
3598 LoadIC::GenerateMiss(masm);
3606 void KeyedLoadICStub::Generate(MacroAssembler* masm) {
3607 GenerateImpl(masm, false);
3611 void KeyedLoadICStub::GenerateForTrampoline(MacroAssembler* masm) {
3612 GenerateImpl(masm, true);
3616 void KeyedLoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3633 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3644 HandleArrayCases(masm, feedback, receiver_map, scratch1, x7, true, &miss);
3651 KeyedLoadIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState());
3663 HandleArrayCases(masm, feedback, receiver_map, scratch1, x7, false, &miss);
3666 KeyedLoadIC::GenerateMiss(masm);
3674 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3677 stub.GenerateForTrampoline(masm);
3681 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3684 stub.GenerateForTrampoline(masm);
3688 void VectorStoreICStub::Generate(MacroAssembler* masm) {
3689 GenerateImpl(masm, false);
3693 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3694 GenerateImpl(masm, true);
3698 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3716 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3723 HandleArrayCases(masm, feedback, receiver_map, scratch1, x8, true, &miss);
3729 masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, code_flags,
3734 StoreIC::GenerateMiss(masm);
3742 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) {
3743 GenerateImpl(masm, false);
3747 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3748 GenerateImpl(masm, true);
3752 static void HandlePolymorphicStoreCase(MacroAssembler* masm, Register feedback,
3817 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3835 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3845 HandlePolymorphicStoreCase(masm, feedback, receiver_map, scratch1, x8, &miss);
3852 KeyedStoreIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState());
3864 HandleArrayCases(masm, feedback, receiver_map, scratch1, x8, false, &miss);
3867 KeyedStoreIC::GenerateMiss(masm);
3881 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) {
3882 if (masm->isolate()->function_entry_hook() != NULL) {
3883 ProfileEntryHookStub stub(masm->isolate());
3884 Assembler::BlockConstPoolScope no_const_pools(masm);
3885 DontEmitDebugCodeScope no_debug_code(masm);
3890 DCHECK(masm->SizeOfCodeGeneratedSince(&entry_hook_call_start) ==
3898 void ProfileEntryHookStub::Generate(MacroAssembler* masm) {
3899 MacroAssembler::NoUseRealAbortsScope no_use_real_aborts(masm);
3932 FrameScope frame(masm, StackFrame::MANUAL);
3941 void DirectCEntryStub::Generate(MacroAssembler* masm) {
3962 void DirectCEntryStub::GenerateCall(MacroAssembler* masm,
3984 MacroAssembler* masm,
4020 UseScratchRegisterScope temps(masm);
4048 NameDictionaryLookupStub stub(masm->isolate(), POSITIVE_LOOKUP);
4061 void NameDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm,
4119 NameDictionaryLookupStub stub(masm->isolate(), NEGATIVE_LOOKUP);
4131 void NameDictionaryLookupStub::Generate(MacroAssembler* masm) {
4218 static void CreateArrayDispatch(MacroAssembler* masm,
4222 T stub(masm->isolate(), GetInitialFastElementsKind(), mode);
4235 T stub(masm->isolate(), candidate_kind);
4251 static void CreateArrayDispatchOneArgument(MacroAssembler* masm,
4285 ArraySingleArgumentConstructorStub stub_holey(masm->isolate(),
4291 ArraySingleArgumentConstructorStub stub(masm->isolate(),
4324 ArraySingleArgumentConstructorStub stub(masm->isolate(), candidate_kind);
4371 MacroAssembler* masm,
4381 CreateArrayDispatchOneArgument(masm, mode);
4385 CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
4389 ArrayNArgumentsConstructorStub stub(masm->isolate());
4392 CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
4394 CreateArrayDispatchOneArgument(masm, mode);
4396 ArrayNArgumentsConstructorStub stub(masm->isolate());
4404 void ArrayConstructorStub::Generate(MacroAssembler* masm) {
4453 GenerateDispatchToArrayStub(masm, DONT_OVERRIDE);
4456 GenerateDispatchToArrayStub(masm, DISABLE_ALLOCATION_SITES);
4481 MacroAssembler* masm, ElementsKind kind) {
4517 void InternalArrayConstructorStub::Generate(MacroAssembler* masm) {
4560 GenerateCase(masm, FAST_HOLEY_ELEMENTS);
4563 GenerateCase(masm, FAST_ELEMENTS);
4567 void FastNewObjectStub::Generate(MacroAssembler* masm) {
4654 FrameScope scope(masm, StackFrame::INTERNAL);
4665 FrameScope scope(masm, StackFrame::INTERNAL);
4687 void FastNewRestParameterStub::Generate(MacroAssembler* masm) {
4758 FrameScope scope(masm, StackFrame::INTERNAL);
4824 FrameScope scope(masm, StackFrame::INTERNAL);
4843 void FastNewSloppyArgumentsStub::Generate(MacroAssembler* masm) {
5143 void FastNewStrictArgumentsStub::Generate(MacroAssembler* masm) {
5244 FrameScope scope(masm, StackFrame::INTERNAL);
5262 void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
5400 MacroAssembler* masm, Register function_address,
5405 Isolate* isolate = masm->isolate();
5452 FrameScope frame(masm, StackFrame::MANUAL);
5464 stub.GenerateCall(masm, x3);
5467 FrameScope frame(masm, StackFrame::MANUAL);
5546 void CallApiCallbackStub::Generate(MacroAssembler* masm) {
5595 __ Mov(isolate_reg, ExternalReference::isolate_address(masm->isolate()));
5603 __ Mov(args, masm->StackPointer());
5613 FrameScope frame_scope(masm, StackFrame::MANUAL);
5619 __ Add(x0, masm->StackPointer(), 1 * kPointerSize);
5628 ExternalReference::invoke_function_callback(masm->isolate());
5630 AllowExternalCallThatCantCauseGC scope(masm);
5643 MemOperand(masm->StackPointer(), 3 * kPointerSize);
5649 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
5655 void CallApiGetterStub::Generate(MacroAssembler* masm) {
5689 __ Mov(x0, masm->StackPointer()); // x0 = Handle<Name>
5698 FrameScope frame_scope(masm, StackFrame::MANUAL);
5704 __ Add(x1, masm->StackPointer(), 1 * kPointerSize);
5719 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,