Lines Matching refs:__
18 #define __ ACCESS_MASM(masm) macro
24 __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, result); in GenerateLoadArrayFunction()
32 __ LoadNativeContextSlot(Context::INTERNAL_ARRAY_FUNCTION_INDEX, result); in GenerateLoadInternalArrayFunction()
48 __ AssertFunction(x1); in Generate_Adaptor()
54 __ Ldr(cp, FieldMemOperand(x1, JSFunction::kContextOffset)); in Generate_Adaptor()
60 __ Push(x1); in Generate_Adaptor()
64 __ Push(x3); in Generate_Adaptor()
68 __ Push(x1, x3); in Generate_Adaptor()
77 __ Add(x0, x0, num_extra_args + 1); in Generate_Adaptor()
79 __ JumpToExternalReference(ExternalReference(id, masm->isolate())); in Generate_Adaptor()
97 __ Ldr(x10, FieldMemOperand(x1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_InternalArrayCode()
98 __ Tst(x10, kSmiTagMask); in Generate_InternalArrayCode()
99 __ Assert(ne, kUnexpectedInitialMapForInternalArrayFunction); in Generate_InternalArrayCode()
100 __ CompareObjectType(x10, x11, x12, MAP_TYPE); in Generate_InternalArrayCode()
101 __ Assert(eq, kUnexpectedInitialMapForInternalArrayFunction); in Generate_InternalArrayCode()
107 __ TailCallStub(&stub); in Generate_InternalArrayCode()
125 __ Ldr(x10, FieldMemOperand(x1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_ArrayCode()
126 __ Tst(x10, kSmiTagMask); in Generate_ArrayCode()
127 __ Assert(ne, kUnexpectedInitialMapForArrayFunction); in Generate_ArrayCode()
128 __ CompareObjectType(x10, x11, x12, MAP_TYPE); in Generate_ArrayCode()
129 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); in Generate_ArrayCode()
133 __ LoadRoot(x2, Heap::kUndefinedValueRootIndex); in Generate_ArrayCode()
134 __ Mov(x3, x1); in Generate_ArrayCode()
136 __ TailCallStub(&stub); in Generate_ArrayCode()
155 __ Cbz(x0, &no_arguments); in Generate_NumberConstructor()
156 __ Sub(x0, x0, 1); in Generate_NumberConstructor()
157 __ Drop(x0); in Generate_NumberConstructor()
158 __ Ldr(x0, MemOperand(jssp, 2 * kPointerSize, PostIndex)); in Generate_NumberConstructor()
163 __ TailCallStub(&stub); in Generate_NumberConstructor()
166 __ Bind(&no_arguments); in Generate_NumberConstructor()
167 __ Drop(1); in Generate_NumberConstructor()
168 __ Ret(); in Generate_NumberConstructor()
185 __ Ldr(cp, FieldMemOperand(x1, JSFunction::kContextOffset)); in Generate_NumberConstructor_ConstructStub()
191 __ Cbz(x0, &no_arguments); in Generate_NumberConstructor_ConstructStub()
192 __ Sub(x0, x0, 1); in Generate_NumberConstructor_ConstructStub()
193 __ Drop(x0); in Generate_NumberConstructor_ConstructStub()
194 __ Ldr(x2, MemOperand(jssp, 2 * kPointerSize, PostIndex)); in Generate_NumberConstructor_ConstructStub()
195 __ B(&done); in Generate_NumberConstructor_ConstructStub()
196 __ Bind(&no_arguments); in Generate_NumberConstructor_ConstructStub()
197 __ Drop(1); in Generate_NumberConstructor_ConstructStub()
198 __ Mov(x2, Smi::FromInt(0)); in Generate_NumberConstructor_ConstructStub()
199 __ Bind(&done); in Generate_NumberConstructor_ConstructStub()
205 __ JumpIfSmi(x2, &done_convert); in Generate_NumberConstructor_ConstructStub()
206 __ JumpIfObjectType(x2, x4, x4, HEAP_NUMBER_TYPE, &done_convert, eq); in Generate_NumberConstructor_ConstructStub()
209 __ Push(x1, x3); in Generate_NumberConstructor_ConstructStub()
210 __ Move(x0, x2); in Generate_NumberConstructor_ConstructStub()
212 __ CallStub(&stub); in Generate_NumberConstructor_ConstructStub()
213 __ Move(x2, x0); in Generate_NumberConstructor_ConstructStub()
214 __ Pop(x3, x1); in Generate_NumberConstructor_ConstructStub()
216 __ Bind(&done_convert); in Generate_NumberConstructor_ConstructStub()
221 __ Cmp(x1, x3); in Generate_NumberConstructor_ConstructStub()
222 __ B(ne, &new_object); in Generate_NumberConstructor_ConstructStub()
225 __ AllocateJSValue(x0, x1, x2, x4, x5, &new_object); in Generate_NumberConstructor_ConstructStub()
226 __ Ret(); in Generate_NumberConstructor_ConstructStub()
229 __ bind(&new_object); in Generate_NumberConstructor_ConstructStub()
232 __ Push(x2, x1, x3); // first argument, constructor, new target in Generate_NumberConstructor_ConstructStub()
233 __ CallRuntime(Runtime::kNewObject); in Generate_NumberConstructor_ConstructStub()
234 __ Pop(x2); in Generate_NumberConstructor_ConstructStub()
236 __ Str(x2, FieldMemOperand(x0, JSValue::kValueOffset)); in Generate_NumberConstructor_ConstructStub()
237 __ Ret(); in Generate_NumberConstructor_ConstructStub()
256 __ Cbz(x0, &no_arguments); in Generate_StringConstructor()
257 __ Sub(x0, x0, 1); in Generate_StringConstructor()
258 __ Drop(x0); in Generate_StringConstructor()
259 __ Ldr(x0, MemOperand(jssp, 2 * kPointerSize, PostIndex)); in Generate_StringConstructor()
266 __ JumpIfSmi(x0, &to_string); in Generate_StringConstructor()
268 __ CompareObjectType(x0, x1, x1, FIRST_NONSTRING_TYPE); in Generate_StringConstructor()
269 __ B(hi, &to_string); in Generate_StringConstructor()
270 __ B(eq, &symbol_descriptive_string); in Generate_StringConstructor()
271 __ Ret(); in Generate_StringConstructor()
275 __ Bind(&no_arguments); in Generate_StringConstructor()
277 __ LoadRoot(x0, Heap::kempty_stringRootIndex); in Generate_StringConstructor()
278 __ Drop(1); in Generate_StringConstructor()
279 __ Ret(); in Generate_StringConstructor()
283 __ Bind(&to_string); in Generate_StringConstructor()
286 __ TailCallStub(&stub); in Generate_StringConstructor()
290 __ Bind(&symbol_descriptive_string); in Generate_StringConstructor()
292 __ Push(x0); in Generate_StringConstructor()
293 __ TailCallRuntime(Runtime::kSymbolDescriptiveString); in Generate_StringConstructor()
311 __ Ldr(cp, FieldMemOperand(x1, JSFunction::kContextOffset)); in Generate_StringConstructor_ConstructStub()
317 __ Cbz(x0, &no_arguments); in Generate_StringConstructor_ConstructStub()
318 __ Sub(x0, x0, 1); in Generate_StringConstructor_ConstructStub()
319 __ Drop(x0); in Generate_StringConstructor_ConstructStub()
320 __ Ldr(x2, MemOperand(jssp, 2 * kPointerSize, PostIndex)); in Generate_StringConstructor_ConstructStub()
321 __ B(&done); in Generate_StringConstructor_ConstructStub()
322 __ Bind(&no_arguments); in Generate_StringConstructor_ConstructStub()
323 __ Drop(1); in Generate_StringConstructor_ConstructStub()
324 __ LoadRoot(x2, Heap::kempty_stringRootIndex); in Generate_StringConstructor_ConstructStub()
325 __ Bind(&done); in Generate_StringConstructor_ConstructStub()
331 __ JumpIfSmi(x2, &convert); in Generate_StringConstructor_ConstructStub()
332 __ JumpIfObjectType(x2, x4, x4, FIRST_NONSTRING_TYPE, &done_convert, lo); in Generate_StringConstructor_ConstructStub()
333 __ Bind(&convert); in Generate_StringConstructor_ConstructStub()
337 __ Push(x1, x3); in Generate_StringConstructor_ConstructStub()
338 __ Move(x0, x2); in Generate_StringConstructor_ConstructStub()
339 __ CallStub(&stub); in Generate_StringConstructor_ConstructStub()
340 __ Move(x2, x0); in Generate_StringConstructor_ConstructStub()
341 __ Pop(x3, x1); in Generate_StringConstructor_ConstructStub()
343 __ Bind(&done_convert); in Generate_StringConstructor_ConstructStub()
348 __ Cmp(x1, x3); in Generate_StringConstructor_ConstructStub()
349 __ B(ne, &new_object); in Generate_StringConstructor_ConstructStub()
352 __ AllocateJSValue(x0, x1, x2, x4, x5, &new_object); in Generate_StringConstructor_ConstructStub()
353 __ Ret(); in Generate_StringConstructor_ConstructStub()
356 __ bind(&new_object); in Generate_StringConstructor_ConstructStub()
359 __ Push(x2, x1, x3); // first argument, constructor, new target in Generate_StringConstructor_ConstructStub()
360 __ CallRuntime(Runtime::kNewObject); in Generate_StringConstructor_ConstructStub()
361 __ Pop(x2); in Generate_StringConstructor_ConstructStub()
363 __ Str(x2, FieldMemOperand(x0, JSValue::kValueOffset)); in Generate_StringConstructor_ConstructStub()
364 __ Ret(); in Generate_StringConstructor_ConstructStub()
378 __ Push(x1, x3, x1); in CallRuntimePassFunction()
380 __ CallRuntime(function_id, 1); in CallRuntimePassFunction()
383 __ Pop(x3, x1); in CallRuntimePassFunction()
388 __ Ldr(x2, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in GenerateTailCallToSharedCode()
389 __ Ldr(x2, FieldMemOperand(x2, SharedFunctionInfo::kCodeOffset)); in GenerateTailCallToSharedCode()
390 __ Add(x2, x2, Code::kHeaderSize - kHeapObjectTag); in GenerateTailCallToSharedCode()
391 __ Br(x2); in GenerateTailCallToSharedCode()
396 __ Add(x0, x0, Code::kHeaderSize - kHeapObjectTag); in GenerateTailCallToReturnedCode()
397 __ Br(x0); in GenerateTailCallToReturnedCode()
408 __ CompareRoot(masm->StackPointer(), Heap::kStackLimitRootIndex); in Generate_InOptimizationQueue()
409 __ B(hs, &ok); in Generate_InOptimizationQueue()
414 __ Bind(&ok); in Generate_InOptimizationQueue()
446 __ AssertUndefinedOrAllocationSite(allocation_site, x10); in Generate_JSConstructStubHelper()
447 __ SmiTag(argc); in Generate_JSConstructStubHelper()
448 __ Push(allocation_site, argc); in Generate_JSConstructStubHelper()
460 __ JumpIfNotObjectType(new_target, x10, x11, JS_FUNCTION_TYPE, in Generate_JSConstructStubHelper()
465 __ Ldr(init_map, in Generate_JSConstructStubHelper()
468 __ JumpIfSmi(init_map, &rt_call); in Generate_JSConstructStubHelper()
469 __ JumpIfNotObjectType(init_map, x10, x11, MAP_TYPE, &rt_call); in Generate_JSConstructStubHelper()
473 __ Ldr(x10, in Generate_JSConstructStubHelper()
475 __ Cmp(constructor, x10); in Generate_JSConstructStubHelper()
476 __ B(ne, &rt_call); in Generate_JSConstructStubHelper()
482 __ CompareInstanceType(init_map, x10, JS_FUNCTION_TYPE); in Generate_JSConstructStubHelper()
483 __ B(eq, &rt_call); in Generate_JSConstructStubHelper()
489 __ Ldrb(obj_size, FieldMemOperand(init_map, Map::kInstanceSizeOffset)); in Generate_JSConstructStubHelper()
490 __ Allocate(obj_size, new_obj, next_obj, x11, &rt_call, SIZE_IN_WORDS); in Generate_JSConstructStubHelper()
497 __ Mov(write_address, new_obj); in Generate_JSConstructStubHelper()
498 __ LoadRoot(empty, Heap::kEmptyFixedArrayRootIndex); in Generate_JSConstructStubHelper()
500 __ Str(init_map, MemOperand(write_address, kPointerSize, PostIndex)); in Generate_JSConstructStubHelper()
503 __ Stp(empty, empty, in Generate_JSConstructStubHelper()
509 __ Add(new_obj, new_obj, kHeapObjectTag); in Generate_JSConstructStubHelper()
513 __ LoadRoot(filler, Heap::kUndefinedValueRootIndex); in Generate_JSConstructStubHelper()
522 __ Ldr(x11, bit_field3); in Generate_JSConstructStubHelper()
523 __ DecodeField<Map::ConstructionCounter>(constructon_count, x11); in Generate_JSConstructStubHelper()
524 __ Cmp(constructon_count, Operand(Map::kSlackTrackingCounterEnd)); in Generate_JSConstructStubHelper()
525 __ B(lt, &no_inobject_slack_tracking); in Generate_JSConstructStubHelper()
527 __ Subs(x11, x11, Operand(1 << Map::ConstructionCounter::kShift)); in Generate_JSConstructStubHelper()
528 __ Str(x11, bit_field3); in Generate_JSConstructStubHelper()
532 __ Ldr(unused_props, in Generate_JSConstructStubHelper()
534 __ Ubfx(unused_props, unused_props, in Generate_JSConstructStubHelper()
538 __ Sub(end_of_pre_allocated, next_obj, in Generate_JSConstructStubHelper()
543 __ Cmp(write_address, end_of_pre_allocated); in Generate_JSConstructStubHelper()
544 __ Assert(le, kUnexpectedNumberOfPreAllocatedPropertyFields); in Generate_JSConstructStubHelper()
548 __ InitializeFieldsWithFiller(write_address, end_of_pre_allocated, in Generate_JSConstructStubHelper()
552 __ LoadRoot(filler, Heap::kOnePointerFillerMapRootIndex); in Generate_JSConstructStubHelper()
553 __ InitializeFieldsWithFiller(write_address, next_obj, filler); in Generate_JSConstructStubHelper()
555 __ Cmp(constructon_count, Operand(Map::kSlackTrackingCounterEnd)); in Generate_JSConstructStubHelper()
556 __ B(ne, &allocated); in Generate_JSConstructStubHelper()
560 __ Push(constructor, new_target, new_obj, init_map); in Generate_JSConstructStubHelper()
561 __ CallRuntime(Runtime::kFinalizeInstanceSize); in Generate_JSConstructStubHelper()
562 __ Pop(new_obj, new_target, constructor); in Generate_JSConstructStubHelper()
565 __ B(&allocated); in Generate_JSConstructStubHelper()
567 __ bind(&no_inobject_slack_tracking); in Generate_JSConstructStubHelper()
570 __ InitializeFieldsWithFiller(write_address, next_obj, filler); in Generate_JSConstructStubHelper()
573 __ B(&allocated); in Generate_JSConstructStubHelper()
579 __ Bind(&rt_call); in Generate_JSConstructStubHelper()
583 __ Push(constructor, new_target, constructor, new_target); in Generate_JSConstructStubHelper()
584 __ CallRuntime(Runtime::kNewObject); in Generate_JSConstructStubHelper()
585 __ Mov(x4, x0); in Generate_JSConstructStubHelper()
586 __ Pop(new_target, constructor); in Generate_JSConstructStubHelper()
592 __ Bind(&allocated); in Generate_JSConstructStubHelper()
597 __ Peek(argc, 0); // Load number of arguments. in Generate_JSConstructStubHelper()
600 __ SmiUntag(argc); in Generate_JSConstructStubHelper()
606 __ Push(x4, x4); in Generate_JSConstructStubHelper()
608 __ PushRoot(Heap::kTheHoleValueRootIndex); in Generate_JSConstructStubHelper()
612 __ Add(x2, fp, StandardFrameConstants::kCallerSPOffset); in Generate_JSConstructStubHelper()
624 __ Add(x4, x2, Operand(argc, LSL, kPointerSizeLog2)); in Generate_JSConstructStubHelper()
626 __ B(&entry); in Generate_JSConstructStubHelper()
627 __ Bind(&loop); in Generate_JSConstructStubHelper()
628 __ Ldp(x10, x11, MemOperand(x4, -2 * kPointerSize, PreIndex)); in Generate_JSConstructStubHelper()
629 __ Push(x11, x10); in Generate_JSConstructStubHelper()
630 __ Bind(&entry); in Generate_JSConstructStubHelper()
631 __ Cmp(x4, x2); in Generate_JSConstructStubHelper()
632 __ B(gt, &loop); in Generate_JSConstructStubHelper()
635 __ B(eq, &done_copying_arguments); in Generate_JSConstructStubHelper()
636 __ Drop(1); in Generate_JSConstructStubHelper()
637 __ Bind(&done_copying_arguments); in Generate_JSConstructStubHelper()
644 __ Ldr(cp, FieldMemOperand(constructor, JSFunction::kContextOffset)); in Generate_JSConstructStubHelper()
647 __ Call(code, RelocInfo::CODE_TARGET); in Generate_JSConstructStubHelper()
650 __ InvokeFunction(constructor, new_target, actual, CALL_FUNCTION, in Generate_JSConstructStubHelper()
663 __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); in Generate_JSConstructStubHelper()
675 __ JumpIfSmi(x0, &use_receiver); in Generate_JSConstructStubHelper()
679 __ JumpIfObjectType(x0, x1, x3, FIRST_JS_RECEIVER_TYPE, &exit, ge); in Generate_JSConstructStubHelper()
683 __ Bind(&use_receiver); in Generate_JSConstructStubHelper()
684 __ Peek(x0, 0); in Generate_JSConstructStubHelper()
688 __ Bind(&exit); in Generate_JSConstructStubHelper()
692 __ Peek(x1, 1 * kXRegSize); in Generate_JSConstructStubHelper()
694 __ Peek(x1, 0); in Generate_JSConstructStubHelper()
700 __ DropBySMI(x1); in Generate_JSConstructStubHelper()
701 __ Drop(1); in Generate_JSConstructStubHelper()
703 __ IncrementCounter(isolate->counters()->constructed_objects(), 1, x1, x2); in Generate_JSConstructStubHelper()
705 __ Ret(); in Generate_JSConstructStubHelper()
726 __ Push(x1); in Generate_ConstructedNonConstructable()
727 __ CallRuntime(Runtime::kThrowConstructedNonConstructable); in Generate_ConstructedNonConstructable()
741 __ LoadRoot(x10, Heap::kRealStackLimitRootIndex); in Generate_CheckStackOverflow()
745 __ Sub(x10, jssp, x10); in Generate_CheckStackOverflow()
748 __ Cmp(x10, Operand::UntagSmiAndScale(argc, kPointerSizeLog2)); in Generate_CheckStackOverflow()
751 __ Cmp(x10, Operand(argc, LSL, kPointerSizeLog2)); in Generate_CheckStackOverflow()
753 __ B(gt, &enough_stack_space); in Generate_CheckStackOverflow()
754 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_CheckStackOverflow()
756 if (__ emit_debug_code()) { in Generate_CheckStackOverflow()
757 __ Unreachable(); in Generate_CheckStackOverflow()
760 __ Bind(&enough_stack_space); in Generate_CheckStackOverflow()
785 __ Mov(cp, 0); in Generate_JSEntryTrampolineHelper()
792 __ Mov(scratch, Operand(ExternalReference(Isolate::kContextAddress, in Generate_JSEntryTrampolineHelper()
794 __ Ldr(cp, MemOperand(scratch)); in Generate_JSEntryTrampolineHelper()
796 __ InitializeRootRegister(); in Generate_JSEntryTrampolineHelper()
799 __ Push(function, receiver); in Generate_JSEntryTrampolineHelper()
810 __ Add(scratch, argv, Operand(argc, LSL, kPointerSizeLog2)); in Generate_JSEntryTrampolineHelper()
812 __ B(&entry); in Generate_JSEntryTrampolineHelper()
813 __ Bind(&loop); in Generate_JSEntryTrampolineHelper()
814 __ Ldr(x11, MemOperand(argv, kPointerSize, PostIndex)); in Generate_JSEntryTrampolineHelper()
815 __ Ldr(x12, MemOperand(x11)); // Dereference the handle. in Generate_JSEntryTrampolineHelper()
816 __ Push(x12); // Push the argument. in Generate_JSEntryTrampolineHelper()
817 __ Bind(&entry); in Generate_JSEntryTrampolineHelper()
818 __ Cmp(scratch, argv); in Generate_JSEntryTrampolineHelper()
819 __ B(ne, &loop); in Generate_JSEntryTrampolineHelper()
821 __ Mov(scratch, argc); in Generate_JSEntryTrampolineHelper()
822 __ Mov(argc, new_target); in Generate_JSEntryTrampolineHelper()
823 __ Mov(new_target, scratch); in Generate_JSEntryTrampolineHelper()
830 __ LoadRoot(x19, Heap::kUndefinedValueRootIndex); in Generate_JSEntryTrampolineHelper()
831 __ Mov(x20, x19); in Generate_JSEntryTrampolineHelper()
832 __ Mov(x21, x19); in Generate_JSEntryTrampolineHelper()
833 __ Mov(x22, x19); in Generate_JSEntryTrampolineHelper()
834 __ Mov(x23, x19); in Generate_JSEntryTrampolineHelper()
835 __ Mov(x24, x19); in Generate_JSEntryTrampolineHelper()
836 __ Mov(x25, x19); in Generate_JSEntryTrampolineHelper()
846 __ Call(builtin, RelocInfo::CODE_TARGET); in Generate_JSEntryTrampolineHelper()
853 __ Ret(); in Generate_JSEntryTrampolineHelper()
889 __ Push(lr, fp, cp, x1); in Generate_InterpreterEntryTrampoline()
890 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); in Generate_InterpreterEntryTrampoline()
891 __ Push(x3); in Generate_InterpreterEntryTrampoline()
894 __ Mov(x0, Operand(0)); in Generate_InterpreterEntryTrampoline()
895 __ Push(x0); in Generate_InterpreterEntryTrampoline()
899 __ Ldr(x0, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterEntryTrampoline()
900 __ Ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
905 __ AssertNotSmi(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
907 __ CompareObjectType(kInterpreterBytecodeArrayRegister, x0, x0, in Generate_InterpreterEntryTrampoline()
909 __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEntryTrampoline()
915 __ Ldr(w11, FieldMemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
920 DCHECK(jssp.Is(__ StackPointer())); in Generate_InterpreterEntryTrampoline()
921 __ Sub(x10, jssp, Operand(x11)); in Generate_InterpreterEntryTrampoline()
922 __ CompareRoot(x10, Heap::kRealStackLimitRootIndex); in Generate_InterpreterEntryTrampoline()
923 __ B(hs, &ok); in Generate_InterpreterEntryTrampoline()
924 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_InterpreterEntryTrampoline()
925 __ Bind(&ok); in Generate_InterpreterEntryTrampoline()
931 __ LoadRoot(x10, Heap::kUndefinedValueRootIndex); in Generate_InterpreterEntryTrampoline()
934 __ Lsr(x11, x11, kPointerSizeLog2); in Generate_InterpreterEntryTrampoline()
935 __ PushMultipleTimes(x10, x11); in Generate_InterpreterEntryTrampoline()
936 __ Bind(&loop_header); in Generate_InterpreterEntryTrampoline()
949 __ CompareRoot(jssp, Heap::kStackLimitRootIndex); in Generate_InterpreterEntryTrampoline()
950 __ B(hs, &ok); in Generate_InterpreterEntryTrampoline()
951 __ Push(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEntryTrampoline()
952 __ CallRuntime(Runtime::kStackGuard); in Generate_InterpreterEntryTrampoline()
953 __ Pop(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEntryTrampoline()
954 __ Bind(&ok); in Generate_InterpreterEntryTrampoline()
959 __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); in Generate_InterpreterEntryTrampoline()
960 __ Add(kInterpreterRegisterFileRegister, fp, in Generate_InterpreterEntryTrampoline()
962 __ Mov(kInterpreterBytecodeOffsetRegister, in Generate_InterpreterEntryTrampoline()
964 __ LoadRoot(kInterpreterDispatchTableRegister, in Generate_InterpreterEntryTrampoline()
966 __ Add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, in Generate_InterpreterEntryTrampoline()
970 __ Ldrb(x1, MemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
972 __ Mov(x1, Operand(x1, LSL, kPointerSizeLog2)); in Generate_InterpreterEntryTrampoline()
973 __ Ldr(ip0, MemOperand(kInterpreterDispatchTableRegister, x1)); in Generate_InterpreterEntryTrampoline()
976 __ Add(ip0, ip0, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_InterpreterEntryTrampoline()
977 __ Call(ip0); in Generate_InterpreterEntryTrampoline()
991 __ LeaveFrame(StackFrame::JAVA_SCRIPT); in Generate_InterpreterExitTrampoline()
994 __ Ldr(w1, FieldMemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterExitTrampoline()
996 __ Drop(x1, 1); in Generate_InterpreterExitTrampoline()
997 __ Ret(); in Generate_InterpreterExitTrampoline()
1006 __ Push(kInterpreterAccumulatorRegister); // Save accumulator register. in Generate_InterpreterNotifyDeoptimizedHelper()
1009 __ Mov(x1, Operand(Smi::FromInt(static_cast<int>(type)))); in Generate_InterpreterNotifyDeoptimizedHelper()
1010 __ Push(x1); in Generate_InterpreterNotifyDeoptimizedHelper()
1011 __ CallRuntime(Runtime::kNotifyDeoptimized); in Generate_InterpreterNotifyDeoptimizedHelper()
1013 __ Pop(kInterpreterAccumulatorRegister); // Restore accumulator register. in Generate_InterpreterNotifyDeoptimizedHelper()
1018 __ Drop(1); in Generate_InterpreterNotifyDeoptimizedHelper()
1021 __ Add(kInterpreterRegisterFileRegister, fp, in Generate_InterpreterNotifyDeoptimizedHelper()
1023 __ LoadRoot(kInterpreterDispatchTableRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1025 __ Add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1031 __ Ldr(kContextRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1036 __ Ldr(x1, in Generate_InterpreterNotifyDeoptimizedHelper()
1039 __ Ldr(x1, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterNotifyDeoptimizedHelper()
1040 __ Ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1045 __ AssertNotSmi(kInterpreterBytecodeArrayRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1047 __ CompareObjectType(kInterpreterBytecodeArrayRegister, x1, x1, in Generate_InterpreterNotifyDeoptimizedHelper()
1049 __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterNotifyDeoptimizedHelper()
1053 __ Ldr(kInterpreterBytecodeOffsetRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1057 __ SmiUntag(kInterpreterBytecodeOffsetRegister); in Generate_InterpreterNotifyDeoptimizedHelper()
1060 __ Ldrb(x1, MemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterNotifyDeoptimizedHelper()
1062 __ Mov(x1, Operand(x1, LSL, kPointerSizeLog2)); in Generate_InterpreterNotifyDeoptimizedHelper()
1063 __ Ldr(ip0, MemOperand(kInterpreterDispatchTableRegister, x1)); in Generate_InterpreterNotifyDeoptimizedHelper()
1064 __ Add(ip0, ip0, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_InterpreterNotifyDeoptimizedHelper()
1065 __ Jump(ip0); in Generate_InterpreterNotifyDeoptimizedHelper()
1119 __ Push(x0, x1, x3, fp, lr); in GenerateMakeCodeYoungAgainCommon()
1120 __ Mov(x1, ExternalReference::isolate_address(masm->isolate())); in GenerateMakeCodeYoungAgainCommon()
1121 __ CallCFunction( in GenerateMakeCodeYoungAgainCommon()
1123 __ Pop(lr, fp, x3, x1, x0); in GenerateMakeCodeYoungAgainCommon()
1128 __ Br(x0); in GenerateMakeCodeYoungAgainCommon()
1160 __ Push(x0, x1, x3, fp, lr); in CODE_AGE_LIST()
1161 __ Mov(x1, ExternalReference::isolate_address(masm->isolate())); in CODE_AGE_LIST()
1162 __ CallCFunction( in CODE_AGE_LIST()
1165 __ Pop(lr, fp, x3, x1, x0); in CODE_AGE_LIST()
1168 __ EmitFrameSetupForCodeAgePatching(masm); in CODE_AGE_LIST()
1172 __ Add(x0, x0, kNoCodeAgeSequenceLength); in CODE_AGE_LIST()
1173 __ Br(x0); in CODE_AGE_LIST()
1198 __ PushXRegList(kSafepointSavedRegisters); in Generate_NotifyStubFailureHelper()
1200 __ CallRuntime(Runtime::kNotifyStubFailure, save_doubles); in Generate_NotifyStubFailureHelper()
1201 __ PopXRegList(kSafepointSavedRegisters); in Generate_NotifyStubFailureHelper()
1205 __ Drop(1); in Generate_NotifyStubFailureHelper()
1209 __ Br(lr); in Generate_NotifyStubFailureHelper()
1228 __ Mov(x0, Smi::FromInt(static_cast<int>(type))); in Generate_NotifyDeoptimizedHelper()
1229 __ Push(x0); in Generate_NotifyDeoptimizedHelper()
1230 __ CallRuntime(Runtime::kNotifyDeoptimized); in Generate_NotifyDeoptimizedHelper()
1235 __ Peek(state, 0); in Generate_NotifyDeoptimizedHelper()
1236 __ SmiUntag(state); in Generate_NotifyDeoptimizedHelper()
1240 __ CompareAndBranch( in Generate_NotifyDeoptimizedHelper()
1242 __ Drop(1); // Remove state. in Generate_NotifyDeoptimizedHelper()
1243 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1245 __ Bind(&with_tos_register); in Generate_NotifyDeoptimizedHelper()
1247 __ Peek(x0, kPointerSize); in Generate_NotifyDeoptimizedHelper()
1248 __ CompareAndBranch(state, FullCodeGenerator::TOS_REG, ne, &unknown_state); in Generate_NotifyDeoptimizedHelper()
1249 __ Drop(2); // Remove state and TOS. in Generate_NotifyDeoptimizedHelper()
1250 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1252 __ Bind(&unknown_state); in Generate_NotifyDeoptimizedHelper()
1253 __ Abort(kInvalidFullCodegenState); in Generate_NotifyDeoptimizedHelper()
1282 __ Ldr(signature, FieldMemOperand(function_template_info, in CompatibleReceiverCheck()
1284 __ CompareRoot(signature, Heap::kUndefinedValueRootIndex); in CompatibleReceiverCheck()
1286 __ B(eq, &receiver_check_passed); in CompatibleReceiverCheck()
1289 __ Ldr(map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in CompatibleReceiverCheck()
1291 __ Bind(&prototype_loop_start); in CompatibleReceiverCheck()
1294 __ GetMapConstructor(constructor, map, x16, x16); in CompatibleReceiverCheck()
1295 __ cmp(x16, Operand(JS_FUNCTION_TYPE)); in CompatibleReceiverCheck()
1297 __ B(ne, &next_prototype); in CompatibleReceiverCheck()
1299 __ Ldr(type, in CompatibleReceiverCheck()
1301 __ Ldr(type, FieldMemOperand(type, SharedFunctionInfo::kFunctionDataOffset)); in CompatibleReceiverCheck()
1305 __ Bind(&function_template_loop); in CompatibleReceiverCheck()
1308 __ Cmp(signature, type); in CompatibleReceiverCheck()
1309 __ B(eq, &receiver_check_passed); in CompatibleReceiverCheck()
1313 __ JumpIfSmi(type, &next_prototype); in CompatibleReceiverCheck()
1314 __ CompareObjectType(type, x16, x17, FUNCTION_TEMPLATE_INFO_TYPE); in CompatibleReceiverCheck()
1315 __ B(ne, &next_prototype); in CompatibleReceiverCheck()
1318 __ Ldr(type, in CompatibleReceiverCheck()
1320 __ B(&function_template_loop); in CompatibleReceiverCheck()
1323 __ Bind(&next_prototype); in CompatibleReceiverCheck()
1324 __ Ldr(receiver, FieldMemOperand(map, Map::kPrototypeOffset)); in CompatibleReceiverCheck()
1326 __ CompareRoot(receiver, Heap::kNullValueRootIndex); in CompatibleReceiverCheck()
1327 __ B(eq, receiver_check_failed); in CompatibleReceiverCheck()
1328 __ Ldr(map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in CompatibleReceiverCheck()
1329 __ Ldr(x16, FieldMemOperand(map, Map::kBitField3Offset)); in CompatibleReceiverCheck()
1330 __ Tst(x16, Operand(Map::IsHiddenPrototype::kMask)); in CompatibleReceiverCheck()
1331 __ B(eq, receiver_check_failed); in CompatibleReceiverCheck()
1333 __ B(&prototype_loop_start); in CompatibleReceiverCheck()
1335 __ Bind(&receiver_check_passed); in CompatibleReceiverCheck()
1351 __ Ldr(x3, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in Generate_HandleFastApiCall()
1352 __ Ldr(x3, FieldMemOperand(x3, SharedFunctionInfo::kFunctionDataOffset)); in Generate_HandleFastApiCall()
1356 __ Ldr(x2, MemOperand(jssp, x0, LSL, kPointerSizeLog2)); in Generate_HandleFastApiCall()
1361 __ Ldr(x4, FieldMemOperand(x3, FunctionTemplateInfo::kCallCodeOffset)); in Generate_HandleFastApiCall()
1362 __ Ldr(x4, FieldMemOperand(x4, CallHandlerInfo::kFastHandlerOffset)); in Generate_HandleFastApiCall()
1363 __ Add(x4, x4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_HandleFastApiCall()
1364 __ Jump(x4); in Generate_HandleFastApiCall()
1367 __ Bind(&receiver_check_failed); in Generate_HandleFastApiCall()
1369 __ add(x0, x0, Operand(1)); in Generate_HandleFastApiCall()
1370 __ Drop(x0); in Generate_HandleFastApiCall()
1371 __ TailCallRuntime(Runtime::kThrowIllegalInvocation); in Generate_HandleFastApiCall()
1377 __ Ldr(x0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); in Generate_OnStackReplacement()
1381 __ Push(x0); in Generate_OnStackReplacement()
1382 __ CallRuntime(Runtime::kCompileForOnStackReplacement); in Generate_OnStackReplacement()
1387 __ CompareAndBranch(x0, Smi::FromInt(0), ne, &skip); in Generate_OnStackReplacement()
1388 __ Ret(); in Generate_OnStackReplacement()
1390 __ Bind(&skip); in Generate_OnStackReplacement()
1394 __ Ldr(x1, MemOperand(x0, Code::kDeoptimizationDataOffset - kHeapObjectTag)); in Generate_OnStackReplacement()
1398 __ Ldrsw(w1, UntagSmiFieldMemOperand(x1, FixedArray::OffsetOfElementAt( in Generate_OnStackReplacement()
1403 __ Add(x0, x0, x1); in Generate_OnStackReplacement()
1404 __ Add(lr, x0, Code::kHeaderSize - kHeapObjectTag); in Generate_OnStackReplacement()
1407 __ Ret(); in Generate_OnStackReplacement()
1414 __ CompareRoot(jssp, Heap::kStackLimitRootIndex); in Generate_OsrAfterStackCheck()
1415 __ B(hs, &ok); in Generate_OsrAfterStackCheck()
1418 __ CallRuntime(Runtime::kStackGuard); in Generate_OsrAfterStackCheck()
1420 __ Jump(masm->isolate()->builtins()->OnStackReplacement(), in Generate_OsrAfterStackCheck()
1423 __ Bind(&ok); in Generate_OsrAfterStackCheck()
1424 __ Ret(); in Generate_OsrAfterStackCheck()
1440 __ Pop(x0); in Generate_DatePrototype_GetField()
1441 __ JumpIfSmi(x0, &receiver_not_date); in Generate_DatePrototype_GetField()
1442 __ JumpIfNotObjectType(x0, x1, x2, JS_DATE_TYPE, &receiver_not_date); in Generate_DatePrototype_GetField()
1447 __ Ldr(x0, FieldMemOperand(x0, JSDate::kValueOffset)); in Generate_DatePrototype_GetField()
1451 __ Mov(x1, ExternalReference::date_cache_stamp(masm->isolate())); in Generate_DatePrototype_GetField()
1452 __ Ldr(x1, MemOperand(x1)); in Generate_DatePrototype_GetField()
1453 __ Ldr(x2, FieldMemOperand(x0, JSDate::kCacheStampOffset)); in Generate_DatePrototype_GetField()
1454 __ Cmp(x1, x2); in Generate_DatePrototype_GetField()
1455 __ B(ne, &stamp_mismatch); in Generate_DatePrototype_GetField()
1456 __ Ldr(x0, FieldMemOperand( in Generate_DatePrototype_GetField()
1458 __ Ret(); in Generate_DatePrototype_GetField()
1459 __ Bind(&stamp_mismatch); in Generate_DatePrototype_GetField()
1462 __ Mov(x1, Smi::FromInt(field_index)); in Generate_DatePrototype_GetField()
1463 __ CallCFunction( in Generate_DatePrototype_GetField()
1466 __ Ret(); in Generate_DatePrototype_GetField()
1469 __ Bind(&receiver_not_date); in Generate_DatePrototype_GetField()
1470 __ TailCallRuntime(Runtime::kThrowNotDateError); in Generate_DatePrototype_GetField()
1491 __ LoadRoot(undefined_value, Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeApply()
1492 __ LoadRoot(null_value, Heap::kNullValueRootIndex); in Generate_FunctionPrototypeApply()
1500 __ Claim(2); in Generate_FunctionPrototypeApply()
1501 __ Drop(argc); in Generate_FunctionPrototypeApply()
1509 __ Cmp(argc, 1); in Generate_FunctionPrototypeApply()
1510 __ Pop(arg_array, this_arg); // Overwrites argc. in Generate_FunctionPrototypeApply()
1511 __ CmovX(this_arg, undefined_value, lo); // undefined if argc == 0. in Generate_FunctionPrototypeApply()
1512 __ CmovX(arg_array, undefined_value, ls); // undefined if argc <= 1. in Generate_FunctionPrototypeApply()
1514 __ Peek(receiver, 0); in Generate_FunctionPrototypeApply()
1515 __ Poke(this_arg, 0); in Generate_FunctionPrototypeApply()
1527 __ JumpIfSmi(receiver, &receiver_not_callable); in Generate_FunctionPrototypeApply()
1528 __ Ldr(x10, FieldMemOperand(receiver, HeapObject::kMapOffset)); in Generate_FunctionPrototypeApply()
1529 __ Ldrb(w10, FieldMemOperand(x10, Map::kBitFieldOffset)); in Generate_FunctionPrototypeApply()
1530 __ TestAndBranchIfAllClear(x10, 1 << Map::kIsCallable, in Generate_FunctionPrototypeApply()
1535 __ Cmp(arg_array, null_value); in Generate_FunctionPrototypeApply()
1536 __ Ccmp(arg_array, undefined_value, ZFlag, ne); in Generate_FunctionPrototypeApply()
1537 __ B(eq, &no_arguments); in Generate_FunctionPrototypeApply()
1542 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeApply()
1546 __ Bind(&no_arguments); in Generate_FunctionPrototypeApply()
1548 __ Mov(x0, 0); in Generate_FunctionPrototypeApply()
1550 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeApply()
1554 __ Bind(&receiver_not_callable); in Generate_FunctionPrototypeApply()
1556 __ Poke(receiver, 0); in Generate_FunctionPrototypeApply()
1557 __ TailCallRuntime(Runtime::kThrowApplyNonFunction); in Generate_FunctionPrototypeApply()
1574 __ Cbnz(argc, &done); in Generate_FunctionPrototypeCall()
1575 __ LoadRoot(scratch1, Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeCall()
1576 __ Push(scratch1); in Generate_FunctionPrototypeCall()
1577 __ Mov(argc, 1); in Generate_FunctionPrototypeCall()
1578 __ Bind(&done); in Generate_FunctionPrototypeCall()
1582 __ Peek(function, Operand(argc, LSL, kXRegSizeLog2)); in Generate_FunctionPrototypeCall()
1590 __ Add(scratch2, jssp, Operand(argc, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeCall()
1591 __ Sub(scratch1, scratch2, kPointerSize); in Generate_FunctionPrototypeCall()
1593 __ Bind(&loop); in Generate_FunctionPrototypeCall()
1594 __ Ldr(x12, MemOperand(scratch1, -kPointerSize, PostIndex)); in Generate_FunctionPrototypeCall()
1595 __ Str(x12, MemOperand(scratch2, -kPointerSize, PostIndex)); in Generate_FunctionPrototypeCall()
1596 __ Cmp(scratch1, jssp); in Generate_FunctionPrototypeCall()
1597 __ B(ge, &loop); in Generate_FunctionPrototypeCall()
1600 __ Sub(argc, argc, 1); in Generate_FunctionPrototypeCall()
1601 __ Drop(1); in Generate_FunctionPrototypeCall()
1605 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeCall()
1625 __ LoadRoot(undefined_value, Heap::kUndefinedValueRootIndex); in Generate_ReflectApply()
1633 __ Claim(3); in Generate_ReflectApply()
1634 __ Drop(argc); in Generate_ReflectApply()
1643 __ Adds(x10, argc, 0); // Preserve argc, and set the Z flag if it is zero. in Generate_ReflectApply()
1644 __ Pop(arguments_list, this_argument, target); // Overwrites argc. in Generate_ReflectApply()
1645 __ CmovX(target, undefined_value, eq); // undefined if argc == 0. in Generate_ReflectApply()
1646 __ Cmp(x10, 2); in Generate_ReflectApply()
1647 __ CmovX(this_argument, undefined_value, lo); // undefined if argc <= 1. in Generate_ReflectApply()
1648 __ CmovX(arguments_list, undefined_value, ls); // undefined if argc <= 2. in Generate_ReflectApply()
1650 __ Poke(this_argument, 0); // Overwrite receiver. in Generate_ReflectApply()
1661 __ JumpIfSmi(target, &target_not_callable); in Generate_ReflectApply()
1662 __ Ldr(x10, FieldMemOperand(target, HeapObject::kMapOffset)); in Generate_ReflectApply()
1663 __ Ldr(x10, FieldMemOperand(x10, Map::kBitFieldOffset)); in Generate_ReflectApply()
1664 __ TestAndBranchIfAllClear(x10, 1 << Map::kIsCallable, &target_not_callable); in Generate_ReflectApply()
1669 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_ReflectApply()
1672 __ Bind(&target_not_callable); in Generate_ReflectApply()
1674 __ Poke(target, 0); in Generate_ReflectApply()
1675 __ TailCallRuntime(Runtime::kThrowApplyNonFunction); in Generate_ReflectApply()
1696 __ LoadRoot(undefined_value, Heap::kUndefinedValueRootIndex); in Generate_ReflectConstruct()
1705 __ Claim(3); in Generate_ReflectConstruct()
1706 __ Drop(argc); in Generate_ReflectConstruct()
1715 __ Adds(x10, argc, 0); // Preserve argc, and set the Z flag if it is zero. in Generate_ReflectConstruct()
1716 __ Pop(new_target, arguments_list, target); // Overwrites argc. in Generate_ReflectConstruct()
1717 __ CmovX(target, undefined_value, eq); // undefined if argc == 0. in Generate_ReflectConstruct()
1718 __ Cmp(x10, 2); in Generate_ReflectConstruct()
1719 __ CmovX(arguments_list, undefined_value, lo); // undefined if argc <= 1. in Generate_ReflectConstruct()
1720 __ CmovX(new_target, target, ls); // target if argc <= 2. in Generate_ReflectConstruct()
1722 __ Poke(undefined_value, 0); // Overwrite receiver. in Generate_ReflectConstruct()
1734 __ JumpIfSmi(target, &target_not_constructor); in Generate_ReflectConstruct()
1735 __ Ldr(x10, FieldMemOperand(target, HeapObject::kMapOffset)); in Generate_ReflectConstruct()
1736 __ Ldrb(x10, FieldMemOperand(x10, Map::kBitFieldOffset)); in Generate_ReflectConstruct()
1737 __ TestAndBranchIfAllClear(x10, 1 << Map::kIsConstructor, in Generate_ReflectConstruct()
1742 __ JumpIfSmi(new_target, &new_target_not_constructor); in Generate_ReflectConstruct()
1743 __ Ldr(x10, FieldMemOperand(new_target, HeapObject::kMapOffset)); in Generate_ReflectConstruct()
1744 __ Ldrb(x10, FieldMemOperand(x10, Map::kBitFieldOffset)); in Generate_ReflectConstruct()
1745 __ TestAndBranchIfAllClear(x10, 1 << Map::kIsConstructor, in Generate_ReflectConstruct()
1749 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_ReflectConstruct()
1752 __ Bind(&target_not_constructor); in Generate_ReflectConstruct()
1754 __ Poke(target, 0); in Generate_ReflectConstruct()
1755 __ TailCallRuntime(Runtime::kThrowCalledNonCallable); in Generate_ReflectConstruct()
1759 __ Bind(&new_target_not_constructor); in Generate_ReflectConstruct()
1761 __ Poke(new_target, 0); in Generate_ReflectConstruct()
1762 __ TailCallRuntime(Runtime::kThrowCalledNonCallable); in Generate_ReflectConstruct()
1779 __ LoadRoot(x10, Heap::kRealStackLimitRootIndex); in ArgumentAdaptorStackCheck()
1782 __ Sub(x10, jssp, x10); in ArgumentAdaptorStackCheck()
1784 __ Cmp(x10, Operand(x2, LSL, kPointerSizeLog2)); in ArgumentAdaptorStackCheck()
1785 __ B(le, stack_overflow); in ArgumentAdaptorStackCheck()
1790 __ SmiTag(x10, x0); in EnterArgumentsAdaptorFrame()
1791 __ Mov(x11, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); in EnterArgumentsAdaptorFrame()
1792 __ Push(lr, fp); in EnterArgumentsAdaptorFrame()
1793 __ Push(x11, x1, x10); in EnterArgumentsAdaptorFrame()
1794 __ Add(fp, jssp, in EnterArgumentsAdaptorFrame()
1805 __ Ldr(x10, MemOperand(fp, -(StandardFrameConstants::kFixedFrameSizeFromFp + in LeaveArgumentsAdaptorFrame()
1807 __ Mov(jssp, fp); in LeaveArgumentsAdaptorFrame()
1808 __ Pop(fp, lr); in LeaveArgumentsAdaptorFrame()
1809 __ DropBySMI(x10, kXRegSize); in LeaveArgumentsAdaptorFrame()
1810 __ Drop(1); in LeaveArgumentsAdaptorFrame()
1833 __ JumpIfSmi(arguments_list, &create_runtime); in Generate_Apply()
1837 __ Ldr(native_context, NativeContextMemOperand()); in Generate_Apply()
1841 __ Ldr(arguments_list_map, in Generate_Apply()
1845 __ Ldr(x10, ContextMemOperand(native_context, in Generate_Apply()
1847 __ Ldr(x11, ContextMemOperand(native_context, in Generate_Apply()
1849 __ Cmp(arguments_list_map, x10); in Generate_Apply()
1850 __ Ccmp(arguments_list_map, x11, ZFlag, ne); in Generate_Apply()
1851 __ B(eq, &create_arguments); in Generate_Apply()
1854 __ CompareInstanceType(arguments_list_map, native_context, JS_ARRAY_TYPE); in Generate_Apply()
1855 __ B(eq, &create_array); in Generate_Apply()
1858 __ Bind(&create_runtime); in Generate_Apply()
1861 __ Push(target, new_target, arguments_list); in Generate_Apply()
1862 __ CallRuntime(Runtime::kCreateListFromArrayLike); in Generate_Apply()
1863 __ Pop(new_target, target); in Generate_Apply()
1864 __ Ldrsw(len, UntagSmiFieldMemOperand(arguments_list, in Generate_Apply()
1867 __ B(&done_create); in Generate_Apply()
1870 __ Bind(&create_arguments); in Generate_Apply()
1871 __ Ldrsw(len, UntagSmiFieldMemOperand( in Generate_Apply()
1875 __ Ldr(x10, FieldMemOperand(arguments_list, JSObject::kElementsOffset)); in Generate_Apply()
1876 __ Ldrsw(x11, UntagSmiFieldMemOperand(x10, FixedArray::kLengthOffset)); in Generate_Apply()
1877 __ CompareAndBranch(len, x11, ne, &create_runtime); in Generate_Apply()
1878 __ Mov(args, x10); in Generate_Apply()
1879 __ B(&done_create); in Generate_Apply()
1882 __ Bind(&create_array); in Generate_Apply()
1883 __ Ldr(x10, FieldMemOperand(arguments_list_map, Map::kBitField2Offset)); in Generate_Apply()
1884 __ DecodeField<Map::ElementsKindBits>(x10); in Generate_Apply()
1888 __ TestAndBranchIfAnySet(x10, ~FAST_ELEMENTS, &create_runtime); in Generate_Apply()
1889 __ Ldrsw(len, in Generate_Apply()
1891 __ Ldr(args, FieldMemOperand(arguments_list, JSArray::kElementsOffset)); in Generate_Apply()
1893 __ Bind(&done_create); in Generate_Apply()
1901 __ LoadRoot(x10, Heap::kRealStackLimitRootIndex); in Generate_Apply()
1904 __ Sub(x10, masm->StackPointer(), x10); in Generate_Apply()
1906 __ Cmp(x10, Operand(len, LSL, kPointerSizeLog2)); in Generate_Apply()
1907 __ B(gt, &done); // Signed comparison. in Generate_Apply()
1908 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_Apply()
1909 __ Bind(&done); in Generate_Apply()
1925 __ Add(src, args, FixedArray::kHeaderSize - kHeapObjectTag); in Generate_Apply()
1926 __ Mov(x0, len); // The 'len' argument for Call() or Construct(). in Generate_Apply()
1927 __ Cbz(len, &done); in Generate_Apply()
1928 __ Claim(len); in Generate_Apply()
1929 __ Bind(&loop); in Generate_Apply()
1930 __ Sub(len, len, 1); in Generate_Apply()
1931 __ Ldr(x10, MemOperand(src, kPointerSize, PostIndex)); in Generate_Apply()
1932 __ Poke(x10, Operand(len, LSL, kPointerSizeLog2)); in Generate_Apply()
1933 __ Cbnz(len, &loop); in Generate_Apply()
1934 __ Bind(&done); in Generate_Apply()
1950 __ CompareRoot(new_target, Heap::kUndefinedValueRootIndex); in Generate_Apply()
1951 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET, eq); in Generate_Apply()
1952 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_Apply()
1965 __ AssertFunction(x1); in Generate_CallFunction()
1970 __ Ldr(x2, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallFunction()
1971 __ Ldr(w3, FieldMemOperand(x2, SharedFunctionInfo::kCompilerHintsOffset)); in Generate_CallFunction()
1972 __ TestAndBranchIfAnySet( in Generate_CallFunction()
1981 __ Ldr(cp, FieldMemOperand(x1, JSFunction::kContextOffset)); in Generate_CallFunction()
1984 __ TestAndBranchIfAnySet(w3, in Generate_CallFunction()
1998 __ LoadGlobalProxy(x3); in Generate_CallFunction()
2001 __ Peek(x3, Operand(x0, LSL, kXRegSizeLog2)); in Generate_CallFunction()
2002 __ JumpIfSmi(x3, &convert_to_object); in Generate_CallFunction()
2004 __ CompareObjectType(x3, x4, x4, FIRST_JS_RECEIVER_TYPE); in Generate_CallFunction()
2005 __ B(hs, &done_convert); in Generate_CallFunction()
2008 __ JumpIfRoot(x3, Heap::kUndefinedValueRootIndex, in Generate_CallFunction()
2010 __ JumpIfNotRoot(x3, Heap::kNullValueRootIndex, &convert_to_object); in Generate_CallFunction()
2011 __ Bind(&convert_global_proxy); in Generate_CallFunction()
2014 __ LoadGlobalProxy(x3); in Generate_CallFunction()
2016 __ B(&convert_receiver); in Generate_CallFunction()
2018 __ Bind(&convert_to_object); in Generate_CallFunction()
2024 __ SmiTag(x0); in Generate_CallFunction()
2025 __ Push(x0, x1); in Generate_CallFunction()
2026 __ Mov(x0, x3); in Generate_CallFunction()
2028 __ CallStub(&stub); in Generate_CallFunction()
2029 __ Mov(x3, x0); in Generate_CallFunction()
2030 __ Pop(x1, x0); in Generate_CallFunction()
2031 __ SmiUntag(x0); in Generate_CallFunction()
2033 __ Ldr(x2, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallFunction()
2034 __ Bind(&convert_receiver); in Generate_CallFunction()
2036 __ Poke(x3, Operand(x0, LSL, kXRegSizeLog2)); in Generate_CallFunction()
2038 __ Bind(&done_convert); in Generate_CallFunction()
2047 __ Ldrsw( in Generate_CallFunction()
2051 __ InvokeFunctionCode(x1, no_reg, expected, actual, JUMP_FUNCTION, in Generate_CallFunction()
2055 __ bind(&class_constructor); in Generate_CallFunction()
2058 __ Push(x1); in Generate_CallFunction()
2059 __ CallRuntime(Runtime::kThrowConstructorNonCallableError); in Generate_CallFunction()
2075 __ Ldr(x2, FieldMemOperand(x1, JSBoundFunction::kBoundArgumentsOffset)); in Generate_PushBoundArguments()
2076 __ Ldrsw(x4, UntagSmiFieldMemOperand(x2, FixedArray::kLengthOffset)); in Generate_PushBoundArguments()
2077 __ Cmp(x4, 0); in Generate_PushBoundArguments()
2078 __ B(eq, &no_bound_arguments); in Generate_PushBoundArguments()
2091 __ Claim(x4); in Generate_PushBoundArguments()
2095 __ CompareRoot(jssp, Heap::kRealStackLimitRootIndex); in Generate_PushBoundArguments()
2096 __ B(gt, &done); // Signed comparison. in Generate_PushBoundArguments()
2098 __ Drop(x4); in Generate_PushBoundArguments()
2101 __ EnterFrame(StackFrame::INTERNAL); in Generate_PushBoundArguments()
2102 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_PushBoundArguments()
2104 __ Bind(&done); in Generate_PushBoundArguments()
2110 __ Mov(x5, 0); in Generate_PushBoundArguments()
2111 __ Bind(&loop); in Generate_PushBoundArguments()
2112 __ Cmp(x5, x0); in Generate_PushBoundArguments()
2113 __ B(gt, &done_loop); in Generate_PushBoundArguments()
2114 __ Peek(x10, Operand(x4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2115 __ Poke(x10, Operand(x5, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2116 __ Add(x4, x4, 1); in Generate_PushBoundArguments()
2117 __ Add(x5, x5, 1); in Generate_PushBoundArguments()
2118 __ B(&loop); in Generate_PushBoundArguments()
2119 __ Bind(&done_loop); in Generate_PushBoundArguments()
2125 __ Ldrsw(x4, UntagSmiFieldMemOperand(x2, FixedArray::kLengthOffset)); in Generate_PushBoundArguments()
2126 __ Add(x2, x2, FixedArray::kHeaderSize - kHeapObjectTag); in Generate_PushBoundArguments()
2127 __ Bind(&loop); in Generate_PushBoundArguments()
2128 __ Sub(x4, x4, 1); in Generate_PushBoundArguments()
2129 __ Ldr(x10, MemOperand(x2, x4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2130 __ Poke(x10, Operand(x0, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2131 __ Add(x0, x0, 1); in Generate_PushBoundArguments()
2132 __ Cmp(x4, 0); in Generate_PushBoundArguments()
2133 __ B(gt, &loop); in Generate_PushBoundArguments()
2136 __ Bind(&no_bound_arguments); in Generate_PushBoundArguments()
2148 __ AssertBoundFunction(x1); in Generate_CallBoundFunction()
2151 __ Ldr(x10, FieldMemOperand(x1, JSBoundFunction::kBoundThisOffset)); in Generate_CallBoundFunction()
2152 __ Poke(x10, Operand(x0, LSL, kPointerSizeLog2)); in Generate_CallBoundFunction()
2158 __ Ldr(x1, FieldMemOperand(x1, JSBoundFunction::kBoundTargetFunctionOffset)); in Generate_CallBoundFunction()
2159 __ Mov(x10, in Generate_CallBoundFunction()
2161 __ Ldr(x11, MemOperand(x10)); in Generate_CallBoundFunction()
2162 __ Add(x12, x11, Code::kHeaderSize - kHeapObjectTag); in Generate_CallBoundFunction()
2163 __ Br(x12); in Generate_CallBoundFunction()
2175 __ JumpIfSmi(x1, &non_callable); in Generate_Call()
2176 __ Bind(&non_smi); in Generate_Call()
2177 __ CompareObjectType(x1, x4, x5, JS_FUNCTION_TYPE); in Generate_Call()
2178 __ Jump(masm->isolate()->builtins()->CallFunction(mode), in Generate_Call()
2180 __ Cmp(x5, JS_BOUND_FUNCTION_TYPE); in Generate_Call()
2181 __ Jump(masm->isolate()->builtins()->CallBoundFunction(), in Generate_Call()
2183 __ Cmp(x5, JS_PROXY_TYPE); in Generate_Call()
2184 __ B(ne, &non_function); in Generate_Call()
2187 __ Push(x1); in Generate_Call()
2190 __ Add(x0, x0, Operand(2)); in Generate_Call()
2192 __ JumpToExternalReference( in Generate_Call()
2197 __ Bind(&non_function); in Generate_Call()
2199 __ Ldrb(x4, FieldMemOperand(x4, Map::kBitFieldOffset)); in Generate_Call()
2200 __ TestAndBranchIfAllClear(x4, 1 << Map::kIsCallable, &non_callable); in Generate_Call()
2202 __ Poke(x1, Operand(x0, LSL, kXRegSizeLog2)); in Generate_Call()
2204 __ LoadNativeContextSlot(Context::CALL_AS_FUNCTION_DELEGATE_INDEX, x1); in Generate_Call()
2205 __ Jump(masm->isolate()->builtins()->CallFunction( in Generate_Call()
2210 __ bind(&non_callable); in Generate_Call()
2213 __ Push(x1); in Generate_Call()
2214 __ CallRuntime(Runtime::kThrowCalledNonCallable); in Generate_Call()
2226 __ AssertFunction(x1); in Generate_ConstructFunction()
2230 __ LoadRoot(x2, Heap::kUndefinedValueRootIndex); in Generate_ConstructFunction()
2234 __ Ldr(x4, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); in Generate_ConstructFunction()
2235 __ Ldr(x4, FieldMemOperand(x4, SharedFunctionInfo::kConstructStubOffset)); in Generate_ConstructFunction()
2236 __ Add(x4, x4, Code::kHeaderSize - kHeapObjectTag); in Generate_ConstructFunction()
2237 __ Br(x4); in Generate_ConstructFunction()
2248 __ AssertBoundFunction(x1); in Generate_ConstructBoundFunction()
2256 __ Cmp(x1, x3); in Generate_ConstructBoundFunction()
2257 __ B(ne, &done); in Generate_ConstructBoundFunction()
2258 __ Ldr(x3, in Generate_ConstructBoundFunction()
2260 __ Bind(&done); in Generate_ConstructBoundFunction()
2264 __ Ldr(x1, FieldMemOperand(x1, JSBoundFunction::kBoundTargetFunctionOffset)); in Generate_ConstructBoundFunction()
2265 __ Mov(x10, ExternalReference(Builtins::kConstruct, masm->isolate())); in Generate_ConstructBoundFunction()
2266 __ Ldr(x11, MemOperand(x10)); in Generate_ConstructBoundFunction()
2267 __ Add(x12, x11, Code::kHeaderSize - kHeapObjectTag); in Generate_ConstructBoundFunction()
2268 __ Br(x12); in Generate_ConstructBoundFunction()
2282 __ Push(x1); in Generate_ConstructProxy()
2283 __ Push(x3); in Generate_ConstructProxy()
2285 __ Add(x0, x0, 3); in Generate_ConstructProxy()
2287 __ JumpToExternalReference( in Generate_ConstructProxy()
2303 __ JumpIfSmi(x1, &non_constructor); in Generate_Construct()
2306 __ CompareObjectType(x1, x4, x5, JS_FUNCTION_TYPE); in Generate_Construct()
2307 __ Jump(masm->isolate()->builtins()->ConstructFunction(), in Generate_Construct()
2311 __ Ldrb(x2, FieldMemOperand(x4, Map::kBitFieldOffset)); in Generate_Construct()
2312 __ TestAndBranchIfAllClear(x2, 1 << Map::kIsConstructor, &non_constructor); in Generate_Construct()
2316 __ Cmp(x5, JS_BOUND_FUNCTION_TYPE); in Generate_Construct()
2317 __ Jump(masm->isolate()->builtins()->ConstructBoundFunction(), in Generate_Construct()
2321 __ Cmp(x5, JS_PROXY_TYPE); in Generate_Construct()
2322 __ Jump(masm->isolate()->builtins()->ConstructProxy(), RelocInfo::CODE_TARGET, in Generate_Construct()
2328 __ Poke(x1, Operand(x0, LSL, kXRegSizeLog2)); in Generate_Construct()
2330 __ LoadNativeContextSlot(Context::CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, x1); in Generate_Construct()
2331 __ Jump(masm->isolate()->builtins()->CallFunction(), in Generate_Construct()
2337 __ bind(&non_constructor); in Generate_Construct()
2338 __ Jump(masm->isolate()->builtins()->ConstructedNonConstructable(), in Generate_Construct()
2354 __ add(x3, x0, Operand(1)); // Add one for receiver. in Generate_InterpreterPushArgsAndCall()
2355 __ lsl(x3, x3, kPointerSizeLog2); in Generate_InterpreterPushArgsAndCall()
2356 __ sub(x4, x2, x3); in Generate_InterpreterPushArgsAndCall()
2360 __ Mov(x5, jssp); in Generate_InterpreterPushArgsAndCall()
2361 __ Claim(x3, 1); in Generate_InterpreterPushArgsAndCall()
2362 __ B(&loop_check); in Generate_InterpreterPushArgsAndCall()
2363 __ Bind(&loop_header); in Generate_InterpreterPushArgsAndCall()
2365 __ Ldr(x3, MemOperand(x2, -kPointerSize, PostIndex)); in Generate_InterpreterPushArgsAndCall()
2366 __ Str(x3, MemOperand(x5, -kPointerSize, PreIndex)); in Generate_InterpreterPushArgsAndCall()
2367 __ Bind(&loop_check); in Generate_InterpreterPushArgsAndCall()
2368 __ Cmp(x2, x4); in Generate_InterpreterPushArgsAndCall()
2369 __ B(gt, &loop_header); in Generate_InterpreterPushArgsAndCall()
2372 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_InterpreterPushArgsAndCall()
2386 __ add(x5, x0, Operand(1)); // Add one for receiver (to be constructed). in Generate_InterpreterPushArgsAndConstruct()
2387 __ lsl(x5, x5, kPointerSizeLog2); in Generate_InterpreterPushArgsAndConstruct()
2390 __ Mov(x6, jssp); in Generate_InterpreterPushArgsAndConstruct()
2391 __ Claim(x5, 1); in Generate_InterpreterPushArgsAndConstruct()
2392 __ sub(x4, x6, x5); in Generate_InterpreterPushArgsAndConstruct()
2395 __ Str(xzr, MemOperand(x6, -kPointerSize, PreIndex)); in Generate_InterpreterPushArgsAndConstruct()
2399 __ B(&loop_check); in Generate_InterpreterPushArgsAndConstruct()
2400 __ Bind(&loop_header); in Generate_InterpreterPushArgsAndConstruct()
2402 __ Ldr(x5, MemOperand(x2, -kPointerSize, PostIndex)); in Generate_InterpreterPushArgsAndConstruct()
2403 __ Str(x5, MemOperand(x6, -kPointerSize, PreIndex)); in Generate_InterpreterPushArgsAndConstruct()
2404 __ Bind(&loop_check); in Generate_InterpreterPushArgsAndConstruct()
2405 __ Cmp(x6, x4); in Generate_InterpreterPushArgsAndConstruct()
2406 __ B(gt, &loop_header); in Generate_InterpreterPushArgsAndConstruct()
2409 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_InterpreterPushArgsAndConstruct()
2430 __ Cmp(argc_actual, argc_expected); in Generate_ArgumentsAdaptorTrampoline()
2431 __ B(lt, &too_few); in Generate_ArgumentsAdaptorTrampoline()
2432 __ Cmp(argc_expected, SharedFunctionInfo::kDontAdaptArgumentsSentinel); in Generate_ArgumentsAdaptorTrampoline()
2433 __ B(eq, &dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
2444 __ Lsl(scratch2, argc_expected, kPointerSizeLog2); in Generate_ArgumentsAdaptorTrampoline()
2447 __ Add(copy_start, fp, 3 * kPointerSize); in Generate_ArgumentsAdaptorTrampoline()
2448 __ Add(copy_start, copy_start, Operand(argc_actual, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
2449 __ Sub(copy_end, copy_start, scratch2); in Generate_ArgumentsAdaptorTrampoline()
2450 __ Sub(copy_end, copy_end, kPointerSize); in Generate_ArgumentsAdaptorTrampoline()
2451 __ Mov(copy_to, jssp); in Generate_ArgumentsAdaptorTrampoline()
2456 __ Add(scratch1, scratch2, 2 * kPointerSize); in Generate_ArgumentsAdaptorTrampoline()
2457 __ Claim(scratch1, 1); in Generate_ArgumentsAdaptorTrampoline()
2461 __ Bind(©_2_by_2); in Generate_ArgumentsAdaptorTrampoline()
2462 __ Ldp(scratch1, scratch2, in Generate_ArgumentsAdaptorTrampoline()
2464 __ Stp(scratch1, scratch2, in Generate_ArgumentsAdaptorTrampoline()
2466 __ Cmp(copy_start, copy_end); in Generate_ArgumentsAdaptorTrampoline()
2467 __ B(hi, ©_2_by_2); in Generate_ArgumentsAdaptorTrampoline()
2470 __ Drop(1); in Generate_ArgumentsAdaptorTrampoline()
2472 __ B(&invoke); in Generate_ArgumentsAdaptorTrampoline()
2476 __ Bind(&too_few); in Generate_ArgumentsAdaptorTrampoline()
2485 __ Ldr(scratch1, in Generate_ArgumentsAdaptorTrampoline()
2487 __ Ldr(scratch2.W(), in Generate_ArgumentsAdaptorTrampoline()
2489 __ TestAndBranchIfAllClear(scratch2.W(), in Generate_ArgumentsAdaptorTrampoline()
2495 __ Ldr(scratch2.W(), in Generate_ArgumentsAdaptorTrampoline()
2497 __ Cmp(argc_actual, Operand(scratch2, LSR, 1)); in Generate_ArgumentsAdaptorTrampoline()
2498 __ B(ge, &no_strong_error); in Generate_ArgumentsAdaptorTrampoline()
2503 __ CallRuntime(Runtime::kThrowStrongModeTooFewArguments); in Generate_ArgumentsAdaptorTrampoline()
2506 __ Bind(&no_strong_error); in Generate_ArgumentsAdaptorTrampoline()
2510 __ Lsl(scratch2, argc_expected, kPointerSizeLog2); in Generate_ArgumentsAdaptorTrampoline()
2511 __ Lsl(argc_actual, argc_actual, kPointerSizeLog2); in Generate_ArgumentsAdaptorTrampoline()
2514 __ Add(copy_from, fp, 3 * kPointerSize); in Generate_ArgumentsAdaptorTrampoline()
2515 __ Add(copy_from, copy_from, argc_actual); in Generate_ArgumentsAdaptorTrampoline()
2516 __ Mov(copy_to, jssp); in Generate_ArgumentsAdaptorTrampoline()
2517 __ Sub(copy_end, copy_to, 1 * kPointerSize); // Adjust for the receiver. in Generate_ArgumentsAdaptorTrampoline()
2518 __ Sub(copy_end, copy_end, argc_actual); in Generate_ArgumentsAdaptorTrampoline()
2523 __ Add(scratch1, scratch2, 2 * kPointerSize); in Generate_ArgumentsAdaptorTrampoline()
2524 __ Claim(scratch1, 1); in Generate_ArgumentsAdaptorTrampoline()
2528 __ Bind(©_2_by_2); in Generate_ArgumentsAdaptorTrampoline()
2529 __ Ldp(scratch1, scratch2, in Generate_ArgumentsAdaptorTrampoline()
2531 __ Stp(scratch1, scratch2, in Generate_ArgumentsAdaptorTrampoline()
2533 __ Cmp(copy_to, copy_end); in Generate_ArgumentsAdaptorTrampoline()
2534 __ B(hi, ©_2_by_2); in Generate_ArgumentsAdaptorTrampoline()
2536 __ Mov(copy_to, copy_end); in Generate_ArgumentsAdaptorTrampoline()
2539 __ LoadRoot(scratch1, Heap::kUndefinedValueRootIndex); in Generate_ArgumentsAdaptorTrampoline()
2540 __ Add(copy_end, jssp, kPointerSize); in Generate_ArgumentsAdaptorTrampoline()
2543 __ Bind(&fill); in Generate_ArgumentsAdaptorTrampoline()
2544 __ Stp(scratch1, scratch1, in Generate_ArgumentsAdaptorTrampoline()
2546 __ Cmp(copy_to, copy_end); in Generate_ArgumentsAdaptorTrampoline()
2547 __ B(hi, &fill); in Generate_ArgumentsAdaptorTrampoline()
2550 __ Drop(1); in Generate_ArgumentsAdaptorTrampoline()
2554 __ Bind(&invoke); in Generate_ArgumentsAdaptorTrampoline()
2555 __ Mov(argc_actual, argc_expected); in Generate_ArgumentsAdaptorTrampoline()
2559 __ Ldr(code_entry, FieldMemOperand(function, JSFunction::kCodeEntryOffset)); in Generate_ArgumentsAdaptorTrampoline()
2560 __ Call(code_entry); in Generate_ArgumentsAdaptorTrampoline()
2567 __ Ret(); in Generate_ArgumentsAdaptorTrampoline()
2570 __ Bind(&dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
2571 __ Ldr(code_entry, FieldMemOperand(function, JSFunction::kCodeEntryOffset)); in Generate_ArgumentsAdaptorTrampoline()
2572 __ Jump(code_entry); in Generate_ArgumentsAdaptorTrampoline()
2574 __ Bind(&stack_overflow); in Generate_ArgumentsAdaptorTrampoline()
2577 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_ArgumentsAdaptorTrampoline()
2578 __ Unreachable(); in Generate_ArgumentsAdaptorTrampoline()
2583 #undef __