Lines Matching refs:__
17 #define __ ACCESS_MASM(masm) macro
32 __ AssertFunction(r1); in Generate_Adaptor()
38 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_Adaptor()
44 __ Push(r1); in Generate_Adaptor()
48 __ Push(r3); in Generate_Adaptor()
52 __ Push(r1, r3); in Generate_Adaptor()
61 __ add(r0, r0, Operand(num_extra_args + 1)); in Generate_Adaptor()
63 __ JumpToExternalReference(ExternalReference(id, masm->isolate())); in Generate_Adaptor()
71 __ LoadNativeContextSlot(Context::INTERNAL_ARRAY_FUNCTION_INDEX, result); in GenerateLoadInternalArrayFunction()
78 __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, result); in GenerateLoadArrayFunction()
95 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_InternalArrayCode()
96 __ SmiTst(r2); in Generate_InternalArrayCode()
97 __ Assert(ne, kUnexpectedInitialMapForInternalArrayFunction); in Generate_InternalArrayCode()
98 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_InternalArrayCode()
99 __ Assert(eq, kUnexpectedInitialMapForInternalArrayFunction); in Generate_InternalArrayCode()
106 __ TailCallStub(&stub); in Generate_InternalArrayCode()
123 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_ArrayCode()
124 __ SmiTst(r2); in Generate_ArrayCode()
125 __ Assert(ne, kUnexpectedInitialMapForArrayFunction); in Generate_ArrayCode()
126 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_ArrayCode()
127 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); in Generate_ArrayCode()
130 __ mov(r3, r1); in Generate_ArrayCode()
133 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_ArrayCode()
135 __ TailCallStub(&stub); in Generate_ArrayCode()
153 __ sub(r0, r0, Operand(1), SetCC); in Generate_NumberConstructor()
154 __ b(lo, &no_arguments); in Generate_NumberConstructor()
155 __ ldr(r0, MemOperand(sp, r0, LSL, kPointerSizeLog2, PreIndex)); in Generate_NumberConstructor()
156 __ Drop(2); in Generate_NumberConstructor()
161 __ TailCallStub(&stub); in Generate_NumberConstructor()
164 __ bind(&no_arguments); in Generate_NumberConstructor()
165 __ Move(r0, Smi::FromInt(0)); in Generate_NumberConstructor()
166 __ Ret(1); in Generate_NumberConstructor()
182 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_NumberConstructor_ConstructStub()
188 __ sub(r0, r0, Operand(1), SetCC); in Generate_NumberConstructor_ConstructStub()
189 __ b(lo, &no_arguments); in Generate_NumberConstructor_ConstructStub()
190 __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2, PreIndex)); in Generate_NumberConstructor_ConstructStub()
191 __ Drop(2); in Generate_NumberConstructor_ConstructStub()
192 __ b(&done); in Generate_NumberConstructor_ConstructStub()
193 __ bind(&no_arguments); in Generate_NumberConstructor_ConstructStub()
194 __ Move(r2, Smi::FromInt(0)); in Generate_NumberConstructor_ConstructStub()
195 __ Drop(1); in Generate_NumberConstructor_ConstructStub()
196 __ bind(&done); in Generate_NumberConstructor_ConstructStub()
202 __ JumpIfSmi(r2, &done_convert); in Generate_NumberConstructor_ConstructStub()
203 __ CompareObjectType(r2, r4, r4, HEAP_NUMBER_TYPE); in Generate_NumberConstructor_ConstructStub()
204 __ b(eq, &done_convert); in Generate_NumberConstructor_ConstructStub()
207 __ Push(r1, r3); in Generate_NumberConstructor_ConstructStub()
208 __ Move(r0, r2); in Generate_NumberConstructor_ConstructStub()
210 __ CallStub(&stub); in Generate_NumberConstructor_ConstructStub()
211 __ Move(r2, r0); in Generate_NumberConstructor_ConstructStub()
212 __ Pop(r1, r3); in Generate_NumberConstructor_ConstructStub()
214 __ bind(&done_convert); in Generate_NumberConstructor_ConstructStub()
219 __ cmp(r1, r3); in Generate_NumberConstructor_ConstructStub()
220 __ b(ne, &new_object); in Generate_NumberConstructor_ConstructStub()
223 __ AllocateJSValue(r0, r1, r2, r4, r5, &new_object); in Generate_NumberConstructor_ConstructStub()
224 __ Ret(); in Generate_NumberConstructor_ConstructStub()
227 __ bind(&new_object); in Generate_NumberConstructor_ConstructStub()
230 __ Push(r2, r1, r3); // first argument, constructor, new target in Generate_NumberConstructor_ConstructStub()
231 __ CallRuntime(Runtime::kNewObject); in Generate_NumberConstructor_ConstructStub()
232 __ Pop(r2); in Generate_NumberConstructor_ConstructStub()
234 __ str(r2, FieldMemOperand(r0, JSValue::kValueOffset)); in Generate_NumberConstructor_ConstructStub()
235 __ Ret(); in Generate_NumberConstructor_ConstructStub()
253 __ sub(r0, r0, Operand(1), SetCC); in Generate_StringConstructor()
254 __ b(lo, &no_arguments); in Generate_StringConstructor()
255 __ ldr(r0, MemOperand(sp, r0, LSL, kPointerSizeLog2, PreIndex)); in Generate_StringConstructor()
256 __ Drop(2); in Generate_StringConstructor()
263 __ JumpIfSmi(r0, &to_string); in Generate_StringConstructor()
265 __ CompareObjectType(r0, r1, r1, FIRST_NONSTRING_TYPE); in Generate_StringConstructor()
266 __ b(hi, &to_string); in Generate_StringConstructor()
267 __ b(eq, &symbol_descriptive_string); in Generate_StringConstructor()
268 __ Ret(); in Generate_StringConstructor()
272 __ bind(&no_arguments); in Generate_StringConstructor()
274 __ LoadRoot(r0, Heap::kempty_stringRootIndex); in Generate_StringConstructor()
275 __ Ret(1); in Generate_StringConstructor()
279 __ bind(&to_string); in Generate_StringConstructor()
282 __ TailCallStub(&stub); in Generate_StringConstructor()
286 __ bind(&symbol_descriptive_string); in Generate_StringConstructor()
288 __ Push(r0); in Generate_StringConstructor()
289 __ TailCallRuntime(Runtime::kSymbolDescriptiveString); in Generate_StringConstructor()
306 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_StringConstructor_ConstructStub()
312 __ sub(r0, r0, Operand(1), SetCC); in Generate_StringConstructor_ConstructStub()
313 __ b(lo, &no_arguments); in Generate_StringConstructor_ConstructStub()
314 __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2, PreIndex)); in Generate_StringConstructor_ConstructStub()
315 __ Drop(2); in Generate_StringConstructor_ConstructStub()
316 __ b(&done); in Generate_StringConstructor_ConstructStub()
317 __ bind(&no_arguments); in Generate_StringConstructor_ConstructStub()
318 __ LoadRoot(r2, Heap::kempty_stringRootIndex); in Generate_StringConstructor_ConstructStub()
319 __ Drop(1); in Generate_StringConstructor_ConstructStub()
320 __ bind(&done); in Generate_StringConstructor_ConstructStub()
326 __ JumpIfSmi(r2, &convert); in Generate_StringConstructor_ConstructStub()
327 __ CompareObjectType(r2, r4, r4, FIRST_NONSTRING_TYPE); in Generate_StringConstructor_ConstructStub()
328 __ b(lo, &done_convert); in Generate_StringConstructor_ConstructStub()
329 __ bind(&convert); in Generate_StringConstructor_ConstructStub()
333 __ Push(r1, r3); in Generate_StringConstructor_ConstructStub()
334 __ Move(r0, r2); in Generate_StringConstructor_ConstructStub()
335 __ CallStub(&stub); in Generate_StringConstructor_ConstructStub()
336 __ Move(r2, r0); in Generate_StringConstructor_ConstructStub()
337 __ Pop(r1, r3); in Generate_StringConstructor_ConstructStub()
339 __ bind(&done_convert); in Generate_StringConstructor_ConstructStub()
344 __ cmp(r1, r3); in Generate_StringConstructor_ConstructStub()
345 __ b(ne, &new_object); in Generate_StringConstructor_ConstructStub()
348 __ AllocateJSValue(r0, r1, r2, r4, r5, &new_object); in Generate_StringConstructor_ConstructStub()
349 __ Ret(); in Generate_StringConstructor_ConstructStub()
352 __ bind(&new_object); in Generate_StringConstructor_ConstructStub()
355 __ Push(r2, r1, r3); // first argument, constructor, new target in Generate_StringConstructor_ConstructStub()
356 __ CallRuntime(Runtime::kNewObject); in Generate_StringConstructor_ConstructStub()
357 __ Pop(r2); in Generate_StringConstructor_ConstructStub()
359 __ str(r2, FieldMemOperand(r0, JSValue::kValueOffset)); in Generate_StringConstructor_ConstructStub()
360 __ Ret(); in Generate_StringConstructor_ConstructStub()
373 __ push(r1); in CallRuntimePassFunction()
374 __ push(r3); in CallRuntimePassFunction()
376 __ Push(r1); in CallRuntimePassFunction()
378 __ CallRuntime(function_id, 1); in CallRuntimePassFunction()
380 __ pop(r3); in CallRuntimePassFunction()
381 __ pop(r1); in CallRuntimePassFunction()
386 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in GenerateTailCallToSharedCode()
387 __ ldr(r2, FieldMemOperand(r2, SharedFunctionInfo::kCodeOffset)); in GenerateTailCallToSharedCode()
388 __ add(r2, r2, Operand(Code::kHeaderSize - kHeapObjectTag)); in GenerateTailCallToSharedCode()
389 __ Jump(r2); in GenerateTailCallToSharedCode()
394 __ add(r0, r0, Operand(Code::kHeaderSize - kHeapObjectTag)); in GenerateTailCallToReturnedCode()
395 __ Jump(r0); in GenerateTailCallToReturnedCode()
406 __ LoadRoot(ip, Heap::kStackLimitRootIndex); in Generate_InOptimizationQueue()
407 __ cmp(sp, Operand(ip)); in Generate_InOptimizationQueue()
408 __ b(hs, &ok); in Generate_InOptimizationQueue()
413 __ bind(&ok); in Generate_InOptimizationQueue()
437 __ AssertUndefinedOrAllocationSite(r2, r4); in Generate_JSConstructStubHelper()
438 __ push(r2); in Generate_JSConstructStubHelper()
439 __ SmiTag(r0); in Generate_JSConstructStubHelper()
440 __ push(r0); in Generate_JSConstructStubHelper()
448 __ CompareObjectType(r3, r5, r4, JS_FUNCTION_TYPE); in Generate_JSConstructStubHelper()
449 __ b(ne, &rt_call); in Generate_JSConstructStubHelper()
453 __ ldr(r2, in Generate_JSConstructStubHelper()
455 __ JumpIfSmi(r2, &rt_call); in Generate_JSConstructStubHelper()
456 __ CompareObjectType(r2, r5, r4, MAP_TYPE); in Generate_JSConstructStubHelper()
457 __ b(ne, &rt_call); in Generate_JSConstructStubHelper()
461 __ ldr(r5, FieldMemOperand(r2, Map::kConstructorOrBackPointerOffset)); in Generate_JSConstructStubHelper()
462 __ cmp(r1, r5); in Generate_JSConstructStubHelper()
463 __ b(ne, &rt_call); in Generate_JSConstructStubHelper()
471 __ CompareInstanceType(r2, r5, JS_FUNCTION_TYPE); in Generate_JSConstructStubHelper()
472 __ b(eq, &rt_call); in Generate_JSConstructStubHelper()
478 __ ldrb(r9, FieldMemOperand(r2, Map::kInstanceSizeOffset)); in Generate_JSConstructStubHelper()
480 __ Allocate(r9, r4, r9, r6, &rt_call, SIZE_IN_WORDS); in Generate_JSConstructStubHelper()
489 __ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex); in Generate_JSConstructStubHelper()
490 __ mov(r5, r4); in Generate_JSConstructStubHelper()
492 __ str(r2, MemOperand(r5, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
494 __ str(r6, MemOperand(r5, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
496 __ str(r6, MemOperand(r5, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
501 __ add(r4, r4, Operand(kHeapObjectTag)); in Generate_JSConstructStubHelper()
506 __ LoadRoot(r6, Heap::kUndefinedValueRootIndex); in Generate_JSConstructStubHelper()
514 __ ldr(r0, bit_field3); in Generate_JSConstructStubHelper()
515 __ DecodeField<Map::ConstructionCounter>(ip, r0); in Generate_JSConstructStubHelper()
517 __ cmp(ip, Operand(Map::kSlackTrackingCounterEnd)); in Generate_JSConstructStubHelper()
518 __ b(lt, &no_inobject_slack_tracking); in Generate_JSConstructStubHelper()
519 __ push(ip); // Save allocation count value. in Generate_JSConstructStubHelper()
521 __ sub(r0, r0, Operand(1 << Map::ConstructionCounter::kShift)); in Generate_JSConstructStubHelper()
522 __ str(r0, bit_field3); in Generate_JSConstructStubHelper()
525 __ ldr(r0, FieldMemOperand(r2, Map::kInstanceAttributesOffset)); in Generate_JSConstructStubHelper()
526 __ Ubfx(r0, r0, Map::kUnusedPropertyFieldsByte * kBitsPerByte, in Generate_JSConstructStubHelper()
528 __ sub(r0, r9, Operand(r0, LSL, kPointerSizeLog2)); in Generate_JSConstructStubHelper()
531 __ cmp(r5, r0); in Generate_JSConstructStubHelper()
532 __ Assert(le, kUnexpectedNumberOfPreAllocatedPropertyFields); in Generate_JSConstructStubHelper()
534 __ InitializeFieldsWithFiller(r5, r0, r6); in Generate_JSConstructStubHelper()
538 __ LoadRoot(r6, Heap::kOnePointerFillerMapRootIndex); in Generate_JSConstructStubHelper()
539 __ InitializeFieldsWithFiller(r5, r9, r6); in Generate_JSConstructStubHelper()
541 __ pop(r0); // Restore allocation count value before decreasing. in Generate_JSConstructStubHelper()
542 __ cmp(r0, Operand(Map::kSlackTrackingCounterEnd)); in Generate_JSConstructStubHelper()
543 __ b(ne, &allocated); in Generate_JSConstructStubHelper()
547 __ Push(r1, r3, r4, r2); in Generate_JSConstructStubHelper()
548 __ CallRuntime(Runtime::kFinalizeInstanceSize); in Generate_JSConstructStubHelper()
549 __ Pop(r1, r3, r4); in Generate_JSConstructStubHelper()
555 __ jmp(&allocated); in Generate_JSConstructStubHelper()
557 __ bind(&no_inobject_slack_tracking); in Generate_JSConstructStubHelper()
560 __ InitializeFieldsWithFiller(r5, r9, r6); in Generate_JSConstructStubHelper()
566 __ jmp(&allocated); in Generate_JSConstructStubHelper()
572 __ bind(&rt_call); in Generate_JSConstructStubHelper()
576 __ Push(r1, r3); in Generate_JSConstructStubHelper()
577 __ Push(r1, r3); // constructor function, new target in Generate_JSConstructStubHelper()
578 __ CallRuntime(Runtime::kNewObject); in Generate_JSConstructStubHelper()
579 __ mov(r4, r0); in Generate_JSConstructStubHelper()
580 __ Pop(r1, r3); in Generate_JSConstructStubHelper()
586 __ bind(&allocated); in Generate_JSConstructStubHelper()
589 __ ldr(r0, MemOperand(sp)); in Generate_JSConstructStubHelper()
592 __ SmiUntag(r0); in Generate_JSConstructStubHelper()
598 __ push(r4); in Generate_JSConstructStubHelper()
599 __ push(r4); in Generate_JSConstructStubHelper()
601 __ PushRoot(Heap::kTheHoleValueRootIndex); in Generate_JSConstructStubHelper()
605 __ add(r2, fp, Operand(StandardFrameConstants::kCallerSPOffset)); in Generate_JSConstructStubHelper()
617 __ SmiTag(r4, r0); in Generate_JSConstructStubHelper()
618 __ b(&entry); in Generate_JSConstructStubHelper()
619 __ bind(&loop); in Generate_JSConstructStubHelper()
620 __ ldr(ip, MemOperand(r2, r4, LSL, kPointerSizeLog2 - 1)); in Generate_JSConstructStubHelper()
621 __ push(ip); in Generate_JSConstructStubHelper()
622 __ bind(&entry); in Generate_JSConstructStubHelper()
623 __ sub(r4, r4, Operand(2), SetCC); in Generate_JSConstructStubHelper()
624 __ b(ge, &loop); in Generate_JSConstructStubHelper()
631 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_JSConstructStubHelper()
634 __ Call(code, RelocInfo::CODE_TARGET); in Generate_JSConstructStubHelper()
637 __ InvokeFunction(r1, r3, actual, CALL_FUNCTION, in Generate_JSConstructStubHelper()
650 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); in Generate_JSConstructStubHelper()
662 __ JumpIfSmi(r0, &use_receiver); in Generate_JSConstructStubHelper()
666 __ CompareObjectType(r0, r1, r3, FIRST_JS_RECEIVER_TYPE); in Generate_JSConstructStubHelper()
667 __ b(ge, &exit); in Generate_JSConstructStubHelper()
671 __ bind(&use_receiver); in Generate_JSConstructStubHelper()
672 __ ldr(r0, MemOperand(sp)); in Generate_JSConstructStubHelper()
676 __ bind(&exit); in Generate_JSConstructStubHelper()
680 __ ldr(r1, MemOperand(sp, 1 * kPointerSize)); in Generate_JSConstructStubHelper()
682 __ ldr(r1, MemOperand(sp)); in Generate_JSConstructStubHelper()
688 __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - 1)); in Generate_JSConstructStubHelper()
689 __ add(sp, sp, Operand(kPointerSize)); in Generate_JSConstructStubHelper()
691 __ IncrementCounter(isolate->counters()->constructed_objects(), 1, r1, r2); in Generate_JSConstructStubHelper()
693 __ Jump(lr); in Generate_JSConstructStubHelper()
714 __ push(r1); in Generate_ConstructedNonConstructable()
715 __ CallRuntime(Runtime::kThrowConstructedNonConstructable); in Generate_ConstructedNonConstructable()
729 __ LoadRoot(r2, Heap::kRealStackLimitRootIndex); in Generate_CheckStackOverflow()
732 __ sub(r2, sp, r2); in Generate_CheckStackOverflow()
735 __ cmp(r2, Operand::PointerOffsetFromSmiKey(argc)); in Generate_CheckStackOverflow()
738 __ cmp(r2, Operand(argc, LSL, kPointerSizeLog2)); in Generate_CheckStackOverflow()
740 __ b(gt, &okay); // Signed comparison. in Generate_CheckStackOverflow()
743 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_CheckStackOverflow()
745 __ bind(&okay); in Generate_CheckStackOverflow()
761 __ mov(cp, Operand::Zero()); in Generate_JSEntryTrampolineHelper()
770 __ mov(cp, Operand(context_address)); in Generate_JSEntryTrampolineHelper()
771 __ ldr(cp, MemOperand(cp)); in Generate_JSEntryTrampolineHelper()
773 __ InitializeRootRegister(); in Generate_JSEntryTrampolineHelper()
776 __ Push(r1, r2); in Generate_JSEntryTrampolineHelper()
783 __ mov(r5, r0); in Generate_JSEntryTrampolineHelper()
790 __ add(r2, r4, Operand(r3, LSL, kPointerSizeLog2)); in Generate_JSEntryTrampolineHelper()
792 __ b(&entry); in Generate_JSEntryTrampolineHelper()
793 __ bind(&loop); in Generate_JSEntryTrampolineHelper()
794 __ ldr(r0, MemOperand(r4, kPointerSize, PostIndex)); // read next parameter in Generate_JSEntryTrampolineHelper()
795 __ ldr(r0, MemOperand(r0)); // dereference handle in Generate_JSEntryTrampolineHelper()
796 __ push(r0); // push parameter in Generate_JSEntryTrampolineHelper()
797 __ bind(&entry); in Generate_JSEntryTrampolineHelper()
798 __ cmp(r4, r2); in Generate_JSEntryTrampolineHelper()
799 __ b(ne, &loop); in Generate_JSEntryTrampolineHelper()
802 __ mov(r0, Operand(r3)); in Generate_JSEntryTrampolineHelper()
803 __ mov(r3, Operand(r5)); in Generate_JSEntryTrampolineHelper()
807 __ LoadRoot(r4, Heap::kUndefinedValueRootIndex); in Generate_JSEntryTrampolineHelper()
808 __ mov(r5, Operand(r4)); in Generate_JSEntryTrampolineHelper()
809 __ mov(r6, Operand(r4)); in Generate_JSEntryTrampolineHelper()
811 __ mov(r8, Operand(r4)); in Generate_JSEntryTrampolineHelper()
814 __ mov(r9, Operand(r4)); in Generate_JSEntryTrampolineHelper()
821 __ Call(builtin, RelocInfo::CODE_TARGET); in Generate_JSEntryTrampolineHelper()
827 __ Jump(lr); in Generate_JSEntryTrampolineHelper()
866 __ PushFixedFrame(r1); in Generate_InterpreterEntryTrampoline()
867 __ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); in Generate_InterpreterEntryTrampoline()
868 __ push(r3); in Generate_InterpreterEntryTrampoline()
871 __ mov(r0, Operand(0)); in Generate_InterpreterEntryTrampoline()
872 __ push(r0); in Generate_InterpreterEntryTrampoline()
876 __ ldr(r0, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterEntryTrampoline()
877 __ ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
882 __ SmiTst(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEntryTrampoline()
883 __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEntryTrampoline()
884 __ CompareObjectType(kInterpreterBytecodeArrayRegister, r0, no_reg, in Generate_InterpreterEntryTrampoline()
886 __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEntryTrampoline()
892 __ ldr(r4, FieldMemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
897 __ sub(r9, sp, Operand(r4)); in Generate_InterpreterEntryTrampoline()
898 __ LoadRoot(r2, Heap::kRealStackLimitRootIndex); in Generate_InterpreterEntryTrampoline()
899 __ cmp(r9, Operand(r2)); in Generate_InterpreterEntryTrampoline()
900 __ b(hs, &ok); in Generate_InterpreterEntryTrampoline()
901 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_InterpreterEntryTrampoline()
902 __ bind(&ok); in Generate_InterpreterEntryTrampoline()
907 __ LoadRoot(r9, Heap::kUndefinedValueRootIndex); in Generate_InterpreterEntryTrampoline()
908 __ b(&loop_check, al); in Generate_InterpreterEntryTrampoline()
909 __ bind(&loop_header); in Generate_InterpreterEntryTrampoline()
911 __ push(r9); in Generate_InterpreterEntryTrampoline()
913 __ bind(&loop_check); in Generate_InterpreterEntryTrampoline()
914 __ sub(r4, r4, Operand(kPointerSize), SetCC); in Generate_InterpreterEntryTrampoline()
915 __ b(&loop_header, ge); in Generate_InterpreterEntryTrampoline()
928 __ LoadRoot(ip, Heap::kStackLimitRootIndex); in Generate_InterpreterEntryTrampoline()
929 __ cmp(sp, Operand(ip)); in Generate_InterpreterEntryTrampoline()
930 __ b(hs, &ok); in Generate_InterpreterEntryTrampoline()
931 __ push(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEntryTrampoline()
932 __ CallRuntime(Runtime::kStackGuard); in Generate_InterpreterEntryTrampoline()
933 __ pop(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEntryTrampoline()
934 __ bind(&ok); in Generate_InterpreterEntryTrampoline()
939 __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); in Generate_InterpreterEntryTrampoline()
940 __ add(kInterpreterRegisterFileRegister, fp, in Generate_InterpreterEntryTrampoline()
942 __ mov(kInterpreterBytecodeOffsetRegister, in Generate_InterpreterEntryTrampoline()
944 __ LoadRoot(kInterpreterDispatchTableRegister, in Generate_InterpreterEntryTrampoline()
946 __ add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, in Generate_InterpreterEntryTrampoline()
950 __ ldrb(r1, MemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
952 __ ldr(ip, MemOperand(kInterpreterDispatchTableRegister, r1, LSL, in Generate_InterpreterEntryTrampoline()
956 __ add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_InterpreterEntryTrampoline()
957 __ Call(ip); in Generate_InterpreterEntryTrampoline()
971 __ LeaveFrame(StackFrame::JAVA_SCRIPT); in Generate_InterpreterExitTrampoline()
974 __ ldr(ip, FieldMemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterExitTrampoline()
976 __ add(sp, sp, ip, LeaveCC); in Generate_InterpreterExitTrampoline()
977 __ Jump(lr); in Generate_InterpreterExitTrampoline()
984 __ b(al, &loop_check); in Generate_InterpreterPushArgs()
985 __ bind(&loop_header); in Generate_InterpreterPushArgs()
986 __ ldr(scratch, MemOperand(index, -kPointerSize, PostIndex)); in Generate_InterpreterPushArgs()
987 __ push(scratch); in Generate_InterpreterPushArgs()
988 __ bind(&loop_check); in Generate_InterpreterPushArgs()
989 __ cmp(index, limit); in Generate_InterpreterPushArgs()
990 __ b(gt, &loop_header); in Generate_InterpreterPushArgs()
1005 __ add(r3, r0, Operand(1)); // Add one for receiver. in Generate_InterpreterPushArgsAndCall()
1006 __ mov(r3, Operand(r3, LSL, kPointerSizeLog2)); in Generate_InterpreterPushArgsAndCall()
1007 __ sub(r3, r2, r3); in Generate_InterpreterPushArgsAndCall()
1013 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_InterpreterPushArgsAndCall()
1027 __ mov(r4, Operand(r0, LSL, kPointerSizeLog2)); in Generate_InterpreterPushArgsAndConstruct()
1028 __ sub(r4, r2, r4); in Generate_InterpreterPushArgsAndConstruct()
1031 __ mov(ip, Operand::Zero()); in Generate_InterpreterPushArgsAndConstruct()
1032 __ push(ip); in Generate_InterpreterPushArgsAndConstruct()
1038 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_InterpreterPushArgsAndConstruct()
1047 __ push(kInterpreterAccumulatorRegister); // Save accumulator register. in Generate_InterpreterNotifyDeoptimizedHelper()
1050 __ mov(r1, Operand(Smi::FromInt(static_cast<int>(type)))); in Generate_InterpreterNotifyDeoptimizedHelper()
1051 __ push(r1); in Generate_InterpreterNotifyDeoptimizedHelper()
1052 __ CallRuntime(Runtime::kNotifyDeoptimized); in Generate_InterpreterNotifyDeoptimizedHelper()
1054 __ pop(kInterpreterAccumulatorRegister); // Restore accumulator register. in Generate_InterpreterNotifyDeoptimizedHelper()
1059 __ Drop(1); in Generate_InterpreterNotifyDeoptimizedHelper()
1062 __ add(kInterpreterRegisterFileRegister, fp, in Generate_InterpreterNotifyDeoptimizedHelper()
1064 __ LoadRoot(kInterpreterDispatchTableRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1066 __ add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1072 __ ldr(kContextRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1077 __ ldr(r1, in Generate_InterpreterNotifyDeoptimizedHelper()
1080 __ ldr(r1, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterNotifyDeoptimizedHelper()
1081 __ ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1086 __ SmiTst(kInterpreterBytecodeArrayRegister); in Generate_InterpreterNotifyDeoptimizedHelper()
1087 __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterNotifyDeoptimizedHelper()
1088 __ CompareObjectType(kInterpreterBytecodeArrayRegister, r1, no_reg, in Generate_InterpreterNotifyDeoptimizedHelper()
1090 __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterNotifyDeoptimizedHelper()
1094 __ ldr(kInterpreterBytecodeOffsetRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1098 __ SmiUntag(kInterpreterBytecodeOffsetRegister); in Generate_InterpreterNotifyDeoptimizedHelper()
1101 __ ldrb(r1, MemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1103 __ ldr(ip, MemOperand(kInterpreterDispatchTableRegister, r1, LSL, in Generate_InterpreterNotifyDeoptimizedHelper()
1105 __ add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_InterpreterNotifyDeoptimizedHelper()
1106 __ mov(pc, ip); in Generate_InterpreterNotifyDeoptimizedHelper()
1156 __ stm(db_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in GenerateMakeCodeYoungAgainCommon()
1157 __ PrepareCallCFunction(2, 0, r2); in GenerateMakeCodeYoungAgainCommon()
1158 __ mov(r1, Operand(ExternalReference::isolate_address(masm->isolate()))); in GenerateMakeCodeYoungAgainCommon()
1159 __ CallCFunction( in GenerateMakeCodeYoungAgainCommon()
1161 __ ldm(ia_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in GenerateMakeCodeYoungAgainCommon()
1162 __ mov(pc, r0); in GenerateMakeCodeYoungAgainCommon()
1190 __ stm(db_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in CODE_AGE_LIST()
1191 __ PrepareCallCFunction(2, 0, r2); in CODE_AGE_LIST()
1192 __ mov(r1, Operand(ExternalReference::isolate_address(masm->isolate()))); in CODE_AGE_LIST()
1193 __ CallCFunction(ExternalReference::get_mark_code_as_executed_function( in CODE_AGE_LIST()
1195 __ ldm(ia_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in CODE_AGE_LIST()
1198 __ PushFixedFrame(r1); in CODE_AGE_LIST()
1199 __ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); in CODE_AGE_LIST()
1202 __ add(r0, r0, Operand(kNoCodeAgeSequenceLength)); in CODE_AGE_LIST()
1203 __ mov(pc, r0); in CODE_AGE_LIST()
1225 __ stm(db_w, sp, kJSCallerSaved | kCalleeSaved); in Generate_NotifyStubFailureHelper()
1227 __ CallRuntime(Runtime::kNotifyStubFailure, save_doubles); in Generate_NotifyStubFailureHelper()
1228 __ ldm(ia_w, sp, kJSCallerSaved | kCalleeSaved); in Generate_NotifyStubFailureHelper()
1231 __ add(sp, sp, Operand(kPointerSize)); // Ignore state in Generate_NotifyStubFailureHelper()
1232 __ mov(pc, lr); // Jump to miss handler in Generate_NotifyStubFailureHelper()
1251 __ mov(r0, Operand(Smi::FromInt(static_cast<int>(type)))); in Generate_NotifyDeoptimizedHelper()
1252 __ push(r0); in Generate_NotifyDeoptimizedHelper()
1253 __ CallRuntime(Runtime::kNotifyDeoptimized); in Generate_NotifyDeoptimizedHelper()
1257 __ ldr(r6, MemOperand(sp, 0 * kPointerSize)); in Generate_NotifyDeoptimizedHelper()
1258 __ SmiUntag(r6); in Generate_NotifyDeoptimizedHelper()
1261 __ cmp(r6, Operand(FullCodeGenerator::NO_REGISTERS)); in Generate_NotifyDeoptimizedHelper()
1262 __ b(ne, &with_tos_register); in Generate_NotifyDeoptimizedHelper()
1263 __ add(sp, sp, Operand(1 * kPointerSize)); // Remove state. in Generate_NotifyDeoptimizedHelper()
1264 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1266 __ bind(&with_tos_register); in Generate_NotifyDeoptimizedHelper()
1267 __ ldr(r0, MemOperand(sp, 1 * kPointerSize)); in Generate_NotifyDeoptimizedHelper()
1268 __ cmp(r6, Operand(FullCodeGenerator::TOS_REG)); in Generate_NotifyDeoptimizedHelper()
1269 __ b(ne, &unknown_state); in Generate_NotifyDeoptimizedHelper()
1270 __ add(sp, sp, Operand(2 * kPointerSize)); // Remove state. in Generate_NotifyDeoptimizedHelper()
1271 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1273 __ bind(&unknown_state); in Generate_NotifyDeoptimizedHelper()
1274 __ stop("no cases left"); in Generate_NotifyDeoptimizedHelper()
1303 __ ldr(signature, FieldMemOperand(function_template_info, in CompatibleReceiverCheck()
1305 __ CompareRoot(signature, Heap::kUndefinedValueRootIndex); in CompatibleReceiverCheck()
1307 __ b(eq, &receiver_check_passed); in CompatibleReceiverCheck()
1310 __ ldr(map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in CompatibleReceiverCheck()
1312 __ bind(&prototype_loop_start); in CompatibleReceiverCheck()
1315 __ GetMapConstructor(constructor, map, ip, ip); in CompatibleReceiverCheck()
1316 __ cmp(ip, Operand(JS_FUNCTION_TYPE)); in CompatibleReceiverCheck()
1318 __ b(ne, &next_prototype); in CompatibleReceiverCheck()
1320 __ ldr(type, in CompatibleReceiverCheck()
1322 __ ldr(type, FieldMemOperand(type, SharedFunctionInfo::kFunctionDataOffset)); in CompatibleReceiverCheck()
1326 __ bind(&function_template_loop); in CompatibleReceiverCheck()
1329 __ cmp(signature, type); in CompatibleReceiverCheck()
1330 __ b(eq, &receiver_check_passed); in CompatibleReceiverCheck()
1334 __ JumpIfSmi(type, &next_prototype); in CompatibleReceiverCheck()
1335 __ CompareObjectType(type, ip, ip, FUNCTION_TEMPLATE_INFO_TYPE); in CompatibleReceiverCheck()
1338 __ ldr(type, in CompatibleReceiverCheck()
1341 __ b(&function_template_loop, eq); in CompatibleReceiverCheck()
1344 __ bind(&next_prototype); in CompatibleReceiverCheck()
1345 __ ldr(receiver, FieldMemOperand(map, Map::kPrototypeOffset)); in CompatibleReceiverCheck()
1347 __ CompareRoot(receiver, Heap::kNullValueRootIndex); in CompatibleReceiverCheck()
1348 __ b(eq, receiver_check_failed); in CompatibleReceiverCheck()
1349 __ ldr(map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in CompatibleReceiverCheck()
1350 __ ldr(ip, FieldMemOperand(map, Map::kBitField3Offset)); in CompatibleReceiverCheck()
1351 __ tst(ip, Operand(Map::IsHiddenPrototype::kMask)); in CompatibleReceiverCheck()
1352 __ b(eq, receiver_check_failed); in CompatibleReceiverCheck()
1354 __ b(&prototype_loop_start); in CompatibleReceiverCheck()
1356 __ bind(&receiver_check_passed); in CompatibleReceiverCheck()
1372 __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_HandleFastApiCall()
1373 __ ldr(r3, FieldMemOperand(r3, SharedFunctionInfo::kFunctionDataOffset)); in Generate_HandleFastApiCall()
1377 __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_HandleFastApiCall()
1382 __ ldr(r4, FieldMemOperand(r3, FunctionTemplateInfo::kCallCodeOffset)); in Generate_HandleFastApiCall()
1383 __ ldr(r4, FieldMemOperand(r4, CallHandlerInfo::kFastHandlerOffset)); in Generate_HandleFastApiCall()
1384 __ add(r4, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_HandleFastApiCall()
1385 __ Jump(r4); in Generate_HandleFastApiCall()
1388 __ bind(&receiver_check_failed); in Generate_HandleFastApiCall()
1390 __ add(r0, r0, Operand(1)); in Generate_HandleFastApiCall()
1391 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_HandleFastApiCall()
1392 __ TailCallRuntime(Runtime::kThrowIllegalInvocation); in Generate_HandleFastApiCall()
1398 __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); in Generate_OnStackReplacement()
1402 __ push(r0); in Generate_OnStackReplacement()
1403 __ CallRuntime(Runtime::kCompileForOnStackReplacement); in Generate_OnStackReplacement()
1408 __ cmp(r0, Operand(Smi::FromInt(0))); in Generate_OnStackReplacement()
1409 __ b(ne, &skip); in Generate_OnStackReplacement()
1410 __ Ret(); in Generate_OnStackReplacement()
1412 __ bind(&skip); in Generate_OnStackReplacement()
1416 __ ldr(r1, FieldMemOperand(r0, Code::kDeoptimizationDataOffset)); in Generate_OnStackReplacement()
1419 __ add(r0, r0, Operand(Code::kHeaderSize - kHeapObjectTag)); // Code start in Generate_OnStackReplacement()
1422 __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r0); in Generate_OnStackReplacement()
1427 __ ldr(r1, FieldMemOperand(r1, FixedArray::OffsetOfElementAt( in Generate_OnStackReplacement()
1431 __ add(lr, r0, Operand::SmiUntag(r1)); in Generate_OnStackReplacement()
1434 __ Ret(); in Generate_OnStackReplacement()
1442 __ LoadRoot(ip, Heap::kStackLimitRootIndex); in Generate_OsrAfterStackCheck()
1443 __ cmp(sp, Operand(ip)); in Generate_OsrAfterStackCheck()
1444 __ b(hs, &ok); in Generate_OsrAfterStackCheck()
1447 __ CallRuntime(Runtime::kStackGuard); in Generate_OsrAfterStackCheck()
1449 __ Jump(masm->isolate()->builtins()->OnStackReplacement(), in Generate_OsrAfterStackCheck()
1452 __ bind(&ok); in Generate_OsrAfterStackCheck()
1453 __ Ret(); in Generate_OsrAfterStackCheck()
1468 __ Pop(r0); in Generate_DatePrototype_GetField()
1469 __ JumpIfSmi(r0, &receiver_not_date); in Generate_DatePrototype_GetField()
1470 __ CompareObjectType(r0, r1, r2, JS_DATE_TYPE); in Generate_DatePrototype_GetField()
1471 __ b(ne, &receiver_not_date); in Generate_DatePrototype_GetField()
1476 __ ldr(r0, FieldMemOperand(r0, JSDate::kValueOffset)); in Generate_DatePrototype_GetField()
1480 __ mov(r1, Operand(ExternalReference::date_cache_stamp(masm->isolate()))); in Generate_DatePrototype_GetField()
1481 __ ldr(r1, MemOperand(r1)); in Generate_DatePrototype_GetField()
1482 __ ldr(ip, FieldMemOperand(r0, JSDate::kCacheStampOffset)); in Generate_DatePrototype_GetField()
1483 __ cmp(r1, ip); in Generate_DatePrototype_GetField()
1484 __ b(ne, &stamp_mismatch); in Generate_DatePrototype_GetField()
1485 __ ldr(r0, FieldMemOperand( in Generate_DatePrototype_GetField()
1487 __ Ret(); in Generate_DatePrototype_GetField()
1488 __ bind(&stamp_mismatch); in Generate_DatePrototype_GetField()
1491 __ PrepareCallCFunction(2, r1); in Generate_DatePrototype_GetField()
1492 __ mov(r1, Operand(Smi::FromInt(field_index))); in Generate_DatePrototype_GetField()
1493 __ CallCFunction( in Generate_DatePrototype_GetField()
1496 __ Ret(); in Generate_DatePrototype_GetField()
1499 __ bind(&receiver_not_date); in Generate_DatePrototype_GetField()
1500 __ TailCallRuntime(Runtime::kThrowNotDateError); in Generate_DatePrototype_GetField()
1517 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeApply()
1518 __ mov(r3, r2); in Generate_FunctionPrototypeApply()
1519 __ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); // receiver in Generate_FunctionPrototypeApply()
1520 __ sub(r4, r0, Operand(1), SetCC); in Generate_FunctionPrototypeApply()
1521 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // thisArg in Generate_FunctionPrototypeApply()
1522 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_FunctionPrototypeApply()
1523 __ ldr(r3, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // argArray in Generate_FunctionPrototypeApply()
1524 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeApply()
1525 __ str(r2, MemOperand(sp, 0)); in Generate_FunctionPrototypeApply()
1526 __ mov(r0, r3); in Generate_FunctionPrototypeApply()
1537 __ JumpIfSmi(r1, &receiver_not_callable); in Generate_FunctionPrototypeApply()
1538 __ ldr(r4, FieldMemOperand(r1, HeapObject::kMapOffset)); in Generate_FunctionPrototypeApply()
1539 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_FunctionPrototypeApply()
1540 __ tst(r4, Operand(1 << Map::kIsCallable)); in Generate_FunctionPrototypeApply()
1541 __ b(eq, &receiver_not_callable); in Generate_FunctionPrototypeApply()
1545 __ JumpIfRoot(r0, Heap::kNullValueRootIndex, &no_arguments); in Generate_FunctionPrototypeApply()
1546 __ JumpIfRoot(r0, Heap::kUndefinedValueRootIndex, &no_arguments); in Generate_FunctionPrototypeApply()
1550 __ LoadRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeApply()
1551 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeApply()
1555 __ bind(&no_arguments); in Generate_FunctionPrototypeApply()
1557 __ mov(r0, Operand(0)); in Generate_FunctionPrototypeApply()
1558 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeApply()
1562 __ bind(&receiver_not_callable); in Generate_FunctionPrototypeApply()
1564 __ str(r1, MemOperand(sp, 0)); in Generate_FunctionPrototypeApply()
1565 __ TailCallRuntime(Runtime::kThrowApplyNonFunction); in Generate_FunctionPrototypeApply()
1576 __ cmp(r0, Operand::Zero()); in Generate_FunctionPrototypeCall()
1577 __ b(ne, &done); in Generate_FunctionPrototypeCall()
1578 __ PushRoot(Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeCall()
1579 __ add(r0, r0, Operand(1)); in Generate_FunctionPrototypeCall()
1580 __ bind(&done); in Generate_FunctionPrototypeCall()
1585 __ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeCall()
1595 __ add(r2, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeCall()
1597 __ bind(&loop); in Generate_FunctionPrototypeCall()
1598 __ ldr(ip, MemOperand(r2, -kPointerSize)); in Generate_FunctionPrototypeCall()
1599 __ str(ip, MemOperand(r2)); in Generate_FunctionPrototypeCall()
1600 __ sub(r2, r2, Operand(kPointerSize)); in Generate_FunctionPrototypeCall()
1601 __ cmp(r2, sp); in Generate_FunctionPrototypeCall()
1602 __ b(ne, &loop); in Generate_FunctionPrototypeCall()
1605 __ sub(r0, r0, Operand(1)); in Generate_FunctionPrototypeCall()
1606 __ pop(); in Generate_FunctionPrototypeCall()
1610 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeCall()
1627 __ LoadRoot(r1, Heap::kUndefinedValueRootIndex); in Generate_ReflectApply()
1628 __ mov(r2, r1); in Generate_ReflectApply()
1629 __ mov(r3, r1); in Generate_ReflectApply()
1630 __ sub(r4, r0, Operand(1), SetCC); in Generate_ReflectApply()
1631 __ ldr(r1, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // target in Generate_ReflectApply()
1632 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectApply()
1633 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // thisArgument in Generate_ReflectApply()
1634 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectApply()
1635 __ ldr(r3, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // argumentsList in Generate_ReflectApply()
1636 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_ReflectApply()
1637 __ str(r2, MemOperand(sp, 0)); in Generate_ReflectApply()
1638 __ mov(r0, r3); in Generate_ReflectApply()
1649 __ JumpIfSmi(r1, &target_not_callable); in Generate_ReflectApply()
1650 __ ldr(r4, FieldMemOperand(r1, HeapObject::kMapOffset)); in Generate_ReflectApply()
1651 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_ReflectApply()
1652 __ tst(r4, Operand(1 << Map::kIsCallable)); in Generate_ReflectApply()
1653 __ b(eq, &target_not_callable); in Generate_ReflectApply()
1657 __ LoadRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_ReflectApply()
1658 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_ReflectApply()
1661 __ bind(&target_not_callable); in Generate_ReflectApply()
1663 __ str(r1, MemOperand(sp, 0)); in Generate_ReflectApply()
1664 __ TailCallRuntime(Runtime::kThrowApplyNonFunction); in Generate_ReflectApply()
1683 __ LoadRoot(r1, Heap::kUndefinedValueRootIndex); in Generate_ReflectConstruct()
1684 __ mov(r2, r1); in Generate_ReflectConstruct()
1685 __ str(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2)); // receiver in Generate_ReflectConstruct()
1686 __ sub(r4, r0, Operand(1), SetCC); in Generate_ReflectConstruct()
1687 __ ldr(r1, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // target in Generate_ReflectConstruct()
1688 __ mov(r3, r1); // new.target defaults to target in Generate_ReflectConstruct()
1689 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectConstruct()
1690 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // argumentsList in Generate_ReflectConstruct()
1691 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectConstruct()
1692 __ ldr(r3, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // new.target in Generate_ReflectConstruct()
1693 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_ReflectConstruct()
1694 __ mov(r0, r2); in Generate_ReflectConstruct()
1706 __ JumpIfSmi(r1, &target_not_constructor); in Generate_ReflectConstruct()
1707 __ ldr(r4, FieldMemOperand(r1, HeapObject::kMapOffset)); in Generate_ReflectConstruct()
1708 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_ReflectConstruct()
1709 __ tst(r4, Operand(1 << Map::kIsConstructor)); in Generate_ReflectConstruct()
1710 __ b(eq, &target_not_constructor); in Generate_ReflectConstruct()
1714 __ JumpIfSmi(r3, &new_target_not_constructor); in Generate_ReflectConstruct()
1715 __ ldr(r4, FieldMemOperand(r3, HeapObject::kMapOffset)); in Generate_ReflectConstruct()
1716 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_ReflectConstruct()
1717 __ tst(r4, Operand(1 << Map::kIsConstructor)); in Generate_ReflectConstruct()
1718 __ b(eq, &new_target_not_constructor); in Generate_ReflectConstruct()
1721 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_ReflectConstruct()
1724 __ bind(&target_not_constructor); in Generate_ReflectConstruct()
1726 __ str(r1, MemOperand(sp, 0)); in Generate_ReflectConstruct()
1727 __ TailCallRuntime(Runtime::kThrowCalledNonCallable); in Generate_ReflectConstruct()
1731 __ bind(&new_target_not_constructor); in Generate_ReflectConstruct()
1733 __ str(r3, MemOperand(sp, 0)); in Generate_ReflectConstruct()
1734 __ TailCallRuntime(Runtime::kThrowCalledNonCallable); in Generate_ReflectConstruct()
1750 __ LoadRoot(r5, Heap::kRealStackLimitRootIndex); in ArgumentAdaptorStackCheck()
1753 __ sub(r5, sp, r5); in ArgumentAdaptorStackCheck()
1755 __ cmp(r5, Operand(r2, LSL, kPointerSizeLog2)); in ArgumentAdaptorStackCheck()
1756 __ b(le, stack_overflow); // Signed comparison. in ArgumentAdaptorStackCheck()
1761 __ SmiTag(r0); in EnterArgumentsAdaptorFrame()
1762 __ mov(r4, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); in EnterArgumentsAdaptorFrame()
1763 __ stm(db_w, sp, r0.bit() | r1.bit() | r4.bit() | in EnterArgumentsAdaptorFrame()
1766 __ add(fp, sp, in EnterArgumentsAdaptorFrame()
1777 __ ldr(r1, MemOperand(fp, -(StandardFrameConstants::kFixedFrameSizeFromFp + in LeaveArgumentsAdaptorFrame()
1780 __ LeaveFrame(StackFrame::ARGUMENTS_ADAPTOR); in LeaveArgumentsAdaptorFrame()
1781 __ add(sp, sp, Operand::PointerOffsetFromSmiKey(r1)); in LeaveArgumentsAdaptorFrame()
1782 __ add(sp, sp, Operand(kPointerSize)); // adjust for receiver in LeaveArgumentsAdaptorFrame()
1798 __ JumpIfSmi(r0, &create_runtime); in Generate_Apply()
1801 __ ldr(r2, FieldMemOperand(r0, HeapObject::kMapOffset)); in Generate_Apply()
1804 __ ldr(r4, NativeContextMemOperand()); in Generate_Apply()
1807 __ ldr(ip, ContextMemOperand(r4, Context::SLOPPY_ARGUMENTS_MAP_INDEX)); in Generate_Apply()
1808 __ cmp(ip, r2); in Generate_Apply()
1809 __ b(eq, &create_arguments); in Generate_Apply()
1810 __ ldr(ip, ContextMemOperand(r4, Context::STRICT_ARGUMENTS_MAP_INDEX)); in Generate_Apply()
1811 __ cmp(ip, r2); in Generate_Apply()
1812 __ b(eq, &create_arguments); in Generate_Apply()
1815 __ CompareInstanceType(r2, ip, JS_ARRAY_TYPE); in Generate_Apply()
1816 __ b(eq, &create_array); in Generate_Apply()
1819 __ bind(&create_runtime); in Generate_Apply()
1822 __ Push(r1, r3, r0); in Generate_Apply()
1823 __ CallRuntime(Runtime::kCreateListFromArrayLike); in Generate_Apply()
1824 __ Pop(r1, r3); in Generate_Apply()
1825 __ ldr(r2, FieldMemOperand(r0, FixedArray::kLengthOffset)); in Generate_Apply()
1826 __ SmiUntag(r2); in Generate_Apply()
1828 __ jmp(&done_create); in Generate_Apply()
1831 __ bind(&create_arguments); in Generate_Apply()
1832 __ ldr(r2, in Generate_Apply()
1835 __ ldr(r4, FieldMemOperand(r0, JSObject::kElementsOffset)); in Generate_Apply()
1836 __ ldr(ip, FieldMemOperand(r4, FixedArray::kLengthOffset)); in Generate_Apply()
1837 __ cmp(r2, ip); in Generate_Apply()
1838 __ b(ne, &create_runtime); in Generate_Apply()
1839 __ SmiUntag(r2); in Generate_Apply()
1840 __ mov(r0, r4); in Generate_Apply()
1841 __ b(&done_create); in Generate_Apply()
1844 __ bind(&create_array); in Generate_Apply()
1845 __ ldr(r2, FieldMemOperand(r2, Map::kBitField2Offset)); in Generate_Apply()
1846 __ DecodeField<Map::ElementsKindBits>(r2); in Generate_Apply()
1850 __ cmp(r2, Operand(FAST_ELEMENTS)); in Generate_Apply()
1851 __ b(hi, &create_runtime); in Generate_Apply()
1852 __ cmp(r2, Operand(FAST_HOLEY_SMI_ELEMENTS)); in Generate_Apply()
1853 __ b(eq, &create_runtime); in Generate_Apply()
1854 __ ldr(r2, FieldMemOperand(r0, JSArray::kLengthOffset)); in Generate_Apply()
1855 __ ldr(r0, FieldMemOperand(r0, JSArray::kElementsOffset)); in Generate_Apply()
1856 __ SmiUntag(r2); in Generate_Apply()
1858 __ bind(&done_create); in Generate_Apply()
1866 __ LoadRoot(ip, Heap::kRealStackLimitRootIndex); in Generate_Apply()
1869 __ sub(ip, sp, ip); in Generate_Apply()
1871 __ cmp(ip, Operand(r2, LSL, kPointerSizeLog2)); in Generate_Apply()
1872 __ b(gt, &done); // Signed comparison. in Generate_Apply()
1873 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_Apply()
1874 __ bind(&done); in Generate_Apply()
1887 __ mov(r4, Operand(0)); in Generate_Apply()
1889 __ bind(&loop); in Generate_Apply()
1890 __ cmp(r4, r2); in Generate_Apply()
1891 __ b(eq, &done); in Generate_Apply()
1892 __ add(ip, r0, Operand(r4, LSL, kPointerSizeLog2)); in Generate_Apply()
1893 __ ldr(ip, FieldMemOperand(ip, FixedArray::kHeaderSize)); in Generate_Apply()
1894 __ Push(ip); in Generate_Apply()
1895 __ add(r4, r4, Operand(1)); in Generate_Apply()
1896 __ b(&loop); in Generate_Apply()
1897 __ bind(&done); in Generate_Apply()
1898 __ Move(r0, r4); in Generate_Apply()
1903 __ CompareRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_Apply()
1904 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET, eq); in Generate_Apply()
1905 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_Apply()
1917 __ AssertFunction(r1); in Generate_CallFunction()
1922 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallFunction()
1923 __ ldrb(r3, FieldMemOperand(r2, SharedFunctionInfo::kFunctionKindByteOffset)); in Generate_CallFunction()
1924 __ tst(r3, Operand(SharedFunctionInfo::kClassConstructorBitsWithinByte)); in Generate_CallFunction()
1925 __ b(ne, &class_constructor); in Generate_CallFunction()
1932 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_CallFunction()
1935 __ ldrb(r3, FieldMemOperand(r2, SharedFunctionInfo::kNativeByteOffset)); in Generate_CallFunction()
1936 __ tst(r3, Operand((1 << SharedFunctionInfo::kNativeBitWithinByte) | in Generate_CallFunction()
1938 __ b(ne, &done_convert); in Generate_CallFunction()
1949 __ LoadGlobalProxy(r3); in Generate_CallFunction()
1952 __ ldr(r3, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_CallFunction()
1953 __ JumpIfSmi(r3, &convert_to_object); in Generate_CallFunction()
1955 __ CompareObjectType(r3, r4, r4, FIRST_JS_RECEIVER_TYPE); in Generate_CallFunction()
1956 __ b(hs, &done_convert); in Generate_CallFunction()
1959 __ JumpIfRoot(r3, Heap::kUndefinedValueRootIndex, in Generate_CallFunction()
1961 __ JumpIfNotRoot(r3, Heap::kNullValueRootIndex, &convert_to_object); in Generate_CallFunction()
1962 __ bind(&convert_global_proxy); in Generate_CallFunction()
1965 __ LoadGlobalProxy(r3); in Generate_CallFunction()
1967 __ b(&convert_receiver); in Generate_CallFunction()
1969 __ bind(&convert_to_object); in Generate_CallFunction()
1975 __ SmiTag(r0); in Generate_CallFunction()
1976 __ Push(r0, r1); in Generate_CallFunction()
1977 __ mov(r0, r3); in Generate_CallFunction()
1979 __ CallStub(&stub); in Generate_CallFunction()
1980 __ mov(r3, r0); in Generate_CallFunction()
1981 __ Pop(r0, r1); in Generate_CallFunction()
1982 __ SmiUntag(r0); in Generate_CallFunction()
1984 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallFunction()
1985 __ bind(&convert_receiver); in Generate_CallFunction()
1987 __ str(r3, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_CallFunction()
1989 __ bind(&done_convert); in Generate_CallFunction()
1998 __ ldr(r2, in Generate_CallFunction()
2000 __ SmiUntag(r2); in Generate_CallFunction()
2003 __ InvokeFunctionCode(r1, no_reg, expected, actual, JUMP_FUNCTION, in Generate_CallFunction()
2007 __ bind(&class_constructor); in Generate_CallFunction()
2010 __ push(r1); in Generate_CallFunction()
2011 __ CallRuntime(Runtime::kThrowConstructorNonCallableError); in Generate_CallFunction()
2027 __ ldr(r2, FieldMemOperand(r1, JSBoundFunction::kBoundArgumentsOffset)); in Generate_PushBoundArguments()
2028 __ ldr(r4, FieldMemOperand(r2, FixedArray::kLengthOffset)); in Generate_PushBoundArguments()
2029 __ SmiUntag(r4); in Generate_PushBoundArguments()
2030 __ cmp(r4, Operand(0)); in Generate_PushBoundArguments()
2031 __ b(eq, &no_bound_arguments); in Generate_PushBoundArguments()
2044 __ sub(sp, sp, Operand(r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2048 __ CompareRoot(sp, Heap::kRealStackLimitRootIndex); in Generate_PushBoundArguments()
2049 __ b(gt, &done); // Signed comparison. in Generate_PushBoundArguments()
2051 __ add(sp, sp, Operand(r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2054 __ EnterFrame(StackFrame::INTERNAL); in Generate_PushBoundArguments()
2055 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_PushBoundArguments()
2057 __ bind(&done); in Generate_PushBoundArguments()
2063 __ mov(r5, Operand(0)); in Generate_PushBoundArguments()
2064 __ bind(&loop); in Generate_PushBoundArguments()
2065 __ cmp(r5, r0); in Generate_PushBoundArguments()
2066 __ b(gt, &done_loop); in Generate_PushBoundArguments()
2067 __ ldr(ip, MemOperand(sp, r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2068 __ str(ip, MemOperand(sp, r5, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2069 __ add(r4, r4, Operand(1)); in Generate_PushBoundArguments()
2070 __ add(r5, r5, Operand(1)); in Generate_PushBoundArguments()
2071 __ b(&loop); in Generate_PushBoundArguments()
2072 __ bind(&done_loop); in Generate_PushBoundArguments()
2078 __ ldr(r4, FieldMemOperand(r2, FixedArray::kLengthOffset)); in Generate_PushBoundArguments()
2079 __ SmiUntag(r4); in Generate_PushBoundArguments()
2080 __ add(r2, r2, Operand(FixedArray::kHeaderSize - kHeapObjectTag)); in Generate_PushBoundArguments()
2081 __ bind(&loop); in Generate_PushBoundArguments()
2082 __ sub(r4, r4, Operand(1), SetCC); in Generate_PushBoundArguments()
2083 __ ldr(ip, MemOperand(r2, r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2084 __ str(ip, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2085 __ add(r0, r0, Operand(1)); in Generate_PushBoundArguments()
2086 __ b(gt, &loop); in Generate_PushBoundArguments()
2089 __ bind(&no_bound_arguments); in Generate_PushBoundArguments()
2101 __ AssertBoundFunction(r1); in Generate_CallBoundFunction()
2104 __ ldr(ip, FieldMemOperand(r1, JSBoundFunction::kBoundThisOffset)); in Generate_CallBoundFunction()
2105 __ str(ip, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_CallBoundFunction()
2111 __ ldr(r1, FieldMemOperand(r1, JSBoundFunction::kBoundTargetFunctionOffset)); in Generate_CallBoundFunction()
2112 __ mov(ip, Operand(ExternalReference(Builtins::kCall_ReceiverIsAny, in Generate_CallBoundFunction()
2114 __ ldr(ip, MemOperand(ip)); in Generate_CallBoundFunction()
2115 __ add(pc, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_CallBoundFunction()
2127 __ JumpIfSmi(r1, &non_callable); in Generate_Call()
2128 __ bind(&non_smi); in Generate_Call()
2129 __ CompareObjectType(r1, r4, r5, JS_FUNCTION_TYPE); in Generate_Call()
2130 __ Jump(masm->isolate()->builtins()->CallFunction(mode), in Generate_Call()
2132 __ cmp(r5, Operand(JS_BOUND_FUNCTION_TYPE)); in Generate_Call()
2133 __ Jump(masm->isolate()->builtins()->CallBoundFunction(), in Generate_Call()
2135 __ cmp(r5, Operand(JS_PROXY_TYPE)); in Generate_Call()
2136 __ b(ne, &non_function); in Generate_Call()
2139 __ Push(r1); in Generate_Call()
2142 __ add(r0, r0, Operand(2)); in Generate_Call()
2144 __ JumpToExternalReference( in Generate_Call()
2149 __ bind(&non_function); in Generate_Call()
2151 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_Call()
2152 __ tst(r4, Operand(1 << Map::kIsCallable)); in Generate_Call()
2153 __ b(eq, &non_callable); in Generate_Call()
2155 __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_Call()
2157 __ LoadNativeContextSlot(Context::CALL_AS_FUNCTION_DELEGATE_INDEX, r1); in Generate_Call()
2158 __ Jump(masm->isolate()->builtins()->CallFunction( in Generate_Call()
2163 __ bind(&non_callable); in Generate_Call()
2166 __ Push(r1); in Generate_Call()
2167 __ CallRuntime(Runtime::kThrowCalledNonCallable); in Generate_Call()
2179 __ AssertFunction(r1); in Generate_ConstructFunction()
2183 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_ConstructFunction()
2187 __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_ConstructFunction()
2188 __ ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kConstructStubOffset)); in Generate_ConstructFunction()
2189 __ add(pc, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_ConstructFunction()
2200 __ AssertBoundFunction(r1); in Generate_ConstructBoundFunction()
2206 __ cmp(r1, r3); in Generate_ConstructBoundFunction()
2207 __ ldr(r3, FieldMemOperand(r1, JSBoundFunction::kBoundTargetFunctionOffset), in Generate_ConstructBoundFunction()
2211 __ ldr(r1, FieldMemOperand(r1, JSBoundFunction::kBoundTargetFunctionOffset)); in Generate_ConstructBoundFunction()
2212 __ mov(ip, Operand(ExternalReference(Builtins::kConstruct, masm->isolate()))); in Generate_ConstructBoundFunction()
2213 __ ldr(ip, MemOperand(ip)); in Generate_ConstructBoundFunction()
2214 __ add(pc, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_ConstructBoundFunction()
2228 __ Push(r1); in Generate_ConstructProxy()
2229 __ Push(r3); in Generate_ConstructProxy()
2231 __ add(r0, r0, Operand(3)); in Generate_ConstructProxy()
2233 __ JumpToExternalReference( in Generate_ConstructProxy()
2249 __ JumpIfSmi(r1, &non_constructor); in Generate_Construct()
2252 __ CompareObjectType(r1, r4, r5, JS_FUNCTION_TYPE); in Generate_Construct()
2253 __ Jump(masm->isolate()->builtins()->ConstructFunction(), in Generate_Construct()
2257 __ ldrb(r2, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_Construct()
2258 __ tst(r2, Operand(1 << Map::kIsConstructor)); in Generate_Construct()
2259 __ b(eq, &non_constructor); in Generate_Construct()
2263 __ cmp(r5, Operand(JS_BOUND_FUNCTION_TYPE)); in Generate_Construct()
2264 __ Jump(masm->isolate()->builtins()->ConstructBoundFunction(), in Generate_Construct()
2268 __ cmp(r5, Operand(JS_PROXY_TYPE)); in Generate_Construct()
2269 __ Jump(masm->isolate()->builtins()->ConstructProxy(), RelocInfo::CODE_TARGET, in Generate_Construct()
2275 __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_Construct()
2277 __ LoadNativeContextSlot(Context::CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, r1); in Generate_Construct()
2278 __ Jump(masm->isolate()->builtins()->CallFunction(), in Generate_Construct()
2284 __ bind(&non_constructor); in Generate_Construct()
2285 __ Jump(masm->isolate()->builtins()->ConstructedNonConstructable(), in Generate_Construct()
2301 __ cmp(r0, r2); in Generate_ArgumentsAdaptorTrampoline()
2302 __ b(lt, &too_few); in Generate_ArgumentsAdaptorTrampoline()
2303 __ cmp(r2, Operand(SharedFunctionInfo::kDontAdaptArgumentsSentinel)); in Generate_ArgumentsAdaptorTrampoline()
2304 __ b(eq, &dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
2307 __ bind(&enough); in Generate_ArgumentsAdaptorTrampoline()
2316 __ add(r0, fp, Operand::PointerOffsetFromSmiKey(r0)); in Generate_ArgumentsAdaptorTrampoline()
2318 __ add(r0, r0, Operand(2 * kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
2319 __ sub(r4, r0, Operand(r2, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
2329 __ bind(©); in Generate_ArgumentsAdaptorTrampoline()
2330 __ ldr(ip, MemOperand(r0, 0)); in Generate_ArgumentsAdaptorTrampoline()
2331 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
2332 __ cmp(r0, r4); // Compare before moving to next argument. in Generate_ArgumentsAdaptorTrampoline()
2333 __ sub(r0, r0, Operand(kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
2334 __ b(ne, ©); in Generate_ArgumentsAdaptorTrampoline()
2336 __ b(&invoke); in Generate_ArgumentsAdaptorTrampoline()
2340 __ bind(&too_few); in Generate_ArgumentsAdaptorTrampoline()
2344 __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_ArgumentsAdaptorTrampoline()
2345 __ ldr(r5, FieldMemOperand(r4, SharedFunctionInfo::kCompilerHintsOffset)); in Generate_ArgumentsAdaptorTrampoline()
2346 __ tst(r5, Operand(1 << (SharedFunctionInfo::kStrongModeFunction + in Generate_ArgumentsAdaptorTrampoline()
2348 __ b(eq, &no_strong_error); in Generate_ArgumentsAdaptorTrampoline()
2351 __ ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kLengthOffset)); in Generate_ArgumentsAdaptorTrampoline()
2352 __ cmp(r0, Operand::SmiUntag(r4)); in Generate_ArgumentsAdaptorTrampoline()
2353 __ b(ge, &no_strong_error); in Generate_ArgumentsAdaptorTrampoline()
2358 __ CallRuntime(Runtime::kThrowStrongModeTooFewArguments); in Generate_ArgumentsAdaptorTrampoline()
2361 __ bind(&no_strong_error); in Generate_ArgumentsAdaptorTrampoline()
2370 __ add(r0, fp, Operand::PointerOffsetFromSmiKey(r0)); in Generate_ArgumentsAdaptorTrampoline()
2378 __ bind(©); in Generate_ArgumentsAdaptorTrampoline()
2380 __ ldr(ip, MemOperand(r0, 2 * kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
2381 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
2382 __ cmp(r0, fp); // Compare before moving to next argument. in Generate_ArgumentsAdaptorTrampoline()
2383 __ sub(r0, r0, Operand(kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
2384 __ b(ne, ©); in Generate_ArgumentsAdaptorTrampoline()
2390 __ LoadRoot(ip, Heap::kUndefinedValueRootIndex); in Generate_ArgumentsAdaptorTrampoline()
2391 __ sub(r4, fp, Operand(r2, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
2393 __ sub(r4, r4, Operand(StandardFrameConstants::kFixedFrameSizeFromFp + in Generate_ArgumentsAdaptorTrampoline()
2397 __ bind(&fill); in Generate_ArgumentsAdaptorTrampoline()
2398 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
2399 __ cmp(sp, r4); in Generate_ArgumentsAdaptorTrampoline()
2400 __ b(ne, &fill); in Generate_ArgumentsAdaptorTrampoline()
2404 __ bind(&invoke); in Generate_ArgumentsAdaptorTrampoline()
2405 __ mov(r0, r2); in Generate_ArgumentsAdaptorTrampoline()
2409 __ ldr(r4, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_ArgumentsAdaptorTrampoline()
2410 __ Call(r4); in Generate_ArgumentsAdaptorTrampoline()
2417 __ Jump(lr); in Generate_ArgumentsAdaptorTrampoline()
2423 __ bind(&dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
2424 __ ldr(r4, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_ArgumentsAdaptorTrampoline()
2425 __ Jump(r4); in Generate_ArgumentsAdaptorTrampoline()
2427 __ bind(&stack_overflow); in Generate_ArgumentsAdaptorTrampoline()
2430 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_ArgumentsAdaptorTrampoline()
2431 __ bkpt(0); in Generate_ArgumentsAdaptorTrampoline()
2436 #undef __