Home | History | Annotate | Download | only in arm

Lines Matching refs:masm

25 #define __ ACCESS_MASM(masm)
27 void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
47 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
49 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
55 static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
60 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
69 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
83 void DoubleToIStub::Generate(MacroAssembler* masm) {
191 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
301 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
366 static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
409 static void EmitCheckForTwoHeapNumbers(MacroAssembler* masm,
435 masm,
496 static void CompareICStub_CheckInputType(MacroAssembler* masm, Register input,
517 void CompareICStub::GenerateGeneric(MacroAssembler* masm) {
523 CompareICStub_CheckInputType(masm, lhs, r2, left(), &miss);
524 CompareICStub_CheckInputType(masm, rhs, r3, right(), &miss);
542 EmitIdenticalObjectComparison(masm, &slow, cc);
559 EmitSmiNonsmiComparison(masm, lhs, rhs, &lhs_not_nan, &slow, strict());
592 EmitStrictTwoHeapObjectCompare(masm, lhs, rhs);
602 EmitCheckForTwoHeapNumbers(masm,
617 masm, lhs, rhs, &flat_string_check, &slow);
629 StringHelper::GenerateFlatOneByteStringEquals(masm, lhs, rhs, r2, r3, r4);
631 StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, r2, r3, r4,
640 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
667 GenerateMiss(masm);
671 void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
685 AllowExternalCallThatCantCauseGC scope(masm);
698 void MathPowStub::Generate(MacroAssembler* masm) {
806 AllowExternalCallThatCantCauseGC scope(masm);
878 AllowExternalCallThatCantCauseGC scope(masm);
928 void CEntryStub::Generate(MacroAssembler* masm) {
938 ProfileEntryHookStub::MaybeCallEntryHook(masm);
952 FrameScope scope(masm, StackFrame::MANUAL);
1008 Assembler::BlockConstPoolScope block_const_pool(masm);
1076 FrameScope scope(masm, StackFrame::MANUAL);
1098 ConstantPoolUnavailableScope constant_pool_unavailable(masm);
1111 void JSEntryStub::Generate(MacroAssembler* masm) {
1120 ProfileEntryHookStub::MaybeCallEntryHook(masm);
1190 Assembler::BlockConstPoolScope block_const_pool(masm);
1280 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
1288 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, r4,
1292 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1296 void LoadIndexedStringStub::Generate(MacroAssembler* masm) {
1316 char_at_generator.GenerateFast(masm);
1320 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper);
1324 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
1328 void RegExpExecStub::Generate(MacroAssembler* masm) {
1559 stub.GenerateCall(masm, r6);
1731 masm, CodeStub* stub) {
1736 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
1749 static void GenerateRecordCallTarget(MacroAssembler* masm) {
1760 DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
1761 masm->isolate()->heap()->megamorphic_symbol());
1762 DCHECK_EQ(*TypeFeedbackVector::UninitializedSentinel(masm->isolate()),
1763 masm->isolate()->heap()->uninitialized_symbol());
1828 CreateAllocationSiteStub create_stub(masm->isolate());
1829 CallStubInRecordCallTarget(masm, &create_stub);
1833 CreateWeakCellStub weak_cell_stub(masm->isolate());
1834 CallStubInRecordCallTarget(masm, &weak_cell_stub);
1856 void CallConstructStub::Generate(MacroAssembler* masm) {
1869 GenerateRecordCallTarget(masm);
1898 void CallICStub::HandleArrayCase(MacroAssembler* masm, Label* miss) {
1918 ArrayConstructorStub stub(masm->isolate(), arg_count());
1923 void CallICStub::Generate(MacroAssembler* masm) {
1966 __ Jump(masm->isolate()->builtins()->CallFunction(convert_mode(),
1982 HandleArrayCase(masm, &miss);
2006 __ Jump(masm->isolate()->builtins()->Call(convert_mode(), tail_call_mode()),
2041 FrameScope scope(masm, StackFrame::INTERNAL);
2042 CreateWeakCellStub create_stub(masm->isolate());
2053 GenerateMiss(masm);
2059 void CallICStub::GenerateMiss(MacroAssembler* masm) {
2060 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
2074 void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
2098 StringCharLoadGenerator::Generate(masm,
2110 MacroAssembler* masm, EmbedMode embed_mode,
2122 call_helper.BeforeCall(masm);
2143 call_helper.AfterCall(masm);
2153 call_helper.BeforeCall(masm);
2158 call_helper.AfterCall(masm);
2168 void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
2188 MacroAssembler* masm,
2193 call_helper.BeforeCall(masm);
2197 call_helper.AfterCall(masm);
2207 void StringHelper::GenerateCopyCharacters(MacroAssembler* masm,
2243 void SubStringStub::Generate(MacroAssembler* masm) {
2286 Condition is_string = masm->IsObjectStringType(r0, r1);
2422 masm, r1, r5, r2, r3, String::ONE_BYTE_ENCODING);
2441 masm, r1, r5, r2, r3, String::TWO_BYTE_ENCODING);
2461 generator.GenerateFast(masm);
2464 generator.SkipSlow(masm, &runtime);
2467 void ToStringStub::Generate(MacroAssembler* masm) {
2497 void ToNameStub::Generate(MacroAssembler* masm) {
2529 MacroAssembler* masm, Register left, Register right, Register scratch1,
2554 GenerateOneByteCharsCompareLoop(masm, left, right, length, scratch2, scratch3,
2564 MacroAssembler* masm, Register left, Register right, Register scratch1,
2579 GenerateOneByteCharsCompareLoop(masm, left, right, min_length, scratch2,
2597 MacroAssembler* masm, Register left, Register right, Register length,
2622 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
2653 void CompareICStub::GenerateBooleans(MacroAssembler* masm) {
2669 GenerateMiss(masm);
2673 void CompareICStub::GenerateSmis(MacroAssembler* masm) {
2690 GenerateMiss(masm);
2694 void CompareICStub::GenerateNumbers(MacroAssembler* masm) {
2767 GenerateMiss(masm);
2771 void CompareICStub::GenerateInternalizedStrings(MacroAssembler* masm) {
2805 GenerateMiss(masm);
2809 void CompareICStub::GenerateUniqueNames(MacroAssembler* masm) {
2844 GenerateMiss(masm);
2848 void CompareICStub::GenerateStrings(MacroAssembler* masm) {
2906 StringHelper::GenerateFlatOneByteStringEquals(masm, left, right, tmp1, tmp2,
2909 StringHelper::GenerateCompareFlatOneByteStrings(masm, left, right, tmp1,
2917 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
2930 GenerateMiss(masm);
2934 void CompareICStub::GenerateReceivers(MacroAssembler* masm) {
2951 GenerateMiss(masm);
2955 void CompareICStub::GenerateKnownReceivers(MacroAssembler* masm) {
2982 GenerateMiss(masm);
2986 void CompareICStub::GenerateMiss(MacroAssembler* masm) {
2989 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
3006 void DirectCEntryStub::Generate(MacroAssembler* masm) {
3015 void DirectCEntryStub::GenerateCall(MacroAssembler* masm,
3025 void NameDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm,
3094 NameDictionaryLookupStub stub(masm->isolate(), NEGATIVE_LOOKUP);
3108 void NameDictionaryLookupStub::GeneratePositiveLookup(MacroAssembler* masm,
3170 NameDictionaryLookupStub stub(masm->isolate(), POSITIVE_LOOKUP);
3181 void NameDictionaryLookupStub::Generate(MacroAssembler* masm) {
3286 void RecordWriteStub::Generate(MacroAssembler* masm) {
3298 Assembler::BlockConstPoolScope block_const_pool(masm);
3310 GenerateIncremental(masm, INCREMENTAL);
3313 GenerateIncremental(masm, INCREMENTAL_COMPACTION);
3317 DCHECK(Assembler::GetBranchOffset(masm->instr_at(0)) < (1 << 12));
3318 DCHECK(Assembler::GetBranchOffset(masm->instr_at(4)) < (1 << 12));
3319 PatchBranchIntoNop(masm, 0);
3320 PatchBranchIntoNop(masm, Assembler::kInstrSize);
3324 void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) {
3325 regs_.Save(masm);
3341 masm, kUpdateRememberedSetOnNoNeedToInformIncrementalMarker, mode);
3342 InformIncrementalMarker(masm);
3343 regs_.Restore(masm);
3351 masm, kReturnOnNoNeedToInformIncrementalMarker, mode);
3352 InformIncrementalMarker(masm);
3353 regs_.Restore(masm);
3358 void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
3359 regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode());
3371 AllowExternalCallThatCantCauseGC scope(masm);
3375 regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode());
3380 MacroAssembler* masm,
3401 regs_.Restore(masm);
3442 regs_.Restore(masm);
3459 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
3468 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
3475 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
3478 stub.GenerateForTrampoline(masm);
3482 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
3485 stub.GenerateForTrampoline(masm);
3489 void CallICTrampolineStub::Generate(MacroAssembler* masm) {
3496 void LoadICStub::Generate(MacroAssembler* masm) { GenerateImpl(masm, false); }
3499 void LoadICStub::GenerateForTrampoline(MacroAssembler* masm) {
3500 GenerateImpl(masm, true);
3504 static void HandleArrayCases(MacroAssembler* masm, Register feedback,
3571 static void HandleMonomorphicCase(MacroAssembler* masm, Register receiver,
3592 void LoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3609 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3617 HandleArrayCases(masm, feedback, receiver_map, scratch1, r9, true, &miss);
3624 masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
3629 LoadIC::GenerateMiss(masm);
3637 void KeyedLoadICStub::Generate(MacroAssembler* masm) {
3638 GenerateImpl(masm, false);
3642 void KeyedLoadICStub::GenerateForTrampoline(MacroAssembler* masm) {
3643 GenerateImpl(masm, true);
3647 void KeyedLoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3664 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3676 HandleArrayCases(masm, feedback, receiver_map, scratch1, r9, true, &miss);
3683 KeyedLoadIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState());
3695 HandleArrayCases(masm, feedback, receiver_map, scratch1, r9, false, &miss);
3698 KeyedLoadIC::GenerateMiss(masm);
3706 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3709 stub.GenerateForTrampoline(masm);
3713 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3716 stub.GenerateForTrampoline(masm);
3720 void VectorStoreICStub::Generate(MacroAssembler* masm) {
3721 GenerateImpl(masm, false);
3725 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3726 GenerateImpl(masm, true);
3730 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3748 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3761 HandleArrayCases(masm, feedback, receiver_map, scratch1, scratch2, true,
3769 masm->isolate()->stub_cache()->GenerateProbe(
3770 masm, Code::STORE_IC, code_flags, receiver, key, feedback, receiver_map,
3774 StoreIC::GenerateMiss(masm);
3782 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) {
3783 GenerateImpl(masm, false);
3787 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3788 GenerateImpl(masm, true);
3792 static void HandlePolymorphicStoreCase(MacroAssembler* masm, Register feedback,
3854 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3872 HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, slot,
3890 HandlePolymorphicStoreCase(masm, feedback, receiver_map, scratch1, scratch2,
3898 KeyedStoreIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState());
3910 HandleArrayCases(masm, feedback, receiver_map, scratch1, scratch2, false,
3914 KeyedStoreIC::GenerateMiss(masm);
3922 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) {
3923 if (masm->isolate()->function_entry_hook() != NULL) {
3924 ProfileEntryHookStub stub(masm->isolate());
3925 PredictableCodeSizeScope predictable(masm);
3926 predictable.ExpectSize(masm->CallStubSize(&stub) +
3935 void ProfileEntryHookStub::Generate(MacroAssembler* masm) {
3964 int frame_alignment = masm->ActivationFrameAlignment();
3999 static void CreateArrayDispatch(MacroAssembler* masm,
4002 T stub(masm->isolate(), GetInitialFastElementsKind(), mode);
4010 T stub(masm->isolate(), kind);
4022 static void CreateArrayDispatchOneArgument(MacroAssembler* masm,
4052 ArraySingleArgumentConstructorStub stub_holey(masm->isolate(),
4058 ArraySingleArgumentConstructorStub stub(masm->isolate(),
4087 ArraySingleArgumentConstructorStub stub(masm->isolate(), kind);
4133 MacroAssembler* masm,
4139 CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
4144 CreateArrayDispatchOneArgument(masm, mode);
4147 ArrayNArgumentsConstructorStub stub(masm->isolate());
4150 CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
4152 CreateArrayDispatchOneArgument(masm, mode);
4154 ArrayNArgumentsConstructorStub stub(masm->isolate());
4162 void ArrayConstructorStub::Generate(MacroAssembler* masm) {
4204 GenerateDispatchToArrayStub(masm, DONT_OVERRIDE);
4207 GenerateDispatchToArrayStub(masm, DISABLE_ALLOCATION_SITES);
4231 MacroAssembler* masm, ElementsKind kind) {
4256 void InternalArrayConstructorStub::Generate(MacroAssembler* masm) {
4298 GenerateCase(masm, FAST_HOLEY_ELEMENTS);
4301 GenerateCase(masm, FAST_ELEMENTS);
4305 void FastNewObjectStub::Generate(MacroAssembler* masm) {
4390 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
4401 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
4422 void FastNewRestParameterStub::Generate(MacroAssembler* masm) {
4492 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
4556 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
4573 void FastNewSloppyArgumentsStub::Generate(MacroAssembler* masm) {
4795 void FastNewStrictArgumentsStub::Generate(MacroAssembler* masm) {
4894 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
4910 void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
5043 static void CallApiFunctionAndReturn(MacroAssembler* masm,
5050 Isolate* isolate = masm->isolate();
5085 FrameScope frame(masm, StackFrame::MANUAL);
5098 stub.GenerateCall(masm, r3);
5101 FrameScope frame(masm, StackFrame::MANUAL);
5171 void CallApiCallbackStub::Generate(MacroAssembler* masm) {
5228 __ mov(scratch, Operand(ExternalReference::isolate_address(masm->isolate())));
5240 FrameScope frame_scope(masm, StackFrame::MANUAL);
5257 ExternalReference::invoke_function_callback(masm->isolate());
5259 AllowExternalCallThatCantCauseGC scope(masm);
5276 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
5282 void CallApiGetterStub::Generate(MacroAssembler* masm) {
5321 FrameScope frame_scope(masm, StackFrame::MANUAL);
5339 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,