Lines Matching refs:masm
25 #define __ ACCESS_MASM(masm)
27 void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
48 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
57 FrameScope scope(masm, StackFrame::INTERNAL);
71 void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
83 AllowExternalCallThatCantCauseGC scope(masm);
111 static void LoadFloatOperand(MacroAssembler* masm, Register number);
116 static void CheckFloatOperands(MacroAssembler* masm,
122 void DoubleToIStub::Generate(MacroAssembler* masm) {
231 void FloatingPointHelper::LoadFloatOperand(MacroAssembler* masm,
249 void FloatingPointHelper::CheckFloatOperands(MacroAssembler* masm,
257 Factory* factory = masm->isolate()->factory();
272 void MathPowStub::Generate(MacroAssembler* masm) {
296 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
310 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
314 void LoadIndexedStringStub::Generate(MacroAssembler* masm) {
336 char_at_generator.GenerateFast(masm);
340 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper);
344 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
348 void RegExpExecStub::Generate(MacroAssembler* masm) {
770 static void CheckInputType(MacroAssembler* masm, Register input,
778 Immediate(masm->isolate()->factory()->heap_number_map()));
787 static void BranchIfNotInternalizedString(MacroAssembler* masm,
800 void CompareICStub::GenerateGeneric(MacroAssembler* masm) {
805 CheckInputType(masm, edx, left(), &miss);
806 CheckInputType(masm, eax, right(), &miss);
945 masm, &non_number_comparison, ebx);
946 FloatingPointHelper::LoadFloatOperand(masm, eax);
947 FloatingPointHelper::LoadFloatOperand(masm, edx);
986 BranchIfNotInternalizedString(masm, &check_for_strings, eax, ecx);
987 BranchIfNotInternalizedString(masm, &check_for_strings, edx, ecx);
1002 StringHelper::GenerateFlatOneByteStringEquals(masm, edx, eax, ecx, ebx);
1004 StringHelper::GenerateCompareFlatOneByteStrings(masm, edx, eax, ecx, ebx,
1066 FrameScope scope(masm, StackFrame::INTERNAL);
1090 GenerateMiss(masm);
1094 static void CallStubInRecordCallTarget(MacroAssembler* masm, CodeStub* stub) {
1101 FrameScope scope(masm, StackFrame::INTERNAL);
1121 static void GenerateRecordCallTarget(MacroAssembler* masm) {
1129 Isolate* isolate = masm->isolate();
1195 CallStubInRecordCallTarget(masm, &create_stub);
1200 CallStubInRecordCallTarget(masm, &weak_cell_stub);
1219 void CallConstructStub::Generate(MacroAssembler* masm) {
1232 GenerateRecordCallTarget(masm);
1262 void CallICStub::HandleArrayCase(MacroAssembler* masm, Label* miss) {
1282 ArrayConstructorStub stub(masm->isolate(), arg_count());
1289 void CallICStub::Generate(MacroAssembler* masm) {
1293 Isolate* isolate = masm->isolate();
1330 __ Jump(masm->isolate()->builtins()->CallFunction(convert_mode(),
1346 HandleArrayCase(masm, &miss);
1370 __ Jump(masm->isolate()->builtins()->Call(convert_mode(), tail_call_mode()),
1404 FrameScope scope(masm, StackFrame::INTERNAL);
1416 GenerateMiss(masm);
1425 void CallICStub::GenerateMiss(MacroAssembler* masm) {
1426 FrameScope scope(masm, StackFrame::INTERNAL);
1479 void CEntryStub::Generate(MacroAssembler* masm) {
1490 ProfileEntryHookStub::MaybeCallEntryHook(masm);
1597 FrameScope scope(masm, StackFrame::MANUAL);
1637 void JSEntryStub::Generate(MacroAssembler* masm) {
1641 ProfileEntryHookStub::MaybeCallEntryHook(masm);
1741 void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
1764 Factory* factory = masm->isolate()->factory();
1766 masm, factory, object_, index_, result_, &call_runtime_);
1774 MacroAssembler* masm, EmbedMode embed_mode,
1782 masm->isolate()->factory()->heap_number_map(),
1785 call_helper.BeforeCall(masm);
1806 call_helper.AfterCall(masm);
1817 call_helper.BeforeCall(masm);
1825 call_helper.AfterCall(masm);
1835 void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
1844 Factory* factory = masm->isolate()->factory();
1860 MacroAssembler* masm,
1865 call_helper.BeforeCall(masm);
1871 call_helper.AfterCall(masm);
1878 void StringHelper::GenerateCopyCharacters(MacroAssembler* masm,
1911 void SubStringStub::Generate(MacroAssembler* masm) {
1924 Condition is_string = masm->IsObjectStringType(eax, ebx, ebx);
2079 masm, edi, edx, ecx, ebx, String::ONE_BYTE_ENCODING);
2107 masm, edi, edx, ecx, ebx, String::TWO_BYTE_ENCODING);
2126 generator.GenerateFast(masm);
2128 generator.SkipSlow(masm, &runtime);
2131 void ToStringStub::Generate(MacroAssembler* masm) {
2145 __ CompareMap(eax, masm->isolate()->factory()->heap_number_map());
2166 void ToNameStub::Generate(MacroAssembler* masm) {
2181 __ CompareMap(eax, masm->isolate()->factory()->heap_number_map());
2202 void StringHelper::GenerateFlatOneByteStringEquals(MacroAssembler* masm,
2229 GenerateOneByteCharsCompareLoop(masm, left, right, length, scratch2,
2239 MacroAssembler* masm, Register left, Register right, Register scratch1,
2241 Counters* counters = masm
2266 GenerateOneByteCharsCompareLoop(masm, left, right, min_length, scratch2,
2302 MacroAssembler* masm, Register left, Register right, Register length,
2327 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
2355 void CompareICStub::GenerateBooleans(MacroAssembler* masm) {
2359 masm->emit_debug_code() ? Label::kFar : Label::kNear;
2378 GenerateMiss(masm);
2382 void CompareICStub::GenerateSmis(MacroAssembler* masm) {
2404 GenerateMiss(masm);
2408 void CompareICStub::GenerateNumbers(MacroAssembler* masm) {
2458 GenerateMiss(masm);
2462 void CompareICStub::GenerateInternalizedStrings(MacroAssembler* masm) {
2503 GenerateMiss(masm);
2507 void CompareICStub::GenerateUniqueNames(MacroAssembler* masm) {
2548 GenerateMiss(masm);
2552 void CompareICStub::GenerateStrings(MacroAssembler* masm) {
2618 StringHelper::GenerateFlatOneByteStringEquals(masm, left, right, tmp1,
2621 StringHelper::GenerateCompareFlatOneByteStrings(masm, left, right, tmp1,
2629 FrameScope scope(masm, StackFrame::INTERNAL);
2634 __ sub(eax, Immediate(masm->isolate()->factory()->true_value()));
2645 GenerateMiss(masm);
2649 void CompareICStub::GenerateReceivers(MacroAssembler* masm) {
2667 GenerateMiss(masm);
2671 void CompareICStub::GenerateKnownReceivers(MacroAssembler* masm) {
2697 GenerateMiss(masm);
2701 void CompareICStub::GenerateMiss(MacroAssembler* masm) {
2704 FrameScope scope(masm, StackFrame::INTERNAL);
2727 void NameDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm,
2758 __ cmp(entity_name, masm->isolate()->factory()->undefined_value());
2767 __ cmp(entity_name, masm->isolate()->factory()->the_hole_value());
2777 NameDictionaryLookupStub stub(masm->isolate(), properties, r0, r0,
2792 void NameDictionaryLookupStub::GeneratePositiveLookup(MacroAssembler* masm,
2834 NameDictionaryLookupStub stub(masm->isolate(), elements, r1, r0,
2848 void NameDictionaryLookupStub::Generate(MacroAssembler* masm) {
2948 void RecordWriteStub::Generate(MacroAssembler* masm) {
2967 GenerateIncremental(masm, INCREMENTAL);
2970 GenerateIncremental(masm, INCREMENTAL_COMPACTION);
2974 masm->set_byte_at(0, kTwoByteNopInstruction);
2975 masm->set_byte_at(2, kFiveByteNopInstruction);
2979 void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) {
2980 regs_.Save(masm);
2996 masm,
2999 InformIncrementalMarker(masm);
3000 regs_.Restore(masm);
3008 masm,
3011 InformIncrementalMarker(masm);
3012 regs_.Restore(masm);
3017 void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm) {
3018 regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode());
3026 AllowExternalCallThatCantCauseGC scope(masm);
3031 regs_.RestoreCallerSaveRegisters(masm, save_fp_regs_mode());
3036 MacroAssembler* masm,
3060 regs_.Restore(masm);
3104 regs_.Restore(masm);
3121 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
3127 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
3136 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
3139 stub.GenerateForTrampoline(masm);
3143 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
3146 stub.GenerateForTrampoline(masm);
3150 static void HandleArrayCases(MacroAssembler* masm, Register receiver,
3230 static void HandleMonomorphicCase(MacroAssembler* masm, Register receiver,
3262 void LoadICStub::Generate(MacroAssembler* masm) { GenerateImpl(masm, false); }
3265 void LoadICStub::GenerateForTrampoline(MacroAssembler* masm) {
3266 GenerateImpl(masm, true);
3270 void LoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3284 HandleMonomorphicCase(masm, receiver, name, vector, slot, scratch, &miss);
3290 HandleArrayCases(masm, receiver, name, vector, slot, scratch, true, &miss);
3299 masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
3305 LoadIC::GenerateMiss(masm);
3309 void KeyedLoadICStub::Generate(MacroAssembler* masm) {
3310 GenerateImpl(masm, false);
3314 void KeyedLoadICStub::GenerateForTrampoline(MacroAssembler* masm) {
3315 GenerateImpl(masm, true);
3319 void KeyedLoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3332 HandleMonomorphicCase(masm, receiver, key, vector, slot, feedback, &miss);
3342 HandleArrayCases(masm, receiver, key, vector, slot, feedback, true, &miss);
3349 KeyedLoadIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState());
3360 HandleArrayCases(masm, receiver, key, vector, slot, feedback, false, &miss);
3363 KeyedLoadIC::GenerateMiss(masm);
3367 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3370 stub.GenerateForTrampoline(masm);
3374 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3377 stub.GenerateForTrampoline(masm);
3381 void VectorStoreICStub::Generate(MacroAssembler* masm) {
3382 GenerateImpl(masm, false);
3386 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3387 GenerateImpl(masm, true);
3392 static void HandlePolymorphicStoreCase(MacroAssembler* masm, Register receiver,
3402 ExternalReference::virtual_handler_register(masm->isolate());
3479 static void HandleMonomorphicStoreCase(MacroAssembler* masm, Register receiver,
3486 ExternalReference::virtual_handler_register(masm->isolate());
3523 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3542 HandleMonomorphicStoreCase(masm, receiver, key, vector, slot, scratch, &miss);
3548 HandlePolymorphicStoreCase(masm, receiver, key, vector, slot, scratch, true,
3560 masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, code_flags,
3570 StoreIC::GenerateMiss(masm);
3574 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) {
3575 GenerateImpl(masm, false);
3579 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3580 GenerateImpl(masm, true);
3584 static void HandlePolymorphicKeyedStoreCase(MacroAssembler* masm,
3594 ExternalReference::virtual_handler_register(masm->isolate());
3596 ExternalReference::virtual_slot_register(masm->isolate());
3692 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3711 HandleMonomorphicStoreCase(masm, receiver, key, vector, slot, scratch, &miss);
3717 HandlePolymorphicKeyedStoreCase(masm, receiver, key, vector, slot, scratch,
3728 KeyedStoreIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState());
3739 HandlePolymorphicStoreCase(masm, receiver, key, vector, slot, scratch, false,
3744 KeyedStoreIC::GenerateMiss(masm);
3747 void CallICTrampolineStub::Generate(MacroAssembler* masm) {
3753 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) {
3754 if (masm->isolate()->function_entry_hook() != NULL) {
3755 ProfileEntryHookStub stub(masm->isolate());
3756 masm->CallStub(&stub);
3760 void ProfileEntryHookStub::Generate(MacroAssembler* masm) {
3792 static void CreateArrayDispatch(MacroAssembler* masm,
3795 T stub(masm->isolate(), GetInitialFastElementsKind(), mode);
3805 T stub(masm->isolate(), kind);
3817 static void CreateArrayDispatchOneArgument(MacroAssembler* masm,
3849 masm->isolate(), holey_initial, DISABLE_ALLOCATION_SITES);
3853 ArraySingleArgumentConstructorStub stub(masm->isolate(), initial,
3863 masm->isolate()->factory()->allocation_site_map();
3883 ArraySingleArgumentConstructorStub stub(masm->isolate(), kind);
3929 MacroAssembler* masm, AllocationSiteOverrideMode mode) {
3934 CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
3939 CreateArrayDispatchOneArgument(masm, mode);
3942 ArrayNArgumentsConstructorStub stub(masm->isolate());
3945 CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
3947 CreateArrayDispatchOneArgument(masm, mode);
3949 ArrayNArgumentsConstructorStub stub(masm->isolate());
3956 void ArrayConstructorStub::Generate(MacroAssembler* masm) {
4000 GenerateDispatchToArrayStub(masm, DONT_OVERRIDE);
4003 GenerateDispatchToArrayStub(masm, DISABLE_ALLOCATION_SITES);
4029 void InternalArrayConstructorStub::GenerateCase(MacroAssembler* masm,
4064 void InternalArrayConstructorStub::Generate(MacroAssembler* masm) {
4106 GenerateCase(masm, FAST_HOLEY_ELEMENTS);
4109 GenerateCase(masm, FAST_ELEMENTS);
4112 void FastNewObjectStub::Generate(MacroAssembler* masm) {
4148 masm->isolate()->factory()->empty_fixed_array());
4150 masm->isolate()->factory()->empty_fixed_array());
4206 FrameScope scope(masm, StackFrame::INTERNAL);
4218 FrameScope scope(masm, StackFrame::INTERNAL);
4240 void FastNewRestParameterStub::Generate(MacroAssembler* masm) {
4308 FrameScope scope(masm, StackFrame::INTERNAL);
4375 FrameScope scope(masm, StackFrame::INTERNAL);
4405 void FastNewSloppyArgumentsStub::Generate(MacroAssembler* masm) {
4524 masm->isolate()->factory()->empty_fixed_array());
4526 masm->isolate()->factory()->empty_fixed_array());
4660 void FastNewStrictArgumentsStub::Generate(MacroAssembler* masm) {
4762 FrameScope scope(masm, StackFrame::INTERNAL);
4791 void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
4925 static void PrepareCallApiFunction(MacroAssembler* masm, int argc) {
4937 static void CallApiFunctionAndReturn(MacroAssembler* masm,
4944 Isolate* isolate = masm->isolate();
4960 FrameScope frame(masm, StackFrame::MANUAL);
4990 FrameScope frame(masm, StackFrame::MANUAL);
5097 void CallApiCallbackStub::Generate(MacroAssembler* masm) {
5148 __ push(Immediate(masm->isolate()->factory()->undefined_value()));
5150 __ push(Immediate(masm->isolate()->factory()->undefined_value()));
5158 __ push(Immediate(reinterpret_cast<int>(masm->isolate())));
5182 PrepareCallApiFunction(masm, kApiArgc + kApiStackSpace);
5197 ExternalReference::invoke_function_callback(masm->isolate());
5214 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
5221 void CallApiGetterStub::Generate(MacroAssembler* masm) {
5262 PrepareCallApiFunction(masm, kApiArgc);
5287 CallApiFunctionAndReturn(masm, function_address, thunk_ref, thunk_last_arg,