Lines Matching refs:masm
44 #define __ ACCESS_MASM(masm)
47 static void GenerateGlobalInstanceTypeCheck(MacroAssembler* masm,
63 static void GenerateNameDictionaryReceiverCheck(MacroAssembler* masm,
86 GenerateGlobalInstanceTypeCheck(masm, r0, miss);
95 __ CheckMap(r0, masm->isolate()->factory()->hash_table_map(), miss,
107 static void GenerateDictionaryLoad(MacroAssembler* masm,
131 NameDictionaryLookupStub::GeneratePositiveLookup(masm,
164 static void GenerateDictionaryStore(MacroAssembler* masm,
186 NameDictionaryLookupStub::GeneratePositiveLookup(masm,
222 static void GenerateKeyedLoadReceiverCheck(MacroAssembler* masm,
255 static void GenerateFastArrayLoad(MacroAssembler* masm,
274 masm->isolate()->factory()->fixed_array_map(),
286 __ cmp(scratch, Immediate(masm->isolate()->factory()->the_hole_value()));
298 static void GenerateKeyNameCheck(MacroAssembler* masm,
331 static Operand GenerateMappedArgumentsLookup(MacroAssembler* masm,
338 Heap* heap = masm->isolate()->heap();
339 Factory* factory = masm->isolate()->factory();
386 static Operand GenerateUnmappedArgumentsLookup(MacroAssembler* masm,
396 Handle<Map> fixed_array_map(masm->isolate()->heap()->fixed_array_map());
408 void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
424 masm, edx, eax, Map::kHasIndexedInterceptor, &slow);
429 GenerateFastArrayLoad(masm, edx, ecx, eax, eax, NULL, &slow);
430 Isolate* isolate = masm->isolate();
467 GenerateRuntimeGetProperty(masm);
470 GenerateKeyNameCheck(masm, ecx, eax, ebx, &index_name, &slow);
473 masm, edx, eax, Map::kHasNamedInterceptor, &slow);
501 ExternalReference::keyed_lookup_cache_keys(masm->isolate());
533 ExternalReference::keyed_lookup_cache_field_offsets(masm->isolate());
573 GenerateGlobalInstanceTypeCheck(masm, eax, &slow);
575 GenerateDictionaryLoad(masm, &slow, ebx, ecx, eax, edi, eax);
586 void KeyedLoadIC::GenerateString(MacroAssembler* masm) {
607 char_at_generator.GenerateFast(masm);
611 char_at_generator.GenerateSlow(masm, call_helper);
614 GenerateMiss(masm, MISS);
618 void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) {
652 masm->isolate());
656 GenerateMiss(masm, MISS);
660 void KeyedLoadIC::GenerateNonStrictArguments(MacroAssembler* masm) {
667 Factory* factory = masm->isolate()->factory();
669 GenerateMappedArgumentsLookup(masm, edx, ecx, ebx, eax, ¬in, &slow);
675 GenerateUnmappedArgumentsLookup(masm, ecx, ebx, eax, &slow);
681 GenerateMiss(masm, MISS);
685 void KeyedStoreIC::GenerateNonStrictArguments(MacroAssembler* masm) {
694 GenerateMappedArgumentsLookup(masm, edx, ecx, ebx, edi, ¬in, &slow);
703 GenerateUnmappedArgumentsLookup(masm, ecx, ebx, edi, &slow);
710 GenerateMiss(masm, MISS);
715 MacroAssembler* masm,
733 __ cmp(edi, masm->isolate()->factory()->fixed_array_map());
771 __ cmp(edi, masm->isolate()->factory()->fixed_double_array_map());
791 masm->isolate()->factory()->heap_number_map(),
804 ElementsTransitionGenerator::GenerateSmiToDouble(masm, mode, slow);
816 ElementsTransitionGenerator::GenerateMapChangeElementsTransition(masm, mode,
832 ElementsTransitionGenerator::GenerateDoubleToObject(masm, mode, slow);
838 void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
879 GenerateRuntimeSetProperty(masm, strict_mode);
896 __ cmp(edi, masm->isolate()->factory()->fixed_array_map());
901 __ cmp(edi, masm->isolate()->factory()->fixed_double_array_map());
920 KeyedStoreGenerateGenericHelper(masm, &fast_object, &fast_double,
922 KeyedStoreGenerateGenericHelper(masm, &fast_object_grow, &fast_double_grow,
929 void CallICBase::GenerateMonomorphicCacheProbe(MacroAssembler* masm,
945 Isolate* isolate = masm->isolate();
946 isolate->stub_cache()->GenerateProbe(masm, flags, edx, ecx, ebx, eax);
959 masm, Context::NUMBER_FUNCTION_INDEX, edx);
967 masm, Context::STRING_FUNCTION_INDEX, edx);
978 masm, Context::BOOLEAN_FUNCTION_INDEX, edx);
982 isolate->stub_cache()->GenerateProbe(masm, flags, edx, ecx, ebx, no_reg);
987 static void GenerateFunctionTailCall(MacroAssembler* masm,
1014 void CallICBase::GenerateNormal(MacroAssembler* masm, int argc) {
1027 GenerateNameDictionaryReceiverCheck(masm, edx, eax, ebx, &miss);
1031 GenerateDictionaryLoad(masm, &miss, eax, ecx, edi, ebx, edi);
1032 GenerateFunctionTailCall(masm, argc, &miss);
1038 void CallICBase::GenerateMiss(MacroAssembler* masm,
1050 Counters* counters = masm->isolate()->counters();
1061 FrameScope scope(masm, StackFrame::INTERNAL);
1070 __ mov(ebx, Immediate(ExternalReference(IC_Utility(id), masm->isolate())));
1110 void CallIC::GenerateMegamorphic(MacroAssembler* masm,
1123 CallICBase::GenerateMonomorphicCacheProbe(masm, argc, Code::CALL_IC,
1126 GenerateMiss(masm, argc, extra_state);
1130 void KeyedCallIC::GenerateMegamorphic(MacroAssembler* masm, int argc) {
1154 masm, edx, eax, Map::kHasIndexedInterceptor, &slow_call);
1157 masm, edx, ecx, eax, edi, &check_number_dictionary, &slow_load);
1158 Isolate* isolate = masm->isolate();
1166 GenerateFunctionTailCall(masm, argc, &slow_call);
1194 FrameScope scope(masm, StackFrame::INTERNAL);
1207 GenerateKeyNameCheck(masm, ecx, eax, ebx, &index_name, &slow_call);
1214 masm, edx, eax, Map::kHasNamedInterceptor, &lookup_monomorphic_cache);
1222 GenerateDictionaryLoad(masm, &slow_load, ebx, ecx, eax, edi, edi);
1228 CallICBase::GenerateMonomorphicCacheProbe(masm, argc, Code::KEYED_CALL_IC,
1240 GenerateMiss(masm, argc);
1249 void KeyedCallIC::GenerateNonStrictArguments(MacroAssembler* masm,
1259 Factory* factory = masm->isolate()->factory();
1262 GenerateMappedArgumentsLookup(masm, edx, ecx, ebx, eax, ¬in, &slow);
1264 GenerateFunctionTailCall(masm, argc, &slow);
1268 GenerateUnmappedArgumentsLookup(masm, ecx, ebx, eax, &slow);
1272 GenerateFunctionTailCall(masm, argc, &slow);
1274 GenerateMiss(masm, argc);
1278 void KeyedCallIC::GenerateNormal(MacroAssembler* masm, int argc) {
1290 Condition cond = masm->IsObjectNameType(ecx, eax, eax);
1292 CallICBase::GenerateNormal(masm, argc);
1294 GenerateMiss(masm, argc);
1298 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
1310 masm, flags, edx, ecx, ebx, eax);
1313 masm);
1317 void LoadIC::GenerateNormal(MacroAssembler* masm) {
1325 GenerateNameDictionaryReceiverCheck(masm, edx, eax, ebx, &miss);
1329 GenerateDictionaryLoad(masm, &miss, eax, ecx, edi, ebx, eax);
1334 GenerateMiss(masm);
1338 void LoadIC::GenerateMiss(MacroAssembler* masm) {
1345 __ IncrementCounter(masm->isolate()->counters()->load_miss(), 1);
1354 ExternalReference(IC_Utility(kLoadIC_Miss), masm->isolate());
1359 void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
1376 void KeyedLoadIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) {
1383 __ IncrementCounter(masm->isolate()->counters()->keyed_load_miss(), 1);
1393 masm->isolate())
1394 : ExternalReference(IC_Utility(kKeyedLoadIC_Miss), masm->isolate());
1399 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
1416 void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
1428 Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, edx, ecx, ebx,
1432 GenerateMiss(masm);
1436 void StoreIC::GenerateMiss(MacroAssembler* masm) {
1452 ExternalReference(IC_Utility(kStoreIC_Miss), masm->isolate());
1457 void StoreIC::GenerateNormal(MacroAssembler* masm) {
1467 GenerateNameDictionaryReceiverCheck(masm, edx, ebx, edi, &miss);
1473 GenerateDictionaryStore(masm, &restore_miss, ebx, ecx, eax, edx, edi);
1475 Counters* counters = masm->isolate()->counters();
1484 GenerateMiss(masm);
1488 void StoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
1509 void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
1531 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) {
1548 masm->isolate())
1549 : ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate());
1554 void StoreIC::GenerateSlow(MacroAssembler* masm) {
1569 ExternalReference ref(IC_Utility(kStoreIC_Slow), masm->isolate());
1574 void KeyedStoreIC::GenerateSlow(MacroAssembler* masm) {
1589 ExternalReference ref(IC_Utility(kKeyedStoreIC_Slow), masm->isolate());