• Home
  • Raw
  • Download

Lines Matching refs:__

42 #define __ ACCESS_MASM(masm)  macro
63 __ push(r1); in Generate_Adaptor()
70 __ add(r0, r0, Operand(num_extra_args + 1)); in Generate_Adaptor()
71 __ JumpToExternalReference(ExternalReference(id, masm->isolate())); in Generate_Adaptor()
80 __ ldr(result, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX))); in GenerateLoadInternalArrayFunction()
81 __ ldr(result, in GenerateLoadInternalArrayFunction()
84 __ ldr(result, in GenerateLoadInternalArrayFunction()
95 __ ldr(result, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX))); in GenerateLoadArrayFunction()
96 __ ldr(result, in GenerateLoadArrayFunction()
99 __ ldr(result, in GenerateLoadArrayFunction()
117 __ LoadInitialArrayMap(array_function, scratch2, scratch1); in AllocateEmptyJSArray()
125 __ AllocateInNewSpace(size, in AllocateEmptyJSArray()
137 __ str(scratch1, FieldMemOperand(result, JSObject::kMapOffset)); in AllocateEmptyJSArray()
138 __ LoadRoot(scratch1, Heap::kEmptyFixedArrayRootIndex); in AllocateEmptyJSArray()
139 __ str(scratch1, FieldMemOperand(result, JSArray::kPropertiesOffset)); in AllocateEmptyJSArray()
141 __ mov(scratch3, Operand(0, RelocInfo::NONE)); in AllocateEmptyJSArray()
142 __ str(scratch3, FieldMemOperand(result, JSArray::kLengthOffset)); in AllocateEmptyJSArray()
145 __ str(scratch1, FieldMemOperand(result, JSArray::kElementsOffset)); in AllocateEmptyJSArray()
153 __ add(scratch1, result, Operand(JSArray::kSize)); in AllocateEmptyJSArray()
154 __ str(scratch1, FieldMemOperand(result, JSArray::kElementsOffset)); in AllocateEmptyJSArray()
157 __ sub(scratch1, scratch1, Operand(kHeapObjectTag)); in AllocateEmptyJSArray()
164 __ LoadRoot(scratch3, Heap::kFixedArrayMapRootIndex); in AllocateEmptyJSArray()
166 __ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex)); in AllocateEmptyJSArray()
167 __ mov(scratch3, Operand(Smi::FromInt(initial_capacity))); in AllocateEmptyJSArray()
169 __ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex)); in AllocateEmptyJSArray()
173 __ LoadRoot(scratch3, Heap::kTheHoleValueRootIndex); in AllocateEmptyJSArray()
177 __ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex)); in AllocateEmptyJSArray()
181 __ add(scratch2, scratch1, Operand(initial_capacity * kPointerSize)); in AllocateEmptyJSArray()
182 __ b(&entry); in AllocateEmptyJSArray()
183 __ bind(&loop); in AllocateEmptyJSArray()
184 __ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex)); in AllocateEmptyJSArray()
185 __ bind(&entry); in AllocateEmptyJSArray()
186 __ cmp(scratch1, scratch2); in AllocateEmptyJSArray()
187 __ b(lt, &loop); in AllocateEmptyJSArray()
211 __ LoadInitialArrayMap(array_function, scratch2, elements_array_storage); in AllocateJSArray()
214 __ tst(array_size, array_size); in AllocateJSArray()
215 __ Assert(ne, "array size is unexpectedly 0"); in AllocateJSArray()
221 __ mov(elements_array_end, in AllocateJSArray()
223 __ add(elements_array_end, in AllocateJSArray()
226 __ AllocateInNewSpace( in AllocateJSArray()
239 __ str(elements_array_storage, FieldMemOperand(result, JSObject::kMapOffset)); in AllocateJSArray()
240 __ LoadRoot(elements_array_storage, Heap::kEmptyFixedArrayRootIndex); in AllocateJSArray()
241 __ str(elements_array_storage, in AllocateJSArray()
244 __ str(array_size, FieldMemOperand(result, JSArray::kLengthOffset)); in AllocateJSArray()
250 __ add(elements_array_storage, result, Operand(JSArray::kSize)); in AllocateJSArray()
251 __ str(elements_array_storage, in AllocateJSArray()
256 __ sub(elements_array_storage, in AllocateJSArray()
264 __ LoadRoot(scratch1, Heap::kFixedArrayMapRootIndex); in AllocateJSArray()
266 __ str(scratch1, MemOperand(elements_array_storage, kPointerSize, PostIndex)); in AllocateJSArray()
269 __ str(array_size, in AllocateJSArray()
277 __ add(elements_array_end, in AllocateJSArray()
287 __ LoadRoot(scratch1, Heap::kTheHoleValueRootIndex); in AllocateJSArray()
288 __ jmp(&entry); in AllocateJSArray()
289 __ bind(&loop); in AllocateJSArray()
290 __ str(scratch1, in AllocateJSArray()
292 __ bind(&entry); in AllocateJSArray()
293 __ cmp(elements_array_storage, elements_array_end); in AllocateJSArray()
294 __ b(lt, &loop); in AllocateJSArray()
319 __ cmp(r0, Operand(0, RelocInfo::NONE)); in ArrayNativeCode()
320 __ b(ne, &argc_one_or_more); in ArrayNativeCode()
323 __ bind(&empty_array); in ArrayNativeCode()
331 __ IncrementCounter(counters->array_function_native(), 1, r3, r4); in ArrayNativeCode()
333 __ mov(r0, r2); in ArrayNativeCode()
334 __ add(sp, sp, Operand(kPointerSize)); in ArrayNativeCode()
335 __ Jump(lr); in ArrayNativeCode()
339 __ bind(&argc_one_or_more); in ArrayNativeCode()
340 __ cmp(r0, Operand(1)); in ArrayNativeCode()
341 __ b(ne, &argc_two_or_more); in ArrayNativeCode()
343 __ ldr(r2, MemOperand(sp)); // Get the argument from the stack. in ArrayNativeCode()
344 __ tst(r2, r2); in ArrayNativeCode()
345 __ b(ne, &not_empty_array); in ArrayNativeCode()
346 __ Drop(1); // Adjust stack. in ArrayNativeCode()
347 __ mov(r0, Operand(0)); // Treat this as a call with argc of zero. in ArrayNativeCode()
348 __ b(&empty_array); in ArrayNativeCode()
350 __ bind(&not_empty_array); in ArrayNativeCode()
351 __ and_(r3, r2, Operand(kIntptrSignBit | kSmiTagMask), SetCC); in ArrayNativeCode()
352 __ b(ne, call_generic_code); in ArrayNativeCode()
357 __ cmp(r2, Operand(JSObject::kInitialMaxFastElementArray << kSmiTagSize)); in ArrayNativeCode()
358 __ b(ge, call_generic_code); in ArrayNativeCode()
374 __ IncrementCounter(counters->array_function_native(), 1, r2, r4); in ArrayNativeCode()
376 __ mov(r0, r3); in ArrayNativeCode()
377 __ add(sp, sp, Operand(2 * kPointerSize)); in ArrayNativeCode()
378 __ Jump(lr); in ArrayNativeCode()
381 __ bind(&argc_two_or_more); in ArrayNativeCode()
382 __ mov(r2, Operand(r0, LSL, kSmiTagSize)); // Convet argc to a smi. in ArrayNativeCode()
398 __ IncrementCounter(counters->array_function_native(), 1, r2, r6); in ArrayNativeCode()
410 __ mov(r7, sp); in ArrayNativeCode()
411 __ jmp(&entry); in ArrayNativeCode()
412 __ bind(&loop); in ArrayNativeCode()
413 __ ldr(r2, MemOperand(r7, kPointerSize, PostIndex)); in ArrayNativeCode()
415 __ JumpIfNotSmi(r2, &has_non_smi_element); in ArrayNativeCode()
417 __ str(r2, MemOperand(r5, -kPointerSize, PreIndex)); in ArrayNativeCode()
418 __ bind(&entry); in ArrayNativeCode()
419 __ cmp(r4, r5); in ArrayNativeCode()
420 __ b(lt, &loop); in ArrayNativeCode()
422 __ bind(&finish); in ArrayNativeCode()
423 __ mov(sp, r7); in ArrayNativeCode()
430 __ add(sp, sp, Operand(kPointerSize)); in ArrayNativeCode()
431 __ mov(r0, r3); in ArrayNativeCode()
432 __ Jump(lr); in ArrayNativeCode()
434 __ bind(&has_non_smi_element); in ArrayNativeCode()
436 __ CheckMap( in ArrayNativeCode()
438 __ bind(&cant_transition_map); in ArrayNativeCode()
439 __ UndoAllocationInNewSpace(r3, r4); in ArrayNativeCode()
440 __ b(call_generic_code); in ArrayNativeCode()
442 __ bind(&not_double); in ArrayNativeCode()
445 __ ldr(r2, FieldMemOperand(r3, HeapObject::kMapOffset)); in ArrayNativeCode()
446 __ LoadTransitionedArrayMapConditional(FAST_SMI_ONLY_ELEMENTS, in ArrayNativeCode()
451 __ str(r2, FieldMemOperand(r3, HeapObject::kMapOffset)); in ArrayNativeCode()
452 __ RecordWriteField(r3, in ArrayNativeCode()
461 __ sub(r7, r7, Operand(kPointerSize)); in ArrayNativeCode()
462 __ bind(&loop2); in ArrayNativeCode()
463 __ ldr(r2, MemOperand(r7, kPointerSize, PostIndex)); in ArrayNativeCode()
464 __ str(r2, MemOperand(r5, -kPointerSize, PreIndex)); in ArrayNativeCode()
465 __ cmp(r4, r5); in ArrayNativeCode()
466 __ b(lt, &loop2); in ArrayNativeCode()
467 __ b(&finish); in ArrayNativeCode()
484 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_InternalArrayCode()
485 __ tst(r2, Operand(kSmiTagMask)); in Generate_InternalArrayCode()
486 __ Assert(ne, "Unexpected initial map for InternalArray function"); in Generate_InternalArrayCode()
487 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_InternalArrayCode()
488 __ Assert(eq, "Unexpected initial map for InternalArray function"); in Generate_InternalArrayCode()
497 __ bind(&generic_array_code); in Generate_InternalArrayCode()
501 __ Jump(array_code, RelocInfo::CODE_TARGET); in Generate_InternalArrayCode()
518 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_ArrayCode()
519 __ tst(r2, Operand(kSmiTagMask)); in Generate_ArrayCode()
520 __ Assert(ne, "Unexpected initial map for Array function"); in Generate_ArrayCode()
521 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_ArrayCode()
522 __ Assert(eq, "Unexpected initial map for Array function"); in Generate_ArrayCode()
530 __ bind(&generic_array_code); in Generate_ArrayCode()
534 __ Jump(array_code, RelocInfo::CODE_TARGET); in Generate_ArrayCode()
551 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_ArrayConstructCode()
552 __ tst(r2, Operand(kSmiTagMask)); in Generate_ArrayConstructCode()
553 __ Assert(ne, "Unexpected initial map for Array function"); in Generate_ArrayConstructCode()
554 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_ArrayConstructCode()
555 __ Assert(eq, "Unexpected initial map for Array function"); in Generate_ArrayConstructCode()
563 __ bind(&generic_constructor); in Generate_ArrayConstructCode()
566 __ Jump(generic_construct_stub, RelocInfo::CODE_TARGET); in Generate_ArrayConstructCode()
579 __ IncrementCounter(counters->string_ctor_calls(), 1, r2, r3); in Generate_StringConstructCode()
583 __ LoadGlobalFunction(Context::STRING_FUNCTION_INDEX, r2); in Generate_StringConstructCode()
584 __ cmp(function, Operand(r2)); in Generate_StringConstructCode()
585 __ Assert(eq, "Unexpected String function"); in Generate_StringConstructCode()
590 __ cmp(r0, Operand(0, RelocInfo::NONE)); in Generate_StringConstructCode()
591 __ b(eq, &no_arguments); in Generate_StringConstructCode()
593 __ sub(r0, r0, Operand(1)); in Generate_StringConstructCode()
594 __ ldr(r0, MemOperand(sp, r0, LSL, kPointerSizeLog2, PreIndex)); in Generate_StringConstructCode()
596 __ Drop(2); in Generate_StringConstructCode()
609 __ IncrementCounter(counters->string_ctor_cached_number(), 1, r3, r4); in Generate_StringConstructCode()
610 __ bind(&argument_is_string); in Generate_StringConstructCode()
619 __ AllocateInNewSpace(JSValue::kSize, in Generate_StringConstructCode()
628 __ LoadGlobalFunctionInitialMap(function, map, r4); in Generate_StringConstructCode()
630 __ ldrb(r4, FieldMemOperand(map, Map::kInstanceSizeOffset)); in Generate_StringConstructCode()
631 __ cmp(r4, Operand(JSValue::kSize >> kPointerSizeLog2)); in Generate_StringConstructCode()
632 __ Assert(eq, "Unexpected string wrapper instance size"); in Generate_StringConstructCode()
633 __ ldrb(r4, FieldMemOperand(map, Map::kUnusedPropertyFieldsOffset)); in Generate_StringConstructCode()
634 __ cmp(r4, Operand(0, RelocInfo::NONE)); in Generate_StringConstructCode()
635 __ Assert(eq, "Unexpected unused properties of string wrapper"); in Generate_StringConstructCode()
637 __ str(map, FieldMemOperand(r0, HeapObject::kMapOffset)); in Generate_StringConstructCode()
639 __ LoadRoot(r3, Heap::kEmptyFixedArrayRootIndex); in Generate_StringConstructCode()
640 __ str(r3, FieldMemOperand(r0, JSObject::kPropertiesOffset)); in Generate_StringConstructCode()
641 __ str(r3, FieldMemOperand(r0, JSObject::kElementsOffset)); in Generate_StringConstructCode()
643 __ str(argument, FieldMemOperand(r0, JSValue::kValueOffset)); in Generate_StringConstructCode()
648 __ Ret(); in Generate_StringConstructCode()
653 __ bind(&not_cached); in Generate_StringConstructCode()
654 __ JumpIfSmi(r0, &convert_argument); in Generate_StringConstructCode()
657 __ ldr(r2, FieldMemOperand(r0, HeapObject::kMapOffset)); in Generate_StringConstructCode()
658 __ ldrb(r3, FieldMemOperand(r2, Map::kInstanceTypeOffset)); in Generate_StringConstructCode()
660 __ tst(r3, Operand(kIsNotStringMask)); in Generate_StringConstructCode()
661 __ b(ne, &convert_argument); in Generate_StringConstructCode()
662 __ mov(argument, r0); in Generate_StringConstructCode()
663 __ IncrementCounter(counters->string_ctor_conversions(), 1, r3, r4); in Generate_StringConstructCode()
664 __ b(&argument_is_string); in Generate_StringConstructCode()
667 __ bind(&convert_argument); in Generate_StringConstructCode()
668 __ push(function); // Preserve the function. in Generate_StringConstructCode()
669 __ IncrementCounter(counters->string_ctor_conversions(), 1, r3, r4); in Generate_StringConstructCode()
672 __ push(r0); in Generate_StringConstructCode()
673 __ InvokeBuiltin(Builtins::TO_STRING, CALL_FUNCTION); in Generate_StringConstructCode()
675 __ pop(function); in Generate_StringConstructCode()
676 __ mov(argument, r0); in Generate_StringConstructCode()
677 __ b(&argument_is_string); in Generate_StringConstructCode()
681 __ bind(&no_arguments); in Generate_StringConstructCode()
682 __ LoadRoot(argument, Heap::kEmptyStringRootIndex); in Generate_StringConstructCode()
683 __ Drop(1); in Generate_StringConstructCode()
684 __ b(&argument_is_string); in Generate_StringConstructCode()
688 __ bind(&gc_required); in Generate_StringConstructCode()
689 __ IncrementCounter(counters->string_ctor_gc_required(), 1, r3, r4); in Generate_StringConstructCode()
692 __ push(argument); in Generate_StringConstructCode()
693 __ CallRuntime(Runtime::kNewStringWrapper, 1); in Generate_StringConstructCode()
695 __ Ret(); in Generate_StringConstructCode()
719 __ mov(r0, Operand(r0, LSL, kSmiTagSize)); in Generate_JSConstructStubHelper()
720 __ push(r0); // Smi-tagged arguments count. in Generate_JSConstructStubHelper()
721 __ push(r1); // Constructor function. in Generate_JSConstructStubHelper()
731 __ mov(r2, Operand(debug_step_in_fp)); in Generate_JSConstructStubHelper()
732 __ ldr(r2, MemOperand(r2)); in Generate_JSConstructStubHelper()
733 __ tst(r2, r2); in Generate_JSConstructStubHelper()
734 __ b(ne, &rt_call); in Generate_JSConstructStubHelper()
739 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_JSConstructStubHelper()
740 __ JumpIfSmi(r2, &rt_call); in Generate_JSConstructStubHelper()
741 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_JSConstructStubHelper()
742 __ b(ne, &rt_call); in Generate_JSConstructStubHelper()
749 __ CompareInstanceType(r2, r3, JS_FUNCTION_TYPE); in Generate_JSConstructStubHelper()
750 __ b(eq, &rt_call); in Generate_JSConstructStubHelper()
755 __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_JSConstructStubHelper()
758 __ ldrb(r4, constructor_count); in Generate_JSConstructStubHelper()
759 __ sub(r4, r4, Operand(1), SetCC); in Generate_JSConstructStubHelper()
760 __ strb(r4, constructor_count); in Generate_JSConstructStubHelper()
761 __ b(ne, &allocate); in Generate_JSConstructStubHelper()
763 __ Push(r1, r2); in Generate_JSConstructStubHelper()
765 __ push(r1); // constructor in Generate_JSConstructStubHelper()
767 __ CallRuntime(Runtime::kFinalizeInstanceSize, 1); in Generate_JSConstructStubHelper()
769 __ pop(r2); in Generate_JSConstructStubHelper()
770 __ pop(r1); in Generate_JSConstructStubHelper()
772 __ bind(&allocate); in Generate_JSConstructStubHelper()
778 __ ldrb(r3, FieldMemOperand(r2, Map::kInstanceSizeOffset)); in Generate_JSConstructStubHelper()
779 __ AllocateInNewSpace(r3, r4, r5, r6, &rt_call, SIZE_IN_WORDS); in Generate_JSConstructStubHelper()
787 __ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex); in Generate_JSConstructStubHelper()
788 __ mov(r5, r4); in Generate_JSConstructStubHelper()
790 __ str(r2, MemOperand(r5, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
792 __ str(r6, MemOperand(r5, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
794 __ str(r6, MemOperand(r5, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
802 __ add(r6, r4, Operand(r3, LSL, kPointerSizeLog2)); // End of object. in Generate_JSConstructStubHelper()
804 __ LoadRoot(r7, Heap::kUndefinedValueRootIndex); in Generate_JSConstructStubHelper()
806 __ ldr(r0, FieldMemOperand(r2, Map::kInstanceSizesOffset)); in Generate_JSConstructStubHelper()
807 __ Ubfx(r0, r0, Map::kPreAllocatedPropertyFieldsByte * kBitsPerByte, in Generate_JSConstructStubHelper()
809 __ add(r0, r5, Operand(r0, LSL, kPointerSizeLog2)); in Generate_JSConstructStubHelper()
812 __ cmp(r0, r6); in Generate_JSConstructStubHelper()
813 __ Assert(le, "Unexpected number of pre-allocated property fields."); in Generate_JSConstructStubHelper()
815 __ InitializeFieldsWithFiller(r5, r0, r7); in Generate_JSConstructStubHelper()
817 __ LoadRoot(r7, Heap::kOnePointerFillerMapRootIndex); in Generate_JSConstructStubHelper()
819 __ InitializeFieldsWithFiller(r5, r6, r7); in Generate_JSConstructStubHelper()
825 __ add(r4, r4, Operand(kHeapObjectTag)); in Generate_JSConstructStubHelper()
832 __ ldrb(r3, FieldMemOperand(r2, Map::kUnusedPropertyFieldsOffset)); in Generate_JSConstructStubHelper()
835 __ ldr(r0, FieldMemOperand(r2, Map::kInstanceSizesOffset)); in Generate_JSConstructStubHelper()
836 __ Ubfx(r6, r0, Map::kPreAllocatedPropertyFieldsByte * kBitsPerByte, in Generate_JSConstructStubHelper()
838 __ add(r3, r3, Operand(r6)); in Generate_JSConstructStubHelper()
839 __ Ubfx(r6, r0, Map::kInObjectPropertiesByte * kBitsPerByte, in Generate_JSConstructStubHelper()
841 __ sub(r3, r3, Operand(r6), SetCC); in Generate_JSConstructStubHelper()
844 __ b(eq, &allocated); in Generate_JSConstructStubHelper()
845 __ Assert(pl, "Property allocation count failed."); in Generate_JSConstructStubHelper()
853 __ add(r0, r3, Operand(FixedArray::kHeaderSize / kPointerSize)); in Generate_JSConstructStubHelper()
854 __ AllocateInNewSpace( in Generate_JSConstructStubHelper()
867 __ LoadRoot(r6, Heap::kFixedArrayMapRootIndex); in Generate_JSConstructStubHelper()
868 __ mov(r2, r5); in Generate_JSConstructStubHelper()
870 __ str(r6, MemOperand(r2, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
872 __ mov(r0, Operand(r3, LSL, kSmiTagSize)); in Generate_JSConstructStubHelper()
873 __ str(r0, MemOperand(r2, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
881 __ add(r6, r2, Operand(r3, LSL, kPointerSizeLog2)); // End of object. in Generate_JSConstructStubHelper()
885 __ LoadRoot(r7, Heap::kUndefinedValueRootIndex); in Generate_JSConstructStubHelper()
887 __ LoadRoot(r8, Heap::kUndefinedValueRootIndex); in Generate_JSConstructStubHelper()
888 __ cmp(r7, r8); in Generate_JSConstructStubHelper()
889 __ Assert(eq, "Undefined value not loaded."); in Generate_JSConstructStubHelper()
891 __ b(&entry); in Generate_JSConstructStubHelper()
892 __ bind(&loop); in Generate_JSConstructStubHelper()
893 __ str(r7, MemOperand(r2, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
894 __ bind(&entry); in Generate_JSConstructStubHelper()
895 __ cmp(r2, r6); in Generate_JSConstructStubHelper()
896 __ b(lt, &loop); in Generate_JSConstructStubHelper()
904 __ add(r5, r5, Operand(kHeapObjectTag)); // Add the heap tag. in Generate_JSConstructStubHelper()
905 __ str(r5, FieldMemOperand(r4, JSObject::kPropertiesOffset)); in Generate_JSConstructStubHelper()
910 __ jmp(&allocated); in Generate_JSConstructStubHelper()
916 __ bind(&undo_allocation); in Generate_JSConstructStubHelper()
917 __ UndoAllocationInNewSpace(r4, r5); in Generate_JSConstructStubHelper()
922 __ bind(&rt_call); in Generate_JSConstructStubHelper()
923 __ push(r1); // argument for Runtime_NewObject in Generate_JSConstructStubHelper()
924 __ CallRuntime(Runtime::kNewObject, 1); in Generate_JSConstructStubHelper()
925 __ mov(r4, r0); in Generate_JSConstructStubHelper()
929 __ bind(&allocated); in Generate_JSConstructStubHelper()
930 __ push(r4); in Generate_JSConstructStubHelper()
931 __ push(r4); in Generate_JSConstructStubHelper()
938 __ ldr(r1, MemOperand(sp, 2 * kPointerSize)); in Generate_JSConstructStubHelper()
939 __ ldr(r3, MemOperand(sp, 3 * kPointerSize)); in Generate_JSConstructStubHelper()
942 __ add(r2, fp, Operand(StandardFrameConstants::kCallerSPOffset)); in Generate_JSConstructStubHelper()
945 __ mov(r0, Operand(r3, LSR, kSmiTagSize)); in Generate_JSConstructStubHelper()
957 __ b(&entry); in Generate_JSConstructStubHelper()
958 __ bind(&loop); in Generate_JSConstructStubHelper()
959 __ ldr(ip, MemOperand(r2, r3, LSL, kPointerSizeLog2 - 1)); in Generate_JSConstructStubHelper()
960 __ push(ip); in Generate_JSConstructStubHelper()
961 __ bind(&entry); in Generate_JSConstructStubHelper()
962 __ sub(r3, r3, Operand(2), SetCC); in Generate_JSConstructStubHelper()
963 __ b(ge, &loop); in Generate_JSConstructStubHelper()
969 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_JSConstructStubHelper()
973 __ InvokeCode(code, expected, expected, in Generate_JSConstructStubHelper()
977 __ InvokeFunction(r1, actual, CALL_FUNCTION, in Generate_JSConstructStubHelper()
991 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); in Generate_JSConstructStubHelper()
1003 __ JumpIfSmi(r0, &use_receiver); in Generate_JSConstructStubHelper()
1007 __ CompareObjectType(r0, r3, r3, FIRST_SPEC_OBJECT_TYPE); in Generate_JSConstructStubHelper()
1008 __ b(ge, &exit); in Generate_JSConstructStubHelper()
1012 __ bind(&use_receiver); in Generate_JSConstructStubHelper()
1013 __ ldr(r0, MemOperand(sp)); in Generate_JSConstructStubHelper()
1017 __ bind(&exit); in Generate_JSConstructStubHelper()
1022 __ ldr(r1, MemOperand(sp, 2 * kPointerSize)); in Generate_JSConstructStubHelper()
1027 __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - 1)); in Generate_JSConstructStubHelper()
1028 __ add(sp, sp, Operand(kPointerSize)); in Generate_JSConstructStubHelper()
1029 __ IncrementCounter(isolate->counters()->constructed_objects(), 1, r1, r2); in Generate_JSConstructStubHelper()
1030 __ Jump(lr); in Generate_JSConstructStubHelper()
1060 __ mov(cp, Operand(0, RelocInfo::NONE)); in Generate_JSEntryTrampolineHelper()
1067 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_JSEntryTrampolineHelper()
1069 __ InitializeRootRegister(); in Generate_JSEntryTrampolineHelper()
1072 __ push(r1); in Generate_JSEntryTrampolineHelper()
1073 __ push(r2); in Generate_JSEntryTrampolineHelper()
1080 __ add(r2, r4, Operand(r3, LSL, kPointerSizeLog2)); in Generate_JSEntryTrampolineHelper()
1082 __ b(&entry); in Generate_JSEntryTrampolineHelper()
1083 __ bind(&loop); in Generate_JSEntryTrampolineHelper()
1084 __ ldr(r0, MemOperand(r4, kPointerSize, PostIndex)); // read next parameter in Generate_JSEntryTrampolineHelper()
1085 __ ldr(r0, MemOperand(r0)); // dereference handle in Generate_JSEntryTrampolineHelper()
1086 __ push(r0); // push parameter in Generate_JSEntryTrampolineHelper()
1087 __ bind(&entry); in Generate_JSEntryTrampolineHelper()
1088 __ cmp(r4, r2); in Generate_JSEntryTrampolineHelper()
1089 __ b(ne, &loop); in Generate_JSEntryTrampolineHelper()
1093 __ LoadRoot(r4, Heap::kUndefinedValueRootIndex); in Generate_JSEntryTrampolineHelper()
1094 __ mov(r5, Operand(r4)); in Generate_JSEntryTrampolineHelper()
1095 __ mov(r6, Operand(r4)); in Generate_JSEntryTrampolineHelper()
1096 __ mov(r7, Operand(r4)); in Generate_JSEntryTrampolineHelper()
1098 __ mov(r9, Operand(r4)); in Generate_JSEntryTrampolineHelper()
1102 __ mov(r0, Operand(r3)); in Generate_JSEntryTrampolineHelper()
1105 __ CallStub(&stub); in Generate_JSEntryTrampolineHelper()
1108 __ InvokeFunction(r1, actual, CALL_FUNCTION, in Generate_JSEntryTrampolineHelper()
1115 __ Jump(lr); in Generate_JSEntryTrampolineHelper()
1137 __ push(r1); in Generate_LazyCompile()
1139 __ push(r5); in Generate_LazyCompile()
1142 __ push(r1); in Generate_LazyCompile()
1143 __ CallRuntime(Runtime::kLazyCompile, 1); in Generate_LazyCompile()
1145 __ add(r2, r0, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_LazyCompile()
1148 __ pop(r5); in Generate_LazyCompile()
1150 __ pop(r1); in Generate_LazyCompile()
1156 __ Jump(r2); in Generate_LazyCompile()
1166 __ push(r1); in Generate_LazyRecompile()
1168 __ push(r5); in Generate_LazyRecompile()
1171 __ push(r1); in Generate_LazyRecompile()
1172 __ CallRuntime(Runtime::kLazyRecompile, 1); in Generate_LazyRecompile()
1174 __ add(r2, r0, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_LazyRecompile()
1177 __ pop(r5); in Generate_LazyRecompile()
1179 __ pop(r1); in Generate_LazyRecompile()
1185 __ Jump(r2); in Generate_LazyRecompile()
1194 __ mov(r0, Operand(Smi::FromInt(static_cast<int>(type)))); in Generate_NotifyDeoptimizedHelper()
1195 __ push(r0); in Generate_NotifyDeoptimizedHelper()
1196 __ CallRuntime(Runtime::kNotifyDeoptimized, 1); in Generate_NotifyDeoptimizedHelper()
1200 __ ldr(r6, MemOperand(sp, 0 * kPointerSize)); in Generate_NotifyDeoptimizedHelper()
1201 __ SmiUntag(r6); in Generate_NotifyDeoptimizedHelper()
1204 __ cmp(r6, Operand(FullCodeGenerator::NO_REGISTERS)); in Generate_NotifyDeoptimizedHelper()
1205 __ b(ne, &with_tos_register); in Generate_NotifyDeoptimizedHelper()
1206 __ add(sp, sp, Operand(1 * kPointerSize)); // Remove state. in Generate_NotifyDeoptimizedHelper()
1207 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1209 __ bind(&with_tos_register); in Generate_NotifyDeoptimizedHelper()
1210 __ ldr(r0, MemOperand(sp, 1 * kPointerSize)); in Generate_NotifyDeoptimizedHelper()
1211 __ cmp(r6, Operand(FullCodeGenerator::TOS_REG)); in Generate_NotifyDeoptimizedHelper()
1212 __ b(ne, &unknown_state); in Generate_NotifyDeoptimizedHelper()
1213 __ add(sp, sp, Operand(2 * kPointerSize)); // Remove state. in Generate_NotifyDeoptimizedHelper()
1214 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1216 __ bind(&unknown_state); in Generate_NotifyDeoptimizedHelper()
1217 __ stop("no cases left"); in Generate_NotifyDeoptimizedHelper()
1236 __ stm(db_w, sp, kJSCallerSaved | kCalleeSaved | lr.bit() | fp.bit()); in Generate_NotifyOSR()
1239 __ CallRuntime(Runtime::kNotifyOSR, 0); in Generate_NotifyOSR()
1241 __ ldm(ia_w, sp, kJSCallerSaved | kCalleeSaved | lr.bit() | fp.bit()); in Generate_NotifyOSR()
1242 __ Ret(); in Generate_NotifyOSR()
1249 __ Abort("Unreachable code: Cannot optimize without VFP3 support."); in Generate_OnStackReplacement()
1255 __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); in Generate_OnStackReplacement()
1258 __ push(r0); in Generate_OnStackReplacement()
1259 __ CallRuntime(Runtime::kCompileForOnStackReplacement, 1); in Generate_OnStackReplacement()
1265 __ cmp(r0, Operand(Smi::FromInt(-1))); in Generate_OnStackReplacement()
1266 __ b(ne, &skip); in Generate_OnStackReplacement()
1267 __ Ret(); in Generate_OnStackReplacement()
1269 __ bind(&skip); in Generate_OnStackReplacement()
1271 __ SmiUntag(r0); in Generate_OnStackReplacement()
1272 __ push(r0); in Generate_OnStackReplacement()
1285 __ cmp(r0, Operand(0)); in Generate_FunctionCall()
1286 __ b(ne, &done); in Generate_FunctionCall()
1287 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_FunctionCall()
1288 __ push(r2); in Generate_FunctionCall()
1289 __ add(r0, r0, Operand(1)); in Generate_FunctionCall()
1290 __ bind(&done); in Generate_FunctionCall()
1297 __ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_FunctionCall()
1298 __ JumpIfSmi(r1, &non_function); in Generate_FunctionCall()
1299 __ CompareObjectType(r1, r2, r2, JS_FUNCTION_TYPE); in Generate_FunctionCall()
1300 __ b(ne, &slow); in Generate_FunctionCall()
1306 __ mov(r4, Operand(0, RelocInfo::NONE)); // indicate regular JS_FUNCTION in Generate_FunctionCall()
1309 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_FunctionCall()
1312 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_FunctionCall()
1313 __ ldr(r3, FieldMemOperand(r2, SharedFunctionInfo::kCompilerHintsOffset)); in Generate_FunctionCall()
1314 __ tst(r3, Operand(1 << (SharedFunctionInfo::kStrictModeFunction + in Generate_FunctionCall()
1316 __ b(ne, &shift_arguments); in Generate_FunctionCall()
1319 __ tst(r3, Operand(1 << (SharedFunctionInfo::kNative + kSmiTagSize))); in Generate_FunctionCall()
1320 __ b(ne, &shift_arguments); in Generate_FunctionCall()
1323 __ add(r2, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionCall()
1324 __ ldr(r2, MemOperand(r2, -kPointerSize)); in Generate_FunctionCall()
1328 __ JumpIfSmi(r2, &convert_to_object); in Generate_FunctionCall()
1330 __ LoadRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_FunctionCall()
1331 __ cmp(r2, r3); in Generate_FunctionCall()
1332 __ b(eq, &use_global_receiver); in Generate_FunctionCall()
1333 __ LoadRoot(r3, Heap::kNullValueRootIndex); in Generate_FunctionCall()
1334 __ cmp(r2, r3); in Generate_FunctionCall()
1335 __ b(eq, &use_global_receiver); in Generate_FunctionCall()
1338 __ CompareObjectType(r2, r3, r3, FIRST_SPEC_OBJECT_TYPE); in Generate_FunctionCall()
1339 __ b(ge, &shift_arguments); in Generate_FunctionCall()
1341 __ bind(&convert_to_object); in Generate_FunctionCall()
1346 __ mov(r0, Operand(r0, LSL, kSmiTagSize)); // Smi-tagged. in Generate_FunctionCall()
1347 __ push(r0); in Generate_FunctionCall()
1349 __ push(r2); in Generate_FunctionCall()
1350 __ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION); in Generate_FunctionCall()
1351 __ mov(r2, r0); in Generate_FunctionCall()
1353 __ pop(r0); in Generate_FunctionCall()
1354 __ mov(r0, Operand(r0, ASR, kSmiTagSize)); in Generate_FunctionCall()
1360 __ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_FunctionCall()
1361 __ mov(r4, Operand(0, RelocInfo::NONE)); in Generate_FunctionCall()
1362 __ jmp(&patch_receiver); in Generate_FunctionCall()
1366 __ bind(&use_global_receiver); in Generate_FunctionCall()
1369 __ ldr(r2, FieldMemOperand(cp, kGlobalIndex)); in Generate_FunctionCall()
1370 __ ldr(r2, FieldMemOperand(r2, GlobalObject::kGlobalContextOffset)); in Generate_FunctionCall()
1371 __ ldr(r2, FieldMemOperand(r2, kGlobalIndex)); in Generate_FunctionCall()
1372 __ ldr(r2, FieldMemOperand(r2, GlobalObject::kGlobalReceiverOffset)); in Generate_FunctionCall()
1374 __ bind(&patch_receiver); in Generate_FunctionCall()
1375 __ add(r3, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionCall()
1376 __ str(r2, MemOperand(r3, -kPointerSize)); in Generate_FunctionCall()
1378 __ jmp(&shift_arguments); in Generate_FunctionCall()
1382 __ bind(&slow); in Generate_FunctionCall()
1383 __ mov(r4, Operand(1, RelocInfo::NONE)); // indicate function proxy in Generate_FunctionCall()
1384 __ cmp(r2, Operand(JS_FUNCTION_PROXY_TYPE)); in Generate_FunctionCall()
1385 __ b(eq, &shift_arguments); in Generate_FunctionCall()
1386 __ bind(&non_function); in Generate_FunctionCall()
1387 __ mov(r4, Operand(2, RelocInfo::NONE)); // indicate non-function in Generate_FunctionCall()
1396 __ add(r2, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionCall()
1397 __ str(r1, MemOperand(r2, -kPointerSize)); in Generate_FunctionCall()
1405 __ bind(&shift_arguments); in Generate_FunctionCall()
1408 __ add(r2, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionCall()
1410 __ bind(&loop); in Generate_FunctionCall()
1411 __ ldr(ip, MemOperand(r2, -kPointerSize)); in Generate_FunctionCall()
1412 __ str(ip, MemOperand(r2)); in Generate_FunctionCall()
1413 __ sub(r2, r2, Operand(kPointerSize)); in Generate_FunctionCall()
1414 __ cmp(r2, sp); in Generate_FunctionCall()
1415 __ b(ne, &loop); in Generate_FunctionCall()
1418 __ sub(r0, r0, Operand(1)); in Generate_FunctionCall()
1419 __ pop(); in Generate_FunctionCall()
1428 __ tst(r4, r4); in Generate_FunctionCall()
1429 __ b(eq, &function); in Generate_FunctionCall()
1431 __ mov(r2, Operand(0, RelocInfo::NONE)); in Generate_FunctionCall()
1432 __ SetCallKind(r5, CALL_AS_METHOD); in Generate_FunctionCall()
1433 __ cmp(r4, Operand(1)); in Generate_FunctionCall()
1434 __ b(ne, &non_proxy); in Generate_FunctionCall()
1436 __ push(r1); // re-add proxy object as additional argument in Generate_FunctionCall()
1437 __ add(r0, r0, Operand(1)); in Generate_FunctionCall()
1438 __ GetBuiltinEntry(r3, Builtins::CALL_FUNCTION_PROXY); in Generate_FunctionCall()
1439 __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(), in Generate_FunctionCall()
1442 __ bind(&non_proxy); in Generate_FunctionCall()
1443 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); in Generate_FunctionCall()
1444 __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(), in Generate_FunctionCall()
1446 __ bind(&function); in Generate_FunctionCall()
1454 __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_FunctionCall()
1455 __ ldr(r2, in Generate_FunctionCall()
1457 __ mov(r2, Operand(r2, ASR, kSmiTagSize)); in Generate_FunctionCall()
1458 __ ldr(r3, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_FunctionCall()
1459 __ SetCallKind(r5, CALL_AS_METHOD); in Generate_FunctionCall()
1460 __ cmp(r2, r0); // Check formal and actual parameter counts. in Generate_FunctionCall()
1461 __ Jump(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(), in Generate_FunctionCall()
1466 __ InvokeCode(r3, expected, expected, JUMP_FUNCTION, in Generate_FunctionCall()
1481 __ ldr(r0, MemOperand(fp, kFunctionOffset)); // get the function in Generate_FunctionApply()
1482 __ push(r0); in Generate_FunctionApply()
1483 __ ldr(r0, MemOperand(fp, kArgsOffset)); // get the args array in Generate_FunctionApply()
1484 __ push(r0); in Generate_FunctionApply()
1485 __ InvokeBuiltin(Builtins::APPLY_PREPARE, CALL_FUNCTION); in Generate_FunctionApply()
1491 __ LoadRoot(r2, Heap::kRealStackLimitRootIndex); in Generate_FunctionApply()
1494 __ sub(r2, sp, r2); in Generate_FunctionApply()
1496 __ cmp(r2, Operand(r0, LSL, kPointerSizeLog2 - kSmiTagSize)); in Generate_FunctionApply()
1497 __ b(gt, &okay); // Signed comparison. in Generate_FunctionApply()
1500 __ ldr(r1, MemOperand(fp, kFunctionOffset)); in Generate_FunctionApply()
1501 __ push(r1); in Generate_FunctionApply()
1502 __ push(r0); in Generate_FunctionApply()
1503 __ InvokeBuiltin(Builtins::APPLY_OVERFLOW, CALL_FUNCTION); in Generate_FunctionApply()
1507 __ bind(&okay); in Generate_FunctionApply()
1508 __ push(r0); // limit in Generate_FunctionApply()
1509 __ mov(r1, Operand(0, RelocInfo::NONE)); // initial index in Generate_FunctionApply()
1510 __ push(r1); in Generate_FunctionApply()
1513 __ ldr(r0, MemOperand(fp, kRecvOffset)); in Generate_FunctionApply()
1517 __ ldr(r1, MemOperand(fp, kFunctionOffset)); in Generate_FunctionApply()
1518 __ CompareObjectType(r1, r2, r2, JS_FUNCTION_TYPE); in Generate_FunctionApply()
1519 __ b(ne, &push_receiver); in Generate_FunctionApply()
1522 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_FunctionApply()
1524 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_FunctionApply()
1529 __ ldr(r2, FieldMemOperand(r2, SharedFunctionInfo::kCompilerHintsOffset)); in Generate_FunctionApply()
1530 __ tst(r2, Operand(1 << (SharedFunctionInfo::kStrictModeFunction + in Generate_FunctionApply()
1532 __ b(ne, &push_receiver); in Generate_FunctionApply()
1535 __ tst(r2, Operand(1 << (SharedFunctionInfo::kNative + kSmiTagSize))); in Generate_FunctionApply()
1536 __ b(ne, &push_receiver); in Generate_FunctionApply()
1539 __ JumpIfSmi(r0, &call_to_object); in Generate_FunctionApply()
1540 __ LoadRoot(r1, Heap::kNullValueRootIndex); in Generate_FunctionApply()
1541 __ cmp(r0, r1); in Generate_FunctionApply()
1542 __ b(eq, &use_global_receiver); in Generate_FunctionApply()
1543 __ LoadRoot(r1, Heap::kUndefinedValueRootIndex); in Generate_FunctionApply()
1544 __ cmp(r0, r1); in Generate_FunctionApply()
1545 __ b(eq, &use_global_receiver); in Generate_FunctionApply()
1550 __ CompareObjectType(r0, r1, r1, FIRST_SPEC_OBJECT_TYPE); in Generate_FunctionApply()
1551 __ b(ge, &push_receiver); in Generate_FunctionApply()
1555 __ bind(&call_to_object); in Generate_FunctionApply()
1556 __ push(r0); in Generate_FunctionApply()
1557 __ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION); in Generate_FunctionApply()
1558 __ b(&push_receiver); in Generate_FunctionApply()
1561 __ bind(&use_global_receiver); in Generate_FunctionApply()
1564 __ ldr(r0, FieldMemOperand(cp, kGlobalOffset)); in Generate_FunctionApply()
1565 __ ldr(r0, FieldMemOperand(r0, GlobalObject::kGlobalContextOffset)); in Generate_FunctionApply()
1566 __ ldr(r0, FieldMemOperand(r0, kGlobalOffset)); in Generate_FunctionApply()
1567 __ ldr(r0, FieldMemOperand(r0, GlobalObject::kGlobalReceiverOffset)); in Generate_FunctionApply()
1571 __ bind(&push_receiver); in Generate_FunctionApply()
1572 __ push(r0); in Generate_FunctionApply()
1576 __ ldr(r0, MemOperand(fp, kIndexOffset)); in Generate_FunctionApply()
1577 __ b(&entry); in Generate_FunctionApply()
1582 __ bind(&loop); in Generate_FunctionApply()
1583 __ ldr(r1, MemOperand(fp, kArgsOffset)); in Generate_FunctionApply()
1584 __ push(r1); in Generate_FunctionApply()
1585 __ push(r0); in Generate_FunctionApply()
1588 __ CallRuntime(Runtime::kGetProperty, 2); in Generate_FunctionApply()
1589 __ push(r0); in Generate_FunctionApply()
1592 __ ldr(r0, MemOperand(fp, kIndexOffset)); in Generate_FunctionApply()
1593 __ add(r0, r0, Operand(1 << kSmiTagSize)); in Generate_FunctionApply()
1594 __ str(r0, MemOperand(fp, kIndexOffset)); in Generate_FunctionApply()
1598 __ bind(&entry); in Generate_FunctionApply()
1599 __ ldr(r1, MemOperand(fp, kLimitOffset)); in Generate_FunctionApply()
1600 __ cmp(r0, r1); in Generate_FunctionApply()
1601 __ b(ne, &loop); in Generate_FunctionApply()
1606 __ mov(r0, Operand(r0, ASR, kSmiTagSize)); in Generate_FunctionApply()
1607 __ ldr(r1, MemOperand(fp, kFunctionOffset)); in Generate_FunctionApply()
1608 __ CompareObjectType(r1, r2, r2, JS_FUNCTION_TYPE); in Generate_FunctionApply()
1609 __ b(ne, &call_proxy); in Generate_FunctionApply()
1610 __ InvokeFunction(r1, actual, CALL_FUNCTION, in Generate_FunctionApply()
1614 __ add(sp, sp, Operand(3 * kPointerSize)); in Generate_FunctionApply()
1615 __ Jump(lr); in Generate_FunctionApply()
1618 __ bind(&call_proxy); in Generate_FunctionApply()
1619 __ push(r1); // add function proxy as last argument in Generate_FunctionApply()
1620 __ add(r0, r0, Operand(1)); in Generate_FunctionApply()
1621 __ mov(r2, Operand(0, RelocInfo::NONE)); in Generate_FunctionApply()
1622 __ SetCallKind(r5, CALL_AS_METHOD); in Generate_FunctionApply()
1623 __ GetBuiltinEntry(r3, Builtins::CALL_FUNCTION_PROXY); in Generate_FunctionApply()
1624 __ Call(masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(), in Generate_FunctionApply()
1629 __ add(sp, sp, Operand(3 * kPointerSize)); in Generate_FunctionApply()
1630 __ Jump(lr); in Generate_FunctionApply()
1635 __ mov(r0, Operand(r0, LSL, kSmiTagSize)); in EnterArgumentsAdaptorFrame()
1636 __ mov(r4, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); in EnterArgumentsAdaptorFrame()
1637 __ stm(db_w, sp, r0.bit() | r1.bit() | r4.bit() | fp.bit() | lr.bit()); in EnterArgumentsAdaptorFrame()
1638 __ add(fp, sp, Operand(3 * kPointerSize)); in EnterArgumentsAdaptorFrame()
1648 __ ldr(r1, MemOperand(fp, -3 * kPointerSize)); in LeaveArgumentsAdaptorFrame()
1649 __ mov(sp, fp); in LeaveArgumentsAdaptorFrame()
1650 __ ldm(ia_w, sp, fp.bit() | lr.bit()); in LeaveArgumentsAdaptorFrame()
1651 __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - kSmiTagSize)); in LeaveArgumentsAdaptorFrame()
1652 __ add(sp, sp, Operand(kPointerSize)); // adjust for receiver in LeaveArgumentsAdaptorFrame()
1668 __ cmp(r0, r2); in Generate_ArgumentsAdaptorTrampoline()
1669 __ b(lt, &too_few); in Generate_ArgumentsAdaptorTrampoline()
1670 __ cmp(r2, Operand(SharedFunctionInfo::kDontAdaptArgumentsSentinel)); in Generate_ArgumentsAdaptorTrampoline()
1671 __ b(eq, &dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
1674 __ bind(&enough); in Generate_ArgumentsAdaptorTrampoline()
1682 __ add(r0, fp, Operand(r0, LSL, kPointerSizeLog2 - kSmiTagSize)); in Generate_ArgumentsAdaptorTrampoline()
1684 __ add(r0, r0, Operand(2 * kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
1685 __ sub(r2, r0, Operand(r2, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
1694 __ bind(&copy); in Generate_ArgumentsAdaptorTrampoline()
1695 __ ldr(ip, MemOperand(r0, 0)); in Generate_ArgumentsAdaptorTrampoline()
1696 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
1697 __ cmp(r0, r2); // Compare before moving to next argument. in Generate_ArgumentsAdaptorTrampoline()
1698 __ sub(r0, r0, Operand(kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
1699 __ b(ne, &copy); in Generate_ArgumentsAdaptorTrampoline()
1701 __ b(&invoke); in Generate_ArgumentsAdaptorTrampoline()
1705 __ bind(&too_few); in Generate_ArgumentsAdaptorTrampoline()
1713 __ add(r0, fp, Operand(r0, LSL, kPointerSizeLog2 - kSmiTagSize)); in Generate_ArgumentsAdaptorTrampoline()
1721 __ bind(&copy); in Generate_ArgumentsAdaptorTrampoline()
1723 __ ldr(ip, MemOperand(r0, 2 * kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
1724 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
1725 __ cmp(r0, fp); // Compare before moving to next argument. in Generate_ArgumentsAdaptorTrampoline()
1726 __ sub(r0, r0, Operand(kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
1727 __ b(ne, &copy); in Generate_ArgumentsAdaptorTrampoline()
1733 __ LoadRoot(ip, Heap::kUndefinedValueRootIndex); in Generate_ArgumentsAdaptorTrampoline()
1734 __ sub(r2, fp, Operand(r2, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
1735 __ sub(r2, r2, Operand(4 * kPointerSize)); // Adjust for frame. in Generate_ArgumentsAdaptorTrampoline()
1738 __ bind(&fill); in Generate_ArgumentsAdaptorTrampoline()
1739 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
1740 __ cmp(sp, r2); in Generate_ArgumentsAdaptorTrampoline()
1741 __ b(ne, &fill); in Generate_ArgumentsAdaptorTrampoline()
1745 __ bind(&invoke); in Generate_ArgumentsAdaptorTrampoline()
1746 __ Call(r3); in Generate_ArgumentsAdaptorTrampoline()
1753 __ Jump(lr); in Generate_ArgumentsAdaptorTrampoline()
1759 __ bind(&dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
1760 __ Jump(r3); in Generate_ArgumentsAdaptorTrampoline()
1764 #undef __