• Home
  • Raw
  • Download

Lines Matching full:__

16 #define __ ACCESS_MASM(masm)  macro
29 __ AssertFunction(r1); in Generate_Adaptor()
35 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_Adaptor()
40 __ add(r0, r0, Operand(num_extra_args + 1)); in Generate_Adaptor()
43 __ SmiTag(r0); in Generate_Adaptor()
44 __ Push(r0, r1, r3); in Generate_Adaptor()
45 __ SmiUntag(r0); in Generate_Adaptor()
47 __ JumpToExternalReference(ExternalReference(address, masm->isolate()), in Generate_Adaptor()
55 __ LoadNativeContextSlot(Context::INTERNAL_ARRAY_FUNCTION_INDEX, result); in GenerateLoadInternalArrayFunction()
61 __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, result); in GenerateLoadArrayFunction()
77 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_InternalArrayCode()
78 __ SmiTst(r2); in Generate_InternalArrayCode()
79 __ Assert(ne, kUnexpectedInitialMapForInternalArrayFunction); in Generate_InternalArrayCode()
80 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_InternalArrayCode()
81 __ Assert(eq, kUnexpectedInitialMapForInternalArrayFunction); in Generate_InternalArrayCode()
88 __ TailCallStub(&stub); in Generate_InternalArrayCode()
104 __ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset)); in Generate_ArrayCode()
105 __ SmiTst(r2); in Generate_ArrayCode()
106 __ Assert(ne, kUnexpectedInitialMapForArrayFunction); in Generate_ArrayCode()
107 __ CompareObjectType(r2, r3, r4, MAP_TYPE); in Generate_ArrayCode()
108 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); in Generate_ArrayCode()
111 __ mov(r3, r1); in Generate_ArrayCode()
114 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_ArrayCode()
116 __ TailCallStub(&stub); in Generate_ArrayCode()
138 __ LoadRoot(r5, root_index); in Generate_MathMaxMin()
139 __ vldr(d1, FieldMemOperand(r5, HeapNumber::kValueOffset)); in Generate_MathMaxMin()
142 __ mov(r4, r0); in Generate_MathMaxMin()
143 __ bind(&loop); in Generate_MathMaxMin()
146 __ sub(r4, r4, Operand(1), SetCC); in Generate_MathMaxMin()
147 __ b(lt, &done_loop); in Generate_MathMaxMin()
150 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2)); in Generate_MathMaxMin()
155 __ bind(&convert); in Generate_MathMaxMin()
156 __ JumpIfSmi(r2, &convert_smi); in Generate_MathMaxMin()
157 __ ldr(r3, FieldMemOperand(r2, HeapObject::kMapOffset)); in Generate_MathMaxMin()
158 __ JumpIfRoot(r3, Heap::kHeapNumberMapRootIndex, &convert_number); in Generate_MathMaxMin()
163 __ SmiTag(r0); in Generate_MathMaxMin()
164 __ SmiTag(r4); in Generate_MathMaxMin()
165 __ EnterBuiltinFrame(cp, r1, r0); in Generate_MathMaxMin()
166 __ Push(r4, r5); in Generate_MathMaxMin()
167 __ mov(r0, r2); in Generate_MathMaxMin()
168 __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET); in Generate_MathMaxMin()
169 __ mov(r2, r0); in Generate_MathMaxMin()
170 __ Pop(r4, r5); in Generate_MathMaxMin()
171 __ LeaveBuiltinFrame(cp, r1, r0); in Generate_MathMaxMin()
172 __ SmiUntag(r4); in Generate_MathMaxMin()
173 __ SmiUntag(r0); in Generate_MathMaxMin()
177 __ SmiToDouble(d1, r5); in Generate_MathMaxMin()
178 __ JumpIfSmi(r5, &done_restore); in Generate_MathMaxMin()
179 __ vldr(d1, FieldMemOperand(r5, HeapNumber::kValueOffset)); in Generate_MathMaxMin()
180 __ bind(&done_restore); in Generate_MathMaxMin()
183 __ b(&convert); in Generate_MathMaxMin()
184 __ bind(&convert_number); in Generate_MathMaxMin()
185 __ vldr(d2, FieldMemOperand(r2, HeapNumber::kValueOffset)); in Generate_MathMaxMin()
186 __ b(&done_convert); in Generate_MathMaxMin()
187 __ bind(&convert_smi); in Generate_MathMaxMin()
188 __ SmiToDouble(d2, r2); in Generate_MathMaxMin()
189 __ bind(&done_convert); in Generate_MathMaxMin()
194 __ VFPCompareAndSetFlags(d1, d2); in Generate_MathMaxMin()
195 __ b(cc_done, &loop); in Generate_MathMaxMin()
196 __ b(cc_swap, &compare_swap); in Generate_MathMaxMin()
197 __ b(vs, &compare_nan); in Generate_MathMaxMin()
200 __ VmovHigh(ip, reg); in Generate_MathMaxMin()
201 __ cmp(ip, Operand(0x80000000)); in Generate_MathMaxMin()
202 __ b(ne, &loop); in Generate_MathMaxMin()
205 __ bind(&compare_swap); in Generate_MathMaxMin()
206 __ vmov(d1, d2); in Generate_MathMaxMin()
207 __ mov(r5, r2); in Generate_MathMaxMin()
208 __ b(&loop); in Generate_MathMaxMin()
211 __ bind(&compare_nan); in Generate_MathMaxMin()
212 __ LoadRoot(r5, Heap::kNanValueRootIndex); in Generate_MathMaxMin()
213 __ vldr(d1, FieldMemOperand(r5, HeapNumber::kValueOffset)); in Generate_MathMaxMin()
214 __ b(&loop); in Generate_MathMaxMin()
217 __ bind(&done_loop); in Generate_MathMaxMin()
219 __ add(r0, r0, Operand(1)); in Generate_MathMaxMin()
220 __ Drop(r0); in Generate_MathMaxMin()
221 __ mov(r0, r5); in Generate_MathMaxMin()
222 __ Ret(); in Generate_MathMaxMin()
239 __ mov(r2, r0); // Store argc in r2. in Generate_NumberConstructor()
240 __ sub(r0, r0, Operand(1), SetCC); in Generate_NumberConstructor()
241 __ b(lo, &no_arguments); in Generate_NumberConstructor()
242 __ ldr(r0, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_NumberConstructor()
248 __ SmiTag(r2); in Generate_NumberConstructor()
249 __ EnterBuiltinFrame(cp, r1, r2); in Generate_NumberConstructor()
250 __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET); in Generate_NumberConstructor()
251 __ LeaveBuiltinFrame(cp, r1, r2); in Generate_NumberConstructor()
252 __ SmiUntag(r2); in Generate_NumberConstructor()
257 __ Drop(r2); in Generate_NumberConstructor()
258 __ Ret(1); in Generate_NumberConstructor()
262 __ bind(&no_arguments); in Generate_NumberConstructor()
263 __ Move(r0, Smi::kZero); in Generate_NumberConstructor()
264 __ Ret(1); in Generate_NumberConstructor()
280 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_NumberConstructor_ConstructStub()
285 __ mov(r6, r0); // Store argc in r6. in Generate_NumberConstructor_ConstructStub()
286 __ sub(r0, r0, Operand(1), SetCC); in Generate_NumberConstructor_ConstructStub()
287 __ b(lo, &no_arguments); in Generate_NumberConstructor_ConstructStub()
288 __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_NumberConstructor_ConstructStub()
289 __ b(&done); in Generate_NumberConstructor_ConstructStub()
290 __ bind(&no_arguments); in Generate_NumberConstructor_ConstructStub()
291 __ Move(r2, Smi::kZero); in Generate_NumberConstructor_ConstructStub()
292 __ bind(&done); in Generate_NumberConstructor_ConstructStub()
298 __ JumpIfSmi(r2, &done_convert); in Generate_NumberConstructor_ConstructStub()
299 __ CompareObjectType(r2, r4, r4, HEAP_NUMBER_TYPE); in Generate_NumberConstructor_ConstructStub()
300 __ b(eq, &done_convert); in Generate_NumberConstructor_ConstructStub()
303 __ SmiTag(r6); in Generate_NumberConstructor_ConstructStub()
304 __ EnterBuiltinFrame(cp, r1, r6); in Generate_NumberConstructor_ConstructStub()
305 __ Push(r3); in Generate_NumberConstructor_ConstructStub()
306 __ Move(r0, r2); in Generate_NumberConstructor_ConstructStub()
307 __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET); in Generate_NumberConstructor_ConstructStub()
308 __ Move(r2, r0); in Generate_NumberConstructor_ConstructStub()
309 __ Pop(r3); in Generate_NumberConstructor_ConstructStub()
310 __ LeaveBuiltinFrame(cp, r1, r6); in Generate_NumberConstructor_ConstructStub()
311 __ SmiUntag(r6); in Generate_NumberConstructor_ConstructStub()
313 __ bind(&done_convert); in Generate_NumberConstructor_ConstructStub()
318 __ cmp(r1, r3); in Generate_NumberConstructor_ConstructStub()
319 __ b(ne, &new_object); in Generate_NumberConstructor_ConstructStub()
322 __ AllocateJSValue(r0, r1, r2, r4, r5, &new_object); in Generate_NumberConstructor_ConstructStub()
323 __ b(&drop_frame_and_ret); in Generate_NumberConstructor_ConstructStub()
326 __ bind(&new_object); in Generate_NumberConstructor_ConstructStub()
329 __ SmiTag(r6); in Generate_NumberConstructor_ConstructStub()
330 __ EnterBuiltinFrame(cp, r1, r6); in Generate_NumberConstructor_ConstructStub()
331 __ Push(r2); // first argument in Generate_NumberConstructor_ConstructStub()
332 __ Call(CodeFactory::FastNewObject(masm->isolate()).code(), in Generate_NumberConstructor_ConstructStub()
334 __ Pop(r2); in Generate_NumberConstructor_ConstructStub()
335 __ LeaveBuiltinFrame(cp, r1, r6); in Generate_NumberConstructor_ConstructStub()
336 __ SmiUntag(r6); in Generate_NumberConstructor_ConstructStub()
338 __ str(r2, FieldMemOperand(r0, JSValue::kValueOffset)); in Generate_NumberConstructor_ConstructStub()
340 __ bind(&drop_frame_and_ret); in Generate_NumberConstructor_ConstructStub()
342 __ Drop(r6); in Generate_NumberConstructor_ConstructStub()
343 __ Ret(1); in Generate_NumberConstructor_ConstructStub()
361 __ mov(r2, r0); // Store argc in r2. in Generate_StringConstructor()
362 __ sub(r0, r0, Operand(1), SetCC); in Generate_StringConstructor()
363 __ b(lo, &no_arguments); in Generate_StringConstructor()
364 __ ldr(r0, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_StringConstructor()
371 __ JumpIfSmi(r0, &to_string); in Generate_StringConstructor()
373 __ CompareObjectType(r0, r3, r3, FIRST_NONSTRING_TYPE); in Generate_StringConstructor()
374 __ b(hi, &to_string); in Generate_StringConstructor()
375 __ b(eq, &symbol_descriptive_string); in Generate_StringConstructor()
376 __ b(&drop_frame_and_ret); in Generate_StringConstructor()
380 __ bind(&no_arguments); in Generate_StringConstructor()
382 __ LoadRoot(r0, Heap::kempty_stringRootIndex); in Generate_StringConstructor()
383 __ Ret(1); in Generate_StringConstructor()
387 __ bind(&to_string); in Generate_StringConstructor()
390 __ SmiTag(r2); in Generate_StringConstructor()
391 __ EnterBuiltinFrame(cp, r1, r2); in Generate_StringConstructor()
392 __ Call(masm->isolate()->builtins()->ToString(), RelocInfo::CODE_TARGET); in Generate_StringConstructor()
393 __ LeaveBuiltinFrame(cp, r1, r2); in Generate_StringConstructor()
394 __ SmiUntag(r2); in Generate_StringConstructor()
396 __ b(&drop_frame_and_ret); in Generate_StringConstructor()
399 __ bind(&symbol_descriptive_string); in Generate_StringConstructor()
401 __ Drop(r2); in Generate_StringConstructor()
402 __ Drop(1); in Generate_StringConstructor()
403 __ Push(r0); in Generate_StringConstructor()
404 __ TailCallRuntime(Runtime::kSymbolDescriptiveString); in Generate_StringConstructor()
407 __ bind(&drop_frame_and_ret); in Generate_StringConstructor()
409 __ Drop(r2); in Generate_StringConstructor()
410 __ Ret(1); in Generate_StringConstructor()
427 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_StringConstructor_ConstructStub()
432 __ mov(r6, r0); // Store argc in r6. in Generate_StringConstructor_ConstructStub()
433 __ sub(r0, r0, Operand(1), SetCC); in Generate_StringConstructor_ConstructStub()
434 __ b(lo, &no_arguments); in Generate_StringConstructor_ConstructStub()
435 __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_StringConstructor_ConstructStub()
436 __ b(&done); in Generate_StringConstructor_ConstructStub()
437 __ bind(&no_arguments); in Generate_StringConstructor_ConstructStub()
438 __ LoadRoot(r2, Heap::kempty_stringRootIndex); in Generate_StringConstructor_ConstructStub()
439 __ bind(&done); in Generate_StringConstructor_ConstructStub()
445 __ JumpIfSmi(r2, &convert); in Generate_StringConstructor_ConstructStub()
446 __ CompareObjectType(r2, r4, r4, FIRST_NONSTRING_TYPE); in Generate_StringConstructor_ConstructStub()
447 __ b(lo, &done_convert); in Generate_StringConstructor_ConstructStub()
448 __ bind(&convert); in Generate_StringConstructor_ConstructStub()
451 __ SmiTag(r6); in Generate_StringConstructor_ConstructStub()
452 __ EnterBuiltinFrame(cp, r1, r6); in Generate_StringConstructor_ConstructStub()
453 __ Push(r3); in Generate_StringConstructor_ConstructStub()
454 __ Move(r0, r2); in Generate_StringConstructor_ConstructStub()
455 __ Call(masm->isolate()->builtins()->ToString(), RelocInfo::CODE_TARGET); in Generate_StringConstructor_ConstructStub()
456 __ Move(r2, r0); in Generate_StringConstructor_ConstructStub()
457 __ Pop(r3); in Generate_StringConstructor_ConstructStub()
458 __ LeaveBuiltinFrame(cp, r1, r6); in Generate_StringConstructor_ConstructStub()
459 __ SmiUntag(r6); in Generate_StringConstructor_ConstructStub()
461 __ bind(&done_convert); in Generate_StringConstructor_ConstructStub()
466 __ cmp(r1, r3); in Generate_StringConstructor_ConstructStub()
467 __ b(ne, &new_object); in Generate_StringConstructor_ConstructStub()
470 __ AllocateJSValue(r0, r1, r2, r4, r5, &new_object); in Generate_StringConstructor_ConstructStub()
471 __ b(&drop_frame_and_ret); in Generate_StringConstructor_ConstructStub()
474 __ bind(&new_object); in Generate_StringConstructor_ConstructStub()
477 __ SmiTag(r6); in Generate_StringConstructor_ConstructStub()
478 __ EnterBuiltinFrame(cp, r1, r6); in Generate_StringConstructor_ConstructStub()
479 __ Push(r2); // first argument in Generate_StringConstructor_ConstructStub()
480 __ Call(CodeFactory::FastNewObject(masm->isolate()).code(), in Generate_StringConstructor_ConstructStub()
482 __ Pop(r2); in Generate_StringConstructor_ConstructStub()
483 __ LeaveBuiltinFrame(cp, r1, r6); in Generate_StringConstructor_ConstructStub()
484 __ SmiUntag(r6); in Generate_StringConstructor_ConstructStub()
486 __ str(r2, FieldMemOperand(r0, JSValue::kValueOffset)); in Generate_StringConstructor_ConstructStub()
488 __ bind(&drop_frame_and_ret); in Generate_StringConstructor_ConstructStub()
490 __ Drop(r6); in Generate_StringConstructor_ConstructStub()
491 __ Ret(1); in Generate_StringConstructor_ConstructStub()
496 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in GenerateTailCallToSharedCode()
497 __ ldr(r2, FieldMemOperand(r2, SharedFunctionInfo::kCodeOffset)); in GenerateTailCallToSharedCode()
498 __ add(r2, r2, Operand(Code::kHeaderSize - kHeapObjectTag)); in GenerateTailCallToSharedCode()
499 __ Jump(r2); in GenerateTailCallToSharedCode()
512 __ SmiTag(r0); in GenerateTailCallToReturnedCode()
513 __ push(r0); in GenerateTailCallToReturnedCode()
515 __ push(r1); in GenerateTailCallToReturnedCode()
516 __ push(r3); in GenerateTailCallToReturnedCode()
518 __ Push(r1); in GenerateTailCallToReturnedCode()
520 __ CallRuntime(function_id, 1); in GenerateTailCallToReturnedCode()
521 __ mov(r2, r0); in GenerateTailCallToReturnedCode()
524 __ pop(r3); in GenerateTailCallToReturnedCode()
525 __ pop(r1); in GenerateTailCallToReturnedCode()
526 __ pop(r0); in GenerateTailCallToReturnedCode()
527 __ SmiUntag(r0, r0); in GenerateTailCallToReturnedCode()
529 __ add(r2, r2, Operand(Code::kHeaderSize - kHeapObjectTag)); in GenerateTailCallToReturnedCode()
530 __ Jump(r2); in GenerateTailCallToReturnedCode()
540 __ LoadRoot(ip, Heap::kStackLimitRootIndex); in Generate_InOptimizationQueue()
541 __ cmp(sp, Operand(ip)); in Generate_InOptimizationQueue()
542 __ b(hs, &ok); in Generate_InOptimizationQueue()
546 __ bind(&ok); in Generate_InOptimizationQueue()
573 __ SmiTag(r0); in Generate_JSConstructStubHelper()
574 __ Push(cp, r0); in Generate_JSConstructStubHelper()
578 __ Push(r1, r3); in Generate_JSConstructStubHelper()
579 __ Call(CodeFactory::FastNewObject(masm->isolate()).code(), in Generate_JSConstructStubHelper()
581 __ mov(r4, r0); in Generate_JSConstructStubHelper()
582 __ Pop(r1, r3); in Generate_JSConstructStubHelper()
591 __ ldr(r0, MemOperand(sp)); in Generate_JSConstructStubHelper()
594 __ SmiUntag(r0); in Generate_JSConstructStubHelper()
600 __ push(r4); in Generate_JSConstructStubHelper()
601 __ push(r4); in Generate_JSConstructStubHelper()
603 __ PushRoot(Heap::kTheHoleValueRootIndex); in Generate_JSConstructStubHelper()
607 __ bind(&post_instantiation_deopt_entry); in Generate_JSConstructStubHelper()
610 __ add(r2, fp, Operand(StandardFrameConstants::kCallerSPOffset)); in Generate_JSConstructStubHelper()
622 __ SmiTag(r4, r0); in Generate_JSConstructStubHelper()
623 __ b(&entry); in Generate_JSConstructStubHelper()
624 __ bind(&loop); in Generate_JSConstructStubHelper()
625 __ ldr(ip, MemOperand(r2, r4, LSL, kPointerSizeLog2 - 1)); in Generate_JSConstructStubHelper()
626 __ push(ip); in Generate_JSConstructStubHelper()
627 __ bind(&entry); in Generate_JSConstructStubHelper()
628 __ sub(r4, r4, Operand(2), SetCC); in Generate_JSConstructStubHelper()
629 __ b(ge, &loop); in Generate_JSConstructStubHelper()
636 __ InvokeFunction(r1, r3, actual, CALL_FUNCTION, in Generate_JSConstructStubHelper()
649 __ ldr(cp, MemOperand(fp, ConstructFrameConstants::kContextOffset)); in Generate_JSConstructStubHelper()
661 __ JumpIfSmi(r0, &use_receiver); in Generate_JSConstructStubHelper()
665 __ CompareObjectType(r0, r1, r3, FIRST_JS_RECEIVER_TYPE); in Generate_JSConstructStubHelper()
666 __ b(ge, &exit); in Generate_JSConstructStubHelper()
670 __ bind(&use_receiver); in Generate_JSConstructStubHelper()
671 __ ldr(r0, MemOperand(sp)); in Generate_JSConstructStubHelper()
675 __ bind(&exit); in Generate_JSConstructStubHelper()
679 __ ldr(r1, MemOperand(sp, 1 * kPointerSize)); in Generate_JSConstructStubHelper()
681 __ ldr(r1, MemOperand(sp)); in Generate_JSConstructStubHelper()
692 __ JumpIfNotSmi(r0, &dont_throw); in Generate_JSConstructStubHelper()
695 __ CallRuntime(Runtime::kThrowDerivedConstructorReturnedNonObject); in Generate_JSConstructStubHelper()
697 __ bind(&dont_throw); in Generate_JSConstructStubHelper()
700 __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - 1)); in Generate_JSConstructStubHelper()
701 __ add(sp, sp, Operand(kPointerSize)); in Generate_JSConstructStubHelper()
703 __ IncrementCounter(isolate->counters()->constructed_objects(), 1, r1, r2); in Generate_JSConstructStubHelper()
705 __ Jump(lr); in Generate_JSConstructStubHelper()
719 __ pop(r1); in Generate_JSConstructStubHelper()
720 __ push(r0); in Generate_JSConstructStubHelper()
721 __ push(r0); in Generate_JSConstructStubHelper()
724 __ ldr(r0, MemOperand(fp, ConstructFrameConstants::kLengthOffset)); in Generate_JSConstructStubHelper()
725 __ SmiUntag(r0); in Generate_JSConstructStubHelper()
729 __ add(r3, fp, Operand(StandardFrameConstants::kCallerSPOffset)); in Generate_JSConstructStubHelper()
730 __ ldr(r3, MemOperand(r3, r0, LSL, kPointerSizeLog2)); in Generate_JSConstructStubHelper()
733 __ b(&post_instantiation_deopt_entry); in Generate_JSConstructStubHelper()
764 __ AssertGeneratorObject(r1); in Generate_ResumeGeneratorTrampoline()
767 __ str(r0, FieldMemOperand(r1, JSGeneratorObject::kInputOrDebugPosOffset)); in Generate_ResumeGeneratorTrampoline()
768 __ RecordWriteField(r1, JSGeneratorObject::kInputOrDebugPosOffset, r0, r3, in Generate_ResumeGeneratorTrampoline()
772 __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kResumeModeOffset)); in Generate_ResumeGeneratorTrampoline()
775 __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset)); in Generate_ResumeGeneratorTrampoline()
776 __ ldr(cp, FieldMemOperand(r4, JSFunction::kContextOffset)); in Generate_ResumeGeneratorTrampoline()
783 __ mov(ip, Operand(debug_hook)); in Generate_ResumeGeneratorTrampoline()
784 __ ldrsb(ip, MemOperand(ip)); in Generate_ResumeGeneratorTrampoline()
785 __ cmp(ip, Operand(0)); in Generate_ResumeGeneratorTrampoline()
786 __ b(ne, &prepare_step_in_if_stepping); in Generate_ResumeGeneratorTrampoline()
791 __ mov(ip, Operand(debug_suspended_generator)); in Generate_ResumeGeneratorTrampoline()
792 __ ldr(ip, MemOperand(ip)); in Generate_ResumeGeneratorTrampoline()
793 __ cmp(ip, Operand(r1)); in Generate_ResumeGeneratorTrampoline()
794 __ b(eq, &prepare_step_in_suspended_generator); in Generate_ResumeGeneratorTrampoline()
795 __ bind(&stepping_prepared); in Generate_ResumeGeneratorTrampoline()
798 __ ldr(ip, FieldMemOperand(r1, JSGeneratorObject::kReceiverOffset)); in Generate_ResumeGeneratorTrampoline()
799 __ Push(ip); in Generate_ResumeGeneratorTrampoline()
814 __ ldr(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset)); in Generate_ResumeGeneratorTrampoline()
815 __ ldr(r3, in Generate_ResumeGeneratorTrampoline()
819 __ bind(&loop); in Generate_ResumeGeneratorTrampoline()
820 __ sub(r3, r3, Operand(Smi::FromInt(1)), SetCC); in Generate_ResumeGeneratorTrampoline()
821 __ b(mi, &done_loop); in Generate_ResumeGeneratorTrampoline()
822 __ PushRoot(Heap::kTheHoleValueRootIndex); in Generate_ResumeGeneratorTrampoline()
823 __ b(&loop); in Generate_ResumeGeneratorTrampoline()
824 __ bind(&done_loop); in Generate_ResumeGeneratorTrampoline()
829 __ ldr(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset)); in Generate_ResumeGeneratorTrampoline()
830 __ ldr(r3, FieldMemOperand(r3, SharedFunctionInfo::kFunctionDataOffset)); in Generate_ResumeGeneratorTrampoline()
831 __ CompareObjectType(r3, r3, r3, BYTECODE_ARRAY_TYPE); in Generate_ResumeGeneratorTrampoline()
832 __ Assert(eq, kMissingBytecodeArray); in Generate_ResumeGeneratorTrampoline()
837 __ ldr(r0, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset)); in Generate_ResumeGeneratorTrampoline()
838 __ ldr(r0, FieldMemOperand( in Generate_ResumeGeneratorTrampoline()
840 __ SmiUntag(r0); in Generate_ResumeGeneratorTrampoline()
844 __ Move(r3, r1); in Generate_ResumeGeneratorTrampoline()
845 __ Move(r1, r4); in Generate_ResumeGeneratorTrampoline()
846 __ ldr(r5, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_ResumeGeneratorTrampoline()
847 __ Jump(r5); in Generate_ResumeGeneratorTrampoline()
850 __ bind(&prepare_step_in_if_stepping); in Generate_ResumeGeneratorTrampoline()
853 __ Push(r1, r2, r4); in Generate_ResumeGeneratorTrampoline()
854 __ CallRuntime(Runtime::kDebugOnFunctionCall); in Generate_ResumeGeneratorTrampoline()
855 __ Pop(r1, r2); in Generate_ResumeGeneratorTrampoline()
856 __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset)); in Generate_ResumeGeneratorTrampoline()
858 __ b(&stepping_prepared); in Generate_ResumeGeneratorTrampoline()
860 __ bind(&prepare_step_in_suspended_generator); in Generate_ResumeGeneratorTrampoline()
863 __ Push(r1, r2); in Generate_ResumeGeneratorTrampoline()
864 __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator); in Generate_ResumeGeneratorTrampoline()
865 __ Pop(r1, r2); in Generate_ResumeGeneratorTrampoline()
866 __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset)); in Generate_ResumeGeneratorTrampoline()
868 __ b(&stepping_prepared); in Generate_ResumeGeneratorTrampoline()
873 __ push(r1); in Generate_ConstructedNonConstructable()
874 __ CallRuntime(Runtime::kThrowConstructedNonConstructable); in Generate_ConstructedNonConstructable()
886 __ LoadRoot(r2, Heap::kRealStackLimitRootIndex); in Generate_CheckStackOverflow()
889 __ sub(r2, sp, r2); in Generate_CheckStackOverflow()
892 __ cmp(r2, Operand::PointerOffsetFromSmiKey(argc)); in Generate_CheckStackOverflow()
895 __ cmp(r2, Operand(argc, LSL, kPointerSizeLog2)); in Generate_CheckStackOverflow()
897 __ b(gt, &okay); // Signed comparison. in Generate_CheckStackOverflow()
900 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_CheckStackOverflow()
902 __ bind(&okay); in Generate_CheckStackOverflow()
923 __ mov(cp, Operand(context_address)); in Generate_JSEntryTrampolineHelper()
924 __ ldr(cp, MemOperand(cp)); in Generate_JSEntryTrampolineHelper()
926 __ InitializeRootRegister(); in Generate_JSEntryTrampolineHelper()
929 __ Push(r1, r2); in Generate_JSEntryTrampolineHelper()
936 __ mov(r5, r0); in Generate_JSEntryTrampolineHelper()
943 __ add(r2, r4, Operand(r3, LSL, kPointerSizeLog2)); in Generate_JSEntryTrampolineHelper()
945 __ b(&entry); in Generate_JSEntryTrampolineHelper()
946 __ bind(&loop); in Generate_JSEntryTrampolineHelper()
947 __ ldr(r0, MemOperand(r4, kPointerSize, PostIndex)); // read next parameter in Generate_JSEntryTrampolineHelper()
948 __ ldr(r0, MemOperand(r0)); // dereference handle in Generate_JSEntryTrampolineHelper()
949 __ push(r0); // push parameter in Generate_JSEntryTrampolineHelper()
950 __ bind(&entry); in Generate_JSEntryTrampolineHelper()
951 __ cmp(r4, r2); in Generate_JSEntryTrampolineHelper()
952 __ b(ne, &loop); in Generate_JSEntryTrampolineHelper()
955 __ mov(r0, Operand(r3)); in Generate_JSEntryTrampolineHelper()
956 __ mov(r3, Operand(r5)); in Generate_JSEntryTrampolineHelper()
960 __ LoadRoot(r4, Heap::kUndefinedValueRootIndex); in Generate_JSEntryTrampolineHelper()
961 __ mov(r5, Operand(r4)); in Generate_JSEntryTrampolineHelper()
962 __ mov(r6, Operand(r4)); in Generate_JSEntryTrampolineHelper()
964 __ mov(r8, Operand(r4)); in Generate_JSEntryTrampolineHelper()
967 __ mov(r9, Operand(r4)); in Generate_JSEntryTrampolineHelper()
974 __ Call(builtin, RelocInfo::CODE_TARGET); in Generate_JSEntryTrampolineHelper()
980 __ Jump(lr); in Generate_JSEntryTrampolineHelper()
997 __ ldr(args_count, in LeaveInterpreterFrame()
999 __ ldr(args_count, in LeaveInterpreterFrame()
1003 __ LeaveFrame(StackFrame::JAVA_SCRIPT); in LeaveInterpreterFrame()
1006 __ add(sp, sp, args_count, LeaveCC); in LeaveInterpreterFrame()
1032 __ PushStandardFrame(r1); in Generate_InterpreterEntryTrampoline()
1036 __ ldr(r0, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterEntryTrampoline()
1039 __ ldr(debug_info, FieldMemOperand(r0, SharedFunctionInfo::kDebugInfoOffset)); in Generate_InterpreterEntryTrampoline()
1040 __ SmiTst(debug_info); in Generate_InterpreterEntryTrampoline()
1042 __ ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
1044 __ ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
1049 __ ldr(r0, FieldMemOperand(r0, SharedFunctionInfo::kCodeOffset)); in Generate_InterpreterEntryTrampoline()
1050 __ cmp(r0, Operand(masm->CodeObject())); // Self-reference to this code. in Generate_InterpreterEntryTrampoline()
1051 __ b(ne, &switch_to_different_code_kind); in Generate_InterpreterEntryTrampoline()
1054 __ ldr(r2, FieldMemOperand(r1, JSFunction::kFeedbackVectorOffset)); in Generate_InterpreterEntryTrampoline()
1055 __ ldr(r2, FieldMemOperand(r2, Cell::kValueOffset)); in Generate_InterpreterEntryTrampoline()
1056 __ ldr(r9, FieldMemOperand( in Generate_InterpreterEntryTrampoline()
1059 __ add(r9, r9, Operand(Smi::FromInt(1))); in Generate_InterpreterEntryTrampoline()
1060 __ str(r9, FieldMemOperand( in Generate_InterpreterEntryTrampoline()
1066 __ SmiTst(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEntryTrampoline()
1067 __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEntryTrampoline()
1068 __ CompareObjectType(kInterpreterBytecodeArrayRegister, r0, no_reg, in Generate_InterpreterEntryTrampoline()
1070 __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEntryTrampoline()
1074 __ mov(r9, Operand(BytecodeArray::kNoAgeBytecodeAge)); in Generate_InterpreterEntryTrampoline()
1075 __ strb(r9, FieldMemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
1079 __ mov(kInterpreterBytecodeOffsetRegister, in Generate_InterpreterEntryTrampoline()
1083 __ SmiTag(r0, kInterpreterBytecodeOffsetRegister); in Generate_InterpreterEntryTrampoline()
1084 __ Push(r3, kInterpreterBytecodeArrayRegister, r0); in Generate_InterpreterEntryTrampoline()
1089 __ ldr(r4, FieldMemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
1094 __ sub(r9, sp, Operand(r4)); in Generate_InterpreterEntryTrampoline()
1095 __ LoadRoot(r2, Heap::kRealStackLimitRootIndex); in Generate_InterpreterEntryTrampoline()
1096 __ cmp(r9, Operand(r2)); in Generate_InterpreterEntryTrampoline()
1097 __ b(hs, &ok); in Generate_InterpreterEntryTrampoline()
1098 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_InterpreterEntryTrampoline()
1099 __ bind(&ok); in Generate_InterpreterEntryTrampoline()
1104 __ LoadRoot(r9, Heap::kUndefinedValueRootIndex); in Generate_InterpreterEntryTrampoline()
1105 __ b(&loop_check, al); in Generate_InterpreterEntryTrampoline()
1106 __ bind(&loop_header); in Generate_InterpreterEntryTrampoline()
1108 __ push(r9); in Generate_InterpreterEntryTrampoline()
1110 __ bind(&loop_check); in Generate_InterpreterEntryTrampoline()
1111 __ sub(r4, r4, Operand(kPointerSize), SetCC); in Generate_InterpreterEntryTrampoline()
1112 __ b(&loop_header, ge); in Generate_InterpreterEntryTrampoline()
1116 __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); in Generate_InterpreterEntryTrampoline()
1117 __ mov(kInterpreterDispatchTableRegister, in Generate_InterpreterEntryTrampoline()
1122 __ ldrb(r1, MemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEntryTrampoline()
1124 __ ldr(ip, MemOperand(kInterpreterDispatchTableRegister, r1, LSL, in Generate_InterpreterEntryTrampoline()
1126 __ Call(ip); in Generate_InterpreterEntryTrampoline()
1131 __ Jump(lr); in Generate_InterpreterEntryTrampoline()
1136 __ bind(&switch_to_different_code_kind); in Generate_InterpreterEntryTrampoline()
1137 __ LeaveFrame(StackFrame::JAVA_SCRIPT); in Generate_InterpreterEntryTrampoline()
1138 __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterEntryTrampoline()
1139 __ ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kCodeOffset)); in Generate_InterpreterEntryTrampoline()
1140 __ add(r4, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_InterpreterEntryTrampoline()
1141 __ str(r4, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_InterpreterEntryTrampoline()
1142 __ RecordWriteCodeEntryField(r1, r4, r5); in Generate_InterpreterEntryTrampoline()
1143 __ Jump(r4); in Generate_InterpreterEntryTrampoline()
1152 __ LoadRoot(scratch, Heap::kRealStackLimitRootIndex); in Generate_StackOverflowCheck()
1155 __ sub(scratch, sp, scratch); in Generate_StackOverflowCheck()
1157 __ cmp(scratch, Operand(num_args, LSL, kPointerSizeLog2)); in Generate_StackOverflowCheck()
1158 __ b(le, stack_overflow); // Signed comparison. in Generate_StackOverflowCheck()
1169 __ mov(limit, num_args); in Generate_InterpreterPushArgs()
1170 __ mov(limit, Operand(limit, LSL, kPointerSizeLog2)); in Generate_InterpreterPushArgs()
1171 __ sub(limit, index, limit); in Generate_InterpreterPushArgs()
1174 __ b(al, &loop_check); in Generate_InterpreterPushArgs()
1175 __ bind(&loop_header); in Generate_InterpreterPushArgs()
1176 __ ldr(scratch, MemOperand(index, -kPointerSize, PostIndex)); in Generate_InterpreterPushArgs()
1177 __ push(scratch); in Generate_InterpreterPushArgs()
1178 __ bind(&loop_check); in Generate_InterpreterPushArgs()
1179 __ cmp(index, limit); in Generate_InterpreterPushArgs()
1180 __ b(gt, &loop_header); in Generate_InterpreterPushArgs()
1196 __ add(r3, r0, Operand(1)); // Add one for receiver. in Generate_InterpreterPushArgsAndCallImpl()
1203 __ Jump(masm->isolate()->builtins()->CallFunction(ConvertReceiverMode::kAny, in Generate_InterpreterPushArgsAndCallImpl()
1207 __ Jump(masm->isolate()->builtins()->CallWithSpread(), in Generate_InterpreterPushArgsAndCallImpl()
1210 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny, in Generate_InterpreterPushArgsAndCallImpl()
1215 __ bind(&stack_overflow); in Generate_InterpreterPushArgsAndCallImpl()
1217 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_InterpreterPushArgsAndCallImpl()
1219 __ bkpt(0); in Generate_InterpreterPushArgsAndCallImpl()
1236 __ mov(ip, Operand::Zero()); in Generate_InterpreterPushArgsAndConstructImpl()
1237 __ push(ip); in Generate_InterpreterPushArgsAndConstructImpl()
1242 __ AssertUndefinedOrAllocationSite(r2, r5); in Generate_InterpreterPushArgsAndConstructImpl()
1244 __ AssertFunction(r1); in Generate_InterpreterPushArgsAndConstructImpl()
1248 __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_InterpreterPushArgsAndConstructImpl()
1249 __ ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kConstructStubOffset)); in Generate_InterpreterPushArgsAndConstructImpl()
1251 __ add(pc, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_InterpreterPushArgsAndConstructImpl()
1254 __ Jump(masm->isolate()->builtins()->ConstructWithSpread(), in Generate_InterpreterPushArgsAndConstructImpl()
1259 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_InterpreterPushArgsAndConstructImpl()
1262 __ bind(&stack_overflow); in Generate_InterpreterPushArgsAndConstructImpl()
1264 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_InterpreterPushArgsAndConstructImpl()
1266 __ bkpt(0); in Generate_InterpreterPushArgsAndConstructImpl()
1281 __ add(r4, r0, Operand(1)); // Add one for receiver. in Generate_InterpreterPushArgsAndConstructArray()
1288 __ mov(r3, r1); in Generate_InterpreterPushArgsAndConstructArray()
1291 __ TailCallStub(&stub); in Generate_InterpreterPushArgsAndConstructArray()
1293 __ bind(&stack_overflow); in Generate_InterpreterPushArgsAndConstructArray()
1295 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_InterpreterPushArgsAndConstructArray()
1297 __ bkpt(0); in Generate_InterpreterPushArgsAndConstructArray()
1307 __ Move(r2, masm->isolate()->builtins()->InterpreterEntryTrampoline()); in Generate_InterpreterEnterBytecode()
1308 __ add(lr, r2, Operand(interpreter_entry_return_pc_offset->value() + in Generate_InterpreterEnterBytecode()
1312 __ mov(kInterpreterDispatchTableRegister, in Generate_InterpreterEnterBytecode()
1317 __ ldr(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEnterBytecode()
1322 __ SmiTst(kInterpreterBytecodeArrayRegister); in Generate_InterpreterEnterBytecode()
1323 __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEnterBytecode()
1324 __ CompareObjectType(kInterpreterBytecodeArrayRegister, r1, no_reg, in Generate_InterpreterEnterBytecode()
1326 __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); in Generate_InterpreterEnterBytecode()
1330 __ ldr(kInterpreterBytecodeOffsetRegister, in Generate_InterpreterEnterBytecode()
1332 __ SmiUntag(kInterpreterBytecodeOffsetRegister); in Generate_InterpreterEnterBytecode()
1335 __ ldrb(r1, MemOperand(kInterpreterBytecodeArrayRegister, in Generate_InterpreterEnterBytecode()
1337 __ ldr(ip, MemOperand(kInterpreterDispatchTableRegister, r1, LSL, in Generate_InterpreterEnterBytecode()
1339 __ mov(pc, ip); in Generate_InterpreterEnterBytecode()
1346 __ ldr(r1, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp)); in Generate_InterpreterEnterBytecodeAdvance()
1347 __ ldr(r2, MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp)); in Generate_InterpreterEnterBytecodeAdvance()
1348 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); in Generate_InterpreterEnterBytecodeAdvance()
1351 __ Push(kInterpreterAccumulatorRegister, r1, r2); in Generate_InterpreterEnterBytecodeAdvance()
1352 __ CallRuntime(Runtime::kInterpreterAdvanceBytecodeOffset); in Generate_InterpreterEnterBytecodeAdvance()
1353 __ mov(r2, r0); // Result is the new bytecode offset. in Generate_InterpreterEnterBytecodeAdvance()
1354 __ Pop(kInterpreterAccumulatorRegister); in Generate_InterpreterEnterBytecodeAdvance()
1356 __ str(r2, MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp)); in Generate_InterpreterEnterBytecodeAdvance()
1383 __ ldr(index, FieldMemOperand(closure, JSFunction::kFeedbackVectorOffset)); in Generate_CompileLazy()
1384 __ ldr(index, FieldMemOperand(index, Cell::kValueOffset)); in Generate_CompileLazy()
1385 __ JumpIfRoot(index, Heap::kUndefinedValueRootIndex, in Generate_CompileLazy()
1388 __ push(argument_count); in Generate_CompileLazy()
1389 __ push(new_target); in Generate_CompileLazy()
1390 __ push(closure); in Generate_CompileLazy()
1392 __ ldr(map, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset)); in Generate_CompileLazy()
1393 __ ldr(map, in Generate_CompileLazy()
1395 __ ldr(index, FieldMemOperand(map, FixedArray::kLengthOffset)); in Generate_CompileLazy()
1396 __ cmp(index, Operand(Smi::FromInt(2))); in Generate_CompileLazy()
1397 __ b(lt, &try_shared); in Generate_CompileLazy()
1405 __ ldr(native_context, NativeContextMemOperand()); in Generate_CompileLazy()
1407 __ bind(&loop_top); in Generate_CompileLazy()
1412 __ add(array_pointer, map, Operand::PointerOffsetFromSmiKey(index)); in Generate_CompileLazy()
1413 __ ldr(temp, FieldMemOperand(array_pointer, in Generate_CompileLazy()
1415 __ ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset)); in Generate_CompileLazy()
1416 __ cmp(temp, native_context); in Generate_CompileLazy()
1417 __ b(ne, &loop_bottom); in Generate_CompileLazy()
1421 __ ldr(entry, in Generate_CompileLazy()
1424 __ ldr(entry, FieldMemOperand(entry, WeakCell::kValueOffset)); in Generate_CompileLazy()
1425 __ JumpIfSmi(entry, &try_shared); in Generate_CompileLazy()
1428 __ pop(closure); in Generate_CompileLazy()
1430 __ add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_CompileLazy()
1431 __ str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset)); in Generate_CompileLazy()
1432 __ RecordWriteCodeEntryField(closure, entry, r5); in Generate_CompileLazy()
1438 __ ldr(r5, in Generate_CompileLazy()
1440 __ str(r5, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset)); in Generate_CompileLazy()
1441 __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, r5, r0, in Generate_CompileLazy()
1446 __ str(closure, in Generate_CompileLazy()
1449 __ mov(r5, closure); in Generate_CompileLazy()
1450 __ RecordWriteContextSlot(native_context, function_list_offset, closure, r0, in Generate_CompileLazy()
1452 __ mov(closure, r5); in Generate_CompileLazy()
1453 __ pop(new_target); in Generate_CompileLazy()
1454 __ pop(argument_count); in Generate_CompileLazy()
1455 __ Jump(entry); in Generate_CompileLazy()
1457 __ bind(&loop_bottom); in Generate_CompileLazy()
1458 __ sub(index, index, Operand(Smi::FromInt(SharedFunctionInfo::kEntryLength))); in Generate_CompileLazy()
1459 __ cmp(index, Operand(Smi::FromInt(1))); in Generate_CompileLazy()
1460 __ b(gt, &loop_top); in Generate_CompileLazy()
1463 __ bind(&try_shared); in Generate_CompileLazy()
1464 __ pop(closure); in Generate_CompileLazy()
1465 __ pop(new_target); in Generate_CompileLazy()
1466 __ pop(argument_count); in Generate_CompileLazy()
1467 __ ldr(entry, in Generate_CompileLazy()
1470 __ ldrb(r5, FieldMemOperand(entry, in Generate_CompileLazy()
1472 __ tst(r5, Operand(1 << SharedFunctionInfo::kMarkedForTierUpBitWithinByte)); in Generate_CompileLazy()
1473 __ b(ne, &gotta_call_runtime_no_stack); in Generate_CompileLazy()
1476 __ ldr(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset)); in Generate_CompileLazy()
1477 __ Move(r5, masm->CodeObject()); in Generate_CompileLazy()
1478 __ cmp(entry, r5); in Generate_CompileLazy()
1479 __ b(eq, &gotta_call_runtime_no_stack); in Generate_CompileLazy()
1482 __ add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_CompileLazy()
1483 __ str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset)); in Generate_CompileLazy()
1484 __ RecordWriteCodeEntryField(closure, entry, r5); in Generate_CompileLazy()
1485 __ Jump(entry); in Generate_CompileLazy()
1487 __ bind(&gotta_call_runtime); in Generate_CompileLazy()
1488 __ pop(closure); in Generate_CompileLazy()
1489 __ pop(new_target); in Generate_CompileLazy()
1490 __ pop(argument_count); in Generate_CompileLazy()
1491 __ bind(&gotta_call_runtime_no_stack); in Generate_CompileLazy()
1518 __ Move(r4, r0); in Generate_InstantiateAsmJs()
1520 __ SmiTag(r0); in Generate_InstantiateAsmJs()
1521 __ push(r0); in Generate_InstantiateAsmJs()
1523 __ push(r1); in Generate_InstantiateAsmJs()
1524 __ push(r3); in Generate_InstantiateAsmJs()
1527 __ push(r1); in Generate_InstantiateAsmJs()
1533 __ cmp(r4, Operand(j)); in Generate_InstantiateAsmJs()
1534 __ b(ne, &over); in Generate_InstantiateAsmJs()
1537 __ ldr(r4, MemOperand(fp, StandardFrameConstants::kCallerSPOffset + in Generate_InstantiateAsmJs()
1539 __ push(r4); in Generate_InstantiateAsmJs()
1542 __ PushRoot(Heap::kUndefinedValueRootIndex); in Generate_InstantiateAsmJs()
1545 __ jmp(&args_done); in Generate_InstantiateAsmJs()
1546 __ bind(&over); in Generate_InstantiateAsmJs()
1549 __ bind(&args_done); in Generate_InstantiateAsmJs()
1552 __ CallRuntime(Runtime::kInstantiateAsmJs, 4); in Generate_InstantiateAsmJs()
1554 __ JumpIfSmi(r0, &failed); in Generate_InstantiateAsmJs()
1556 __ Drop(2); in Generate_InstantiateAsmJs()
1557 __ pop(r4); in Generate_InstantiateAsmJs()
1558 __ SmiUntag(r4); in Generate_InstantiateAsmJs()
1561 __ add(r4, r4, Operand(1)); in Generate_InstantiateAsmJs()
1562 __ Drop(r4); in Generate_InstantiateAsmJs()
1563 __ Ret(); in Generate_InstantiateAsmJs()
1565 __ bind(&failed); in Generate_InstantiateAsmJs()
1567 __ pop(r3); in Generate_InstantiateAsmJs()
1568 __ pop(r1); in Generate_InstantiateAsmJs()
1569 __ pop(r0); in Generate_InstantiateAsmJs()
1570 __ SmiUntag(r0); in Generate_InstantiateAsmJs()
1589 __ stm(db_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in GenerateMakeCodeYoungAgainCommon()
1590 __ PrepareCallCFunction(2, 0, r2); in GenerateMakeCodeYoungAgainCommon()
1591 __ mov(r1, Operand(ExternalReference::isolate_address(masm->isolate()))); in GenerateMakeCodeYoungAgainCommon()
1592 __ CallCFunction( in GenerateMakeCodeYoungAgainCommon()
1594 __ ldm(ia_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in GenerateMakeCodeYoungAgainCommon()
1595 __ mov(pc, r0); in GenerateMakeCodeYoungAgainCommon()
1617 __ stm(db_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in CODE_AGE_LIST()
1618 __ PrepareCallCFunction(2, 0, r2); in CODE_AGE_LIST()
1619 __ mov(r1, Operand(ExternalReference::isolate_address(masm->isolate()))); in CODE_AGE_LIST()
1620 __ CallCFunction( in CODE_AGE_LIST()
1623 __ ldm(ia_w, sp, r0.bit() | r1.bit() | r3.bit() | fp.bit() | lr.bit()); in CODE_AGE_LIST()
1626 __ PushStandardFrame(r1); in CODE_AGE_LIST()
1629 __ add(r0, r0, Operand(kNoCodeAgeSequenceLength)); in CODE_AGE_LIST()
1630 __ mov(pc, r0); in CODE_AGE_LIST()
1649 __ stm(db_w, sp, kJSCallerSaved | kCalleeSaved); in Generate_NotifyStubFailureHelper()
1651 __ CallRuntime(Runtime::kNotifyStubFailure, save_doubles); in Generate_NotifyStubFailureHelper()
1652 __ ldm(ia_w, sp, kJSCallerSaved | kCalleeSaved); in Generate_NotifyStubFailureHelper()
1655 __ add(sp, sp, Operand(kPointerSize)); // Ignore state in Generate_NotifyStubFailureHelper()
1656 __ mov(pc, lr); // Jump to miss handler in Generate_NotifyStubFailureHelper()
1672 __ mov(r0, Operand(Smi::FromInt(static_cast<int>(type)))); in Generate_NotifyDeoptimizedHelper()
1673 __ push(r0); in Generate_NotifyDeoptimizedHelper()
1674 __ CallRuntime(Runtime::kNotifyDeoptimized); in Generate_NotifyDeoptimizedHelper()
1678 __ ldr(r6, MemOperand(sp, 0 * kPointerSize)); in Generate_NotifyDeoptimizedHelper()
1679 __ SmiUntag(r6); in Generate_NotifyDeoptimizedHelper()
1682 __ cmp(r6, in Generate_NotifyDeoptimizedHelper()
1684 __ b(ne, &with_tos_register); in Generate_NotifyDeoptimizedHelper()
1685 __ add(sp, sp, Operand(1 * kPointerSize)); // Remove state. in Generate_NotifyDeoptimizedHelper()
1686 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1688 __ bind(&with_tos_register); in Generate_NotifyDeoptimizedHelper()
1690 __ ldr(r0, MemOperand(sp, 1 * kPointerSize)); in Generate_NotifyDeoptimizedHelper()
1691 __ cmp(r6, in Generate_NotifyDeoptimizedHelper()
1693 __ b(ne, &unknown_state); in Generate_NotifyDeoptimizedHelper()
1694 __ add(sp, sp, Operand(2 * kPointerSize)); // Remove state. in Generate_NotifyDeoptimizedHelper()
1695 __ Ret(); in Generate_NotifyDeoptimizedHelper()
1697 __ bind(&unknown_state); in Generate_NotifyDeoptimizedHelper()
1698 __ stop("no cases left"); in Generate_NotifyDeoptimizedHelper()
1723 __ ldr(signature, FieldMemOperand(function_template_info, in CompatibleReceiverCheck()
1725 __ CompareRoot(signature, Heap::kUndefinedValueRootIndex); in CompatibleReceiverCheck()
1727 __ b(eq, &receiver_check_passed); in CompatibleReceiverCheck()
1730 __ ldr(map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in CompatibleReceiverCheck()
1732 __ bind(&prototype_loop_start); in CompatibleReceiverCheck()
1735 __ GetMapConstructor(constructor, map, ip, ip); in CompatibleReceiverCheck()
1736 __ cmp(ip, Operand(JS_FUNCTION_TYPE)); in CompatibleReceiverCheck()
1738 __ b(ne, &next_prototype); in CompatibleReceiverCheck()
1740 __ ldr(type, in CompatibleReceiverCheck()
1742 __ ldr(type, FieldMemOperand(type, SharedFunctionInfo::kFunctionDataOffset)); in CompatibleReceiverCheck()
1746 __ bind(&function_template_loop); in CompatibleReceiverCheck()
1749 __ cmp(signature, type); in CompatibleReceiverCheck()
1750 __ b(eq, &receiver_check_passed); in CompatibleReceiverCheck()
1754 __ JumpIfSmi(type, &next_prototype); in CompatibleReceiverCheck()
1755 __ CompareObjectType(type, ip, ip, FUNCTION_TEMPLATE_INFO_TYPE); in CompatibleReceiverCheck()
1758 __ ldr(type, in CompatibleReceiverCheck()
1761 __ b(&function_template_loop, eq); in CompatibleReceiverCheck()
1764 __ bind(&next_prototype); in CompatibleReceiverCheck()
1765 __ ldr(ip, FieldMemOperand(map, Map::kBitField3Offset)); in CompatibleReceiverCheck()
1766 __ tst(ip, Operand(Map::HasHiddenPrototype::kMask)); in CompatibleReceiverCheck()
1767 __ b(eq, receiver_check_failed); in CompatibleReceiverCheck()
1768 __ ldr(receiver, FieldMemOperand(map, Map::kPrototypeOffset)); in CompatibleReceiverCheck()
1769 __ ldr(map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in CompatibleReceiverCheck()
1771 __ b(&prototype_loop_start); in CompatibleReceiverCheck()
1773 __ bind(&receiver_check_passed); in CompatibleReceiverCheck()
1788 __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_HandleFastApiCall()
1789 __ ldr(r3, FieldMemOperand(r3, SharedFunctionInfo::kFunctionDataOffset)); in Generate_HandleFastApiCall()
1793 __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_HandleFastApiCall()
1798 __ ldr(r4, FieldMemOperand(r3, FunctionTemplateInfo::kCallCodeOffset)); in Generate_HandleFastApiCall()
1799 __ ldr(r4, FieldMemOperand(r4, CallHandlerInfo::kFastHandlerOffset)); in Generate_HandleFastApiCall()
1800 __ add(r4, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_HandleFastApiCall()
1801 __ Jump(r4); in Generate_HandleFastApiCall()
1804 __ bind(&receiver_check_failed); in Generate_HandleFastApiCall()
1806 __ add(r0, r0, Operand(1)); in Generate_HandleFastApiCall()
1807 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_HandleFastApiCall()
1808 __ TailCallRuntime(Runtime::kThrowIllegalInvocation); in Generate_HandleFastApiCall()
1815 __ ldr(r0, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); in Generate_OnStackReplacementHelper()
1816 __ ldr(r0, MemOperand(r0, JavaScriptFrameConstants::kFunctionOffset)); in Generate_OnStackReplacementHelper()
1818 __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); in Generate_OnStackReplacementHelper()
1824 __ push(r0); in Generate_OnStackReplacementHelper()
1825 __ CallRuntime(Runtime::kCompileForOnStackReplacement); in Generate_OnStackReplacementHelper()
1830 __ cmp(r0, Operand(Smi::kZero)); in Generate_OnStackReplacementHelper()
1831 __ b(ne, &skip); in Generate_OnStackReplacementHelper()
1832 __ Ret(); in Generate_OnStackReplacementHelper()
1834 __ bind(&skip); in Generate_OnStackReplacementHelper()
1839 __ LeaveFrame(StackFrame::STUB); in Generate_OnStackReplacementHelper()
1844 __ ldr(r1, FieldMemOperand(r0, Code::kDeoptimizationDataOffset)); in Generate_OnStackReplacementHelper()
1848 __ add(r0, r0, Operand(Code::kHeaderSize - kHeapObjectTag)); // Code start in Generate_OnStackReplacementHelper()
1851 __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r0); in Generate_OnStackReplacementHelper()
1856 __ ldr(r1, FieldMemOperand( in Generate_OnStackReplacementHelper()
1861 __ add(lr, r0, Operand::SmiUntag(r1)); in Generate_OnStackReplacementHelper()
1864 __ Ret(); in Generate_OnStackReplacementHelper()
1889 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeApply()
1890 __ mov(r3, r2); in Generate_FunctionPrototypeApply()
1891 __ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); // receiver in Generate_FunctionPrototypeApply()
1892 __ sub(r4, r0, Operand(1), SetCC); in Generate_FunctionPrototypeApply()
1893 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // thisArg in Generate_FunctionPrototypeApply()
1894 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_FunctionPrototypeApply()
1895 __ ldr(r3, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // argArray in Generate_FunctionPrototypeApply()
1896 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeApply()
1897 __ str(r2, MemOperand(sp, 0)); in Generate_FunctionPrototypeApply()
1898 __ mov(r0, r3); in Generate_FunctionPrototypeApply()
1909 __ JumpIfSmi(r1, &receiver_not_callable); in Generate_FunctionPrototypeApply()
1910 __ ldr(r4, FieldMemOperand(r1, HeapObject::kMapOffset)); in Generate_FunctionPrototypeApply()
1911 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_FunctionPrototypeApply()
1912 __ tst(r4, Operand(1 << Map::kIsCallable)); in Generate_FunctionPrototypeApply()
1913 __ b(eq, &receiver_not_callable); in Generate_FunctionPrototypeApply()
1917 __ JumpIfRoot(r0, Heap::kNullValueRootIndex, &no_arguments); in Generate_FunctionPrototypeApply()
1918 __ JumpIfRoot(r0, Heap::kUndefinedValueRootIndex, &no_arguments); in Generate_FunctionPrototypeApply()
1922 __ LoadRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeApply()
1923 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeApply()
1927 __ bind(&no_arguments); in Generate_FunctionPrototypeApply()
1929 __ mov(r0, Operand(0)); in Generate_FunctionPrototypeApply()
1930 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeApply()
1934 __ bind(&receiver_not_callable); in Generate_FunctionPrototypeApply()
1936 __ str(r1, MemOperand(sp, 0)); in Generate_FunctionPrototypeApply()
1937 __ TailCallRuntime(Runtime::kThrowApplyNonFunction); in Generate_FunctionPrototypeApply()
1947 __ cmp(r0, Operand::Zero()); in Generate_FunctionPrototypeCall()
1948 __ b(ne, &done); in Generate_FunctionPrototypeCall()
1949 __ PushRoot(Heap::kUndefinedValueRootIndex); in Generate_FunctionPrototypeCall()
1950 __ add(r0, r0, Operand(1)); in Generate_FunctionPrototypeCall()
1951 __ bind(&done); in Generate_FunctionPrototypeCall()
1956 __ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeCall()
1966 __ add(r2, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_FunctionPrototypeCall()
1968 __ bind(&loop); in Generate_FunctionPrototypeCall()
1969 __ ldr(ip, MemOperand(r2, -kPointerSize)); in Generate_FunctionPrototypeCall()
1970 __ str(ip, MemOperand(r2)); in Generate_FunctionPrototypeCall()
1971 __ sub(r2, r2, Operand(kPointerSize)); in Generate_FunctionPrototypeCall()
1972 __ cmp(r2, sp); in Generate_FunctionPrototypeCall()
1973 __ b(ne, &loop); in Generate_FunctionPrototypeCall()
1976 __ sub(r0, r0, Operand(1)); in Generate_FunctionPrototypeCall()
1977 __ pop(); in Generate_FunctionPrototypeCall()
1981 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET); in Generate_FunctionPrototypeCall()
1997 __ LoadRoot(r1, Heap::kUndefinedValueRootIndex); in Generate_ReflectApply()
1998 __ mov(r2, r1); in Generate_ReflectApply()
1999 __ mov(r3, r1); in Generate_ReflectApply()
2000 __ sub(r4, r0, Operand(1), SetCC); in Generate_ReflectApply()
2001 __ ldr(r1, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // target in Generate_ReflectApply()
2002 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectApply()
2003 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // thisArgument in Generate_ReflectApply()
2004 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectApply()
2005 __ ldr(r3, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // argumentsList in Generate_ReflectApply()
2006 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_ReflectApply()
2007 __ str(r2, MemOperand(sp, 0)); in Generate_ReflectApply()
2008 __ mov(r0, r3); in Generate_ReflectApply()
2019 __ JumpIfSmi(r1, &target_not_callable); in Generate_ReflectApply()
2020 __ ldr(r4, FieldMemOperand(r1, HeapObject::kMapOffset)); in Generate_ReflectApply()
2021 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_ReflectApply()
2022 __ tst(r4, Operand(1 << Map::kIsCallable)); in Generate_ReflectApply()
2023 __ b(eq, &target_not_callable); in Generate_ReflectApply()
2027 __ LoadRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_ReflectApply()
2028 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_ReflectApply()
2031 __ bind(&target_not_callable); in Generate_ReflectApply()
2033 __ str(r1, MemOperand(sp, 0)); in Generate_ReflectApply()
2034 __ TailCallRuntime(Runtime::kThrowApplyNonFunction); in Generate_ReflectApply()
2052 __ LoadRoot(r1, Heap::kUndefinedValueRootIndex); in Generate_ReflectConstruct()
2053 __ mov(r2, r1); in Generate_ReflectConstruct()
2054 __ str(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2)); // receiver in Generate_ReflectConstruct()
2055 __ sub(r4, r0, Operand(1), SetCC); in Generate_ReflectConstruct()
2056 __ ldr(r1, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // target in Generate_ReflectConstruct()
2057 __ mov(r3, r1); // new.target defaults to target in Generate_ReflectConstruct()
2058 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectConstruct()
2059 __ ldr(r2, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // argumentsList in Generate_ReflectConstruct()
2060 __ sub(r4, r4, Operand(1), SetCC, ge); in Generate_ReflectConstruct()
2061 __ ldr(r3, MemOperand(sp, r4, LSL, kPointerSizeLog2), ge); // new.target in Generate_ReflectConstruct()
2062 __ add(sp, sp, Operand(r0, LSL, kPointerSizeLog2)); in Generate_ReflectConstruct()
2063 __ mov(r0, r2); in Generate_ReflectConstruct()
2075 __ JumpIfSmi(r1, &target_not_constructor); in Generate_ReflectConstruct()
2076 __ ldr(r4, FieldMemOperand(r1, HeapObject::kMapOffset)); in Generate_ReflectConstruct()
2077 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_ReflectConstruct()
2078 __ tst(r4, Operand(1 << Map::kIsConstructor)); in Generate_ReflectConstruct()
2079 __ b(eq, &target_not_constructor); in Generate_ReflectConstruct()
2083 __ JumpIfSmi(r3, &new_target_not_constructor); in Generate_ReflectConstruct()
2084 __ ldr(r4, FieldMemOperand(r3, HeapObject::kMapOffset)); in Generate_ReflectConstruct()
2085 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_ReflectConstruct()
2086 __ tst(r4, Operand(1 << Map::kIsConstructor)); in Generate_ReflectConstruct()
2087 __ b(eq, &new_target_not_constructor); in Generate_ReflectConstruct()
2090 __ Jump(masm->isolate()->builtins()->Apply(), RelocInfo::CODE_TARGET); in Generate_ReflectConstruct()
2093 __ bind(&target_not_constructor); in Generate_ReflectConstruct()
2095 __ str(r1, MemOperand(sp, 0)); in Generate_ReflectConstruct()
2096 __ TailCallRuntime(Runtime::kThrowNotConstructor); in Generate_ReflectConstruct()
2100 __ bind(&new_target_not_constructor); in Generate_ReflectConstruct()
2102 __ str(r3, MemOperand(sp, 0)); in Generate_ReflectConstruct()
2103 __ TailCallRuntime(Runtime::kThrowNotConstructor); in Generate_ReflectConstruct()
2108 __ SmiTag(r0); in EnterArgumentsAdaptorFrame()
2109 __ mov(r4, Operand(StackFrame::TypeToMarker(StackFrame::ARGUMENTS_ADAPTOR))); in EnterArgumentsAdaptorFrame()
2110 __ stm(db_w, sp, r0.bit() | r1.bit() | r4.bit() | in EnterArgumentsAdaptorFrame()
2113 __ add(fp, sp, in EnterArgumentsAdaptorFrame()
2123 __ ldr(r1, MemOperand(fp, -(StandardFrameConstants::kFixedFrameSizeFromFp + in LeaveArgumentsAdaptorFrame()
2126 __ LeaveFrame(StackFrame::ARGUMENTS_ADAPTOR); in LeaveArgumentsAdaptorFrame()
2127 __ add(sp, sp, Operand::PointerOffsetFromSmiKey(r1)); in LeaveArgumentsAdaptorFrame()
2128 __ add(sp, sp, Operand(kPointerSize)); // adjust for receiver in LeaveArgumentsAdaptorFrame()
2144 __ JumpIfSmi(r0, &create_runtime); in Generate_Apply()
2147 __ ldr(r2, FieldMemOperand(r0, HeapObject::kMapOffset)); in Generate_Apply()
2150 __ ldr(r4, NativeContextMemOperand()); in Generate_Apply()
2153 __ ldr(ip, ContextMemOperand(r4, Context::SLOPPY_ARGUMENTS_MAP_INDEX)); in Generate_Apply()
2154 __ cmp(ip, r2); in Generate_Apply()
2155 __ b(eq, &create_arguments); in Generate_Apply()
2156 __ ldr(ip, ContextMemOperand(r4, Context::STRICT_ARGUMENTS_MAP_INDEX)); in Generate_Apply()
2157 __ cmp(ip, r2); in Generate_Apply()
2158 __ b(eq, &create_arguments); in Generate_Apply()
2161 __ CompareInstanceType(r2, ip, JS_ARRAY_TYPE); in Generate_Apply()
2162 __ b(eq, &create_array); in Generate_Apply()
2165 __ bind(&create_runtime); in Generate_Apply()
2168 __ Push(r1, r3, r0); in Generate_Apply()
2169 __ CallRuntime(Runtime::kCreateListFromArrayLike); in Generate_Apply()
2170 __ Pop(r1, r3); in Generate_Apply()
2171 __ ldr(r2, FieldMemOperand(r0, FixedArray::kLengthOffset)); in Generate_Apply()
2172 __ SmiUntag(r2); in Generate_Apply()
2174 __ jmp(&done_create); in Generate_Apply()
2177 __ bind(&create_arguments); in Generate_Apply()
2178 __ ldr(r2, FieldMemOperand(r0, JSArgumentsObject::kLengthOffset)); in Generate_Apply()
2179 __ ldr(r4, FieldMemOperand(r0, JSObject::kElementsOffset)); in Generate_Apply()
2180 __ ldr(ip, FieldMemOperand(r4, FixedArray::kLengthOffset)); in Generate_Apply()
2181 __ cmp(r2, ip); in Generate_Apply()
2182 __ b(ne, &create_runtime); in Generate_Apply()
2183 __ SmiUntag(r2); in Generate_Apply()
2184 __ mov(r0, r4); in Generate_Apply()
2185 __ b(&done_create); in Generate_Apply()
2189 __ bind(&create_holey_array); in Generate_Apply()
2190 __ ldr(r2, FieldMemOperand(r2, Map::kPrototypeOffset)); in Generate_Apply()
2191 __ ldr(r4, ContextMemOperand(r4, Context::INITIAL_ARRAY_PROTOTYPE_INDEX)); in Generate_Apply()
2192 __ cmp(r2, r4); in Generate_Apply()
2193 __ b(ne, &create_runtime); in Generate_Apply()
2194 __ LoadRoot(r4, Heap::kArrayProtectorRootIndex); in Generate_Apply()
2195 __ ldr(r2, FieldMemOperand(r4, PropertyCell::kValueOffset)); in Generate_Apply()
2196 __ cmp(r2, Operand(Smi::FromInt(Isolate::kProtectorValid))); in Generate_Apply()
2197 __ b(ne, &create_runtime); in Generate_Apply()
2198 __ ldr(r2, FieldMemOperand(r0, JSArray::kLengthOffset)); in Generate_Apply()
2199 __ ldr(r0, FieldMemOperand(r0, JSArray::kElementsOffset)); in Generate_Apply()
2200 __ SmiUntag(r2); in Generate_Apply()
2201 __ b(&done_create); in Generate_Apply()
2205 __ bind(&create_array); in Generate_Apply()
2206 __ ldr(r5, FieldMemOperand(r2, Map::kBitField2Offset)); in Generate_Apply()
2207 __ DecodeField<Map::ElementsKindBits>(r5); in Generate_Apply()
2212 __ cmp(r5, Operand(FAST_HOLEY_ELEMENTS)); in Generate_Apply()
2213 __ b(hi, &create_runtime); in Generate_Apply()
2215 __ tst(r5, Operand(1)); in Generate_Apply()
2216 __ b(ne, &create_holey_array); in Generate_Apply()
2218 __ ldr(r2, FieldMemOperand(r0, JSArray::kLengthOffset)); in Generate_Apply()
2219 __ ldr(r0, FieldMemOperand(r0, JSArray::kElementsOffset)); in Generate_Apply()
2220 __ SmiUntag(r2); in Generate_Apply()
2222 __ bind(&done_create); in Generate_Apply()
2230 __ LoadRoot(ip, Heap::kRealStackLimitRootIndex); in Generate_Apply()
2233 __ sub(ip, sp, ip); in Generate_Apply()
2235 __ cmp(ip, Operand(r2, LSL, kPointerSizeLog2)); in Generate_Apply()
2236 __ b(gt, &done); // Signed comparison. in Generate_Apply()
2237 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_Apply()
2238 __ bind(&done); in Generate_Apply()
2251 __ mov(r4, Operand(0)); in Generate_Apply()
2252 __ LoadRoot(r5, Heap::kTheHoleValueRootIndex); in Generate_Apply()
2253 __ LoadRoot(r6, Heap::kUndefinedValueRootIndex); in Generate_Apply()
2255 __ bind(&loop); in Generate_Apply()
2256 __ cmp(r4, r2); in Generate_Apply()
2257 __ b(eq, &done); in Generate_Apply()
2258 __ add(ip, r0, Operand(r4, LSL, kPointerSizeLog2)); in Generate_Apply()
2259 __ ldr(ip, FieldMemOperand(ip, FixedArray::kHeaderSize)); in Generate_Apply()
2260 __ cmp(r5, ip); in Generate_Apply()
2261 __ mov(ip, r6, LeaveCC, eq); in Generate_Apply()
2262 __ Push(ip); in Generate_Apply()
2263 __ add(r4, r4, Operand(1)); in Generate_Apply()
2264 __ b(&loop); in Generate_Apply()
2265 __ bind(&done); in Generate_Apply()
2266 __ Move(r0, r4); in Generate_Apply()
2271 __ CompareRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_Apply()
2272 __ Jump(masm->isolate()->builtins()->Call(), RelocInfo::CODE_TARGET, eq); in Generate_Apply()
2273 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_Apply()
2289 __ ldr(r3, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); in Generate_CallForwardVarargs()
2290 __ ldr(ip, MemOperand(r3, CommonFrameConstants::kContextOrFrameTypeOffset)); in Generate_CallForwardVarargs()
2291 __ cmp(ip, Operand(StackFrame::TypeToMarker(StackFrame::ARGUMENTS_ADAPTOR))); in Generate_CallForwardVarargs()
2292 __ b(eq, &arguments_adaptor); in Generate_CallForwardVarargs()
2294 __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); in Generate_CallForwardVarargs()
2295 __ ldr(r0, FieldMemOperand(r0, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallForwardVarargs()
2296 __ ldr(r0, FieldMemOperand( in Generate_CallForwardVarargs()
2298 __ mov(r3, fp); in Generate_CallForwardVarargs()
2300 __ b(&arguments_done); in Generate_CallForwardVarargs()
2301 __ bind(&arguments_adaptor); in Generate_CallForwardVarargs()
2304 __ ldr(r0, MemOperand(r3, ArgumentsAdaptorFrameConstants::kLengthOffset)); in Generate_CallForwardVarargs()
2306 __ bind(&arguments_done); in Generate_CallForwardVarargs()
2309 __ SmiUntag(r0); in Generate_CallForwardVarargs()
2310 __ sub(r0, r0, r2, SetCC); in Generate_CallForwardVarargs()
2311 __ b(le, &stack_empty); in Generate_CallForwardVarargs()
2319 __ add(r3, r3, Operand(kPointerSize)); in Generate_CallForwardVarargs()
2320 __ mov(r2, r0); in Generate_CallForwardVarargs()
2321 __ bind(&loop); in Generate_CallForwardVarargs()
2323 __ ldr(ip, MemOperand(r3, r2, LSL, kPointerSizeLog2)); in Generate_CallForwardVarargs()
2324 __ push(ip); in Generate_CallForwardVarargs()
2325 __ sub(r2, r2, Operand(1), SetCC); in Generate_CallForwardVarargs()
2326 __ b(ne, &loop); in Generate_CallForwardVarargs()
2330 __ b(&stack_done); in Generate_CallForwardVarargs()
2331 __ bind(&stack_overflow); in Generate_CallForwardVarargs()
2332 __ TailCallRuntime(Runtime::kThrowStackOverflow); in Generate_CallForwardVarargs()
2333 __ bind(&stack_empty); in Generate_CallForwardVarargs()
2336 __ mov(r0, Operand(0)); in Generate_CallForwardVarargs()
2338 __ bind(&stack_done); in Generate_CallForwardVarargs()
2340 __ Jump(code, RelocInfo::CODE_TARGET); in Generate_CallForwardVarargs()
2383 __ mov(scratch1, Operand(is_tail_call_elimination_enabled)); in PrepareForTailCall()
2384 __ ldrb(scratch1, MemOperand(scratch1)); in PrepareForTailCall()
2385 __ cmp(scratch1, Operand(0)); in PrepareForTailCall()
2386 __ b(eq, &done); in PrepareForTailCall()
2391 __ ldr(scratch3, in PrepareForTailCall()
2393 __ cmp(scratch3, Operand(StackFrame::TypeToMarker(StackFrame::STUB))); in PrepareForTailCall()
2394 __ b(ne, &no_interpreter_frame); in PrepareForTailCall()
2395 __ ldr(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); in PrepareForTailCall()
2396 __ bind(&no_interpreter_frame); in PrepareForTailCall()
2402 __ ldr(scratch2, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); in PrepareForTailCall()
2403 __ ldr(scratch3, in PrepareForTailCall()
2405 __ cmp(scratch3, in PrepareForTailCall()
2407 __ b(ne, &no_arguments_adaptor); in PrepareForTailCall()
2410 __ mov(fp, scratch2); in PrepareForTailCall()
2411 __ ldr(caller_args_count_reg, in PrepareForTailCall()
2413 __ SmiUntag(caller_args_count_reg); in PrepareForTailCall()
2414 __ b(&formal_parameter_count_loaded); in PrepareForTailCall()
2416 __ bind(&no_arguments_adaptor); in PrepareForTailCall()
2418 __ ldr(scratch1, in PrepareForTailCall()
2420 __ ldr(scratch1, in PrepareForTailCall()
2422 __ ldr(caller_args_count_reg, in PrepareForTailCall()
2425 __ SmiUntag(caller_args_count_reg); in PrepareForTailCall()
2427 __ bind(&formal_parameter_count_loaded); in PrepareForTailCall()
2430 __ PrepareForTailCall(callee_args_count, caller_args_count_reg, scratch2, in PrepareForTailCall()
2432 __ bind(&done); in PrepareForTailCall()
2444 __ AssertFunction(r1); in Generate_CallFunction()
2449 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallFunction()
2450 __ ldrb(r3, FieldMemOperand(r2, SharedFunctionInfo::kFunctionKindByteOffset)); in Generate_CallFunction()
2451 __ tst(r3, Operand(SharedFunctionInfo::kClassConstructorBitsWithinByte)); in Generate_CallFunction()
2452 __ b(ne, &class_constructor); in Generate_CallFunction()
2459 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); in Generate_CallFunction()
2462 __ ldrb(r3, FieldMemOperand(r2, SharedFunctionInfo::kNativeByteOffset)); in Generate_CallFunction()
2463 __ tst(r3, Operand((1 << SharedFunctionInfo::kNativeBitWithinByte) | in Generate_CallFunction()
2465 __ b(ne, &done_convert); in Generate_CallFunction()
2476 __ LoadGlobalProxy(r3); in Generate_CallFunction()
2479 __ ldr(r3, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_CallFunction()
2480 __ JumpIfSmi(r3, &convert_to_object); in Generate_CallFunction()
2482 __ CompareObjectType(r3, r4, r4, FIRST_JS_RECEIVER_TYPE); in Generate_CallFunction()
2483 __ b(hs, &done_convert); in Generate_CallFunction()
2486 __ JumpIfRoot(r3, Heap::kUndefinedValueRootIndex, in Generate_CallFunction()
2488 __ JumpIfNotRoot(r3, Heap::kNullValueRootIndex, &convert_to_object); in Generate_CallFunction()
2489 __ bind(&convert_global_proxy); in Generate_CallFunction()
2492 __ LoadGlobalProxy(r3); in Generate_CallFunction()
2494 __ b(&convert_receiver); in Generate_CallFunction()
2496 __ bind(&convert_to_object); in Generate_CallFunction()
2502 __ SmiTag(r0); in Generate_CallFunction()
2503 __ Push(r0, r1); in Generate_CallFunction()
2504 __ mov(r0, r3); in Generate_CallFunction()
2505 __ Push(cp); in Generate_CallFunction()
2506 __ Call(masm->isolate()->builtins()->ToObject(), in Generate_CallFunction()
2508 __ Pop(cp); in Generate_CallFunction()
2509 __ mov(r3, r0); in Generate_CallFunction()
2510 __ Pop(r0, r1); in Generate_CallFunction()
2511 __ SmiUntag(r0); in Generate_CallFunction()
2513 __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_CallFunction()
2514 __ bind(&convert_receiver); in Generate_CallFunction()
2516 __ str(r3, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_CallFunction()
2518 __ bind(&done_convert); in Generate_CallFunction()
2531 __ ldr(r2, in Generate_CallFunction()
2533 __ SmiUntag(r2); in Generate_CallFunction()
2536 __ InvokeFunctionCode(r1, no_reg, expected, actual, JUMP_FUNCTION, in Generate_CallFunction()
2540 __ bind(&class_constructor); in Generate_CallFunction()
2543 __ push(r1); in Generate_CallFunction()
2544 __ CallRuntime(Runtime::kThrowConstructorNonCallableError); in Generate_CallFunction()
2559 __ ldr(r2, FieldMemOperand(r1, JSBoundFunction::kBoundArgumentsOffset)); in Generate_PushBoundArguments()
2560 __ ldr(r4, FieldMemOperand(r2, FixedArray::kLengthOffset)); in Generate_PushBoundArguments()
2561 __ SmiUntag(r4); in Generate_PushBoundArguments()
2562 __ cmp(r4, Operand(0)); in Generate_PushBoundArguments()
2563 __ b(eq, &no_bound_arguments); in Generate_PushBoundArguments()
2576 __ sub(sp, sp, Operand(r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2580 __ CompareRoot(sp, Heap::kRealStackLimitRootIndex); in Generate_PushBoundArguments()
2581 __ b(gt, &done); // Signed comparison. in Generate_PushBoundArguments()
2583 __ add(sp, sp, Operand(r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2586 __ EnterFrame(StackFrame::INTERNAL); in Generate_PushBoundArguments()
2587 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_PushBoundArguments()
2589 __ bind(&done); in Generate_PushBoundArguments()
2595 __ mov(r5, Operand(0)); in Generate_PushBoundArguments()
2596 __ bind(&loop); in Generate_PushBoundArguments()
2597 __ cmp(r5, r0); in Generate_PushBoundArguments()
2598 __ b(gt, &done_loop); in Generate_PushBoundArguments()
2599 __ ldr(ip, MemOperand(sp, r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2600 __ str(ip, MemOperand(sp, r5, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2601 __ add(r4, r4, Operand(1)); in Generate_PushBoundArguments()
2602 __ add(r5, r5, Operand(1)); in Generate_PushBoundArguments()
2603 __ b(&loop); in Generate_PushBoundArguments()
2604 __ bind(&done_loop); in Generate_PushBoundArguments()
2610 __ ldr(r4, FieldMemOperand(r2, FixedArray::kLengthOffset)); in Generate_PushBoundArguments()
2611 __ SmiUntag(r4); in Generate_PushBoundArguments()
2612 __ add(r2, r2, Operand(FixedArray::kHeaderSize - kHeapObjectTag)); in Generate_PushBoundArguments()
2613 __ bind(&loop); in Generate_PushBoundArguments()
2614 __ sub(r4, r4, Operand(1), SetCC); in Generate_PushBoundArguments()
2615 __ ldr(ip, MemOperand(r2, r4, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2616 __ str(ip, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_PushBoundArguments()
2617 __ add(r0, r0, Operand(1)); in Generate_PushBoundArguments()
2618 __ b(gt, &loop); in Generate_PushBoundArguments()
2621 __ bind(&no_bound_arguments); in Generate_PushBoundArguments()
2633 __ AssertBoundFunction(r1); in Generate_CallBoundFunctionImpl()
2640 __ ldr(ip, FieldMemOperand(r1, JSBoundFunction::kBoundThisOffset)); in Generate_CallBoundFunctionImpl()
2641 __ str(ip, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_CallBoundFunctionImpl()
2647 __ ldr(r1, FieldMemOperand(r1, JSBoundFunction::kBoundTargetFunctionOffset)); in Generate_CallBoundFunctionImpl()
2648 __ mov(ip, Operand(ExternalReference(Builtins::kCall_ReceiverIsAny, in Generate_CallBoundFunctionImpl()
2650 __ ldr(ip, MemOperand(ip)); in Generate_CallBoundFunctionImpl()
2651 __ add(pc, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_CallBoundFunctionImpl()
2663 __ JumpIfSmi(r1, &non_callable); in Generate_Call()
2664 __ bind(&non_smi); in Generate_Call()
2665 __ CompareObjectType(r1, r4, r5, JS_FUNCTION_TYPE); in Generate_Call()
2666 __ Jump(masm->isolate()->builtins()->CallFunction(mode, tail_call_mode), in Generate_Call()
2668 __ cmp(r5, Operand(JS_BOUND_FUNCTION_TYPE)); in Generate_Call()
2669 __ Jump(masm->isolate()->builtins()->CallBoundFunction(tail_call_mode), in Generate_Call()
2673 __ ldrb(r4, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_Call()
2674 __ tst(r4, Operand(1 << Map::kIsCallable)); in Generate_Call()
2675 __ b(eq, &non_callable); in Generate_Call()
2677 __ cmp(r5, Operand(JS_PROXY_TYPE)); in Generate_Call()
2678 __ b(ne, &non_function); in Generate_Call()
2686 __ Push(r1); in Generate_Call()
2689 __ add(r0, r0, Operand(2)); in Generate_Call()
2691 __ JumpToExternalReference( in Generate_Call()
2696 __ bind(&non_function); in Generate_Call()
2698 __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_Call()
2700 __ LoadNativeContextSlot(Context::CALL_AS_FUNCTION_DELEGATE_INDEX, r1); in Generate_Call()
2701 __ Jump(masm->isolate()->builtins()->CallFunction( in Generate_Call()
2706 __ bind(&non_callable); in Generate_Call()
2709 __ Push(r1); in Generate_Call()
2710 __ CallRuntime(Runtime::kThrowCalledNonCallable); in Generate_Call()
2728 __ ldr(spread, MemOperand(sp, 0)); in CheckSpreadAndPushToStack()
2729 __ JumpIfSmi(spread, &runtime_call); in CheckSpreadAndPushToStack()
2730 __ ldr(spread_map, FieldMemOperand(spread, HeapObject::kMapOffset)); in CheckSpreadAndPushToStack()
2733 __ CompareInstanceType(spread_map, scratch, JS_ARRAY_TYPE); in CheckSpreadAndPushToStack()
2734 __ b(ne, &runtime_call); in CheckSpreadAndPushToStack()
2737 __ ldr(scratch, FieldMemOperand(spread_map, Map::kPrototypeOffset)); in CheckSpreadAndPushToStack()
2738 __ ldr(scratch2, NativeContextMemOperand()); in CheckSpreadAndPushToStack()
2739 __ ldr(scratch2, in CheckSpreadAndPushToStack()
2741 __ cmp(scratch, scratch2); in CheckSpreadAndPushToStack()
2742 __ b(ne, &runtime_call); in CheckSpreadAndPushToStack()
2746 __ LoadRoot(scratch, Heap::kArrayIteratorProtectorRootIndex); in CheckSpreadAndPushToStack()
2747 __ ldr(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset)); in CheckSpreadAndPushToStack()
2748 __ cmp(scratch, Operand(Smi::FromInt(Isolate::kProtectorValid))); in CheckSpreadAndPushToStack()
2749 __ b(ne, &runtime_call); in CheckSpreadAndPushToStack()
2752 __ ldr(scratch2, NativeContextMemOperand()); in CheckSpreadAndPushToStack()
2753 __ ldr(scratch, in CheckSpreadAndPushToStack()
2756 __ ldr(scratch, FieldMemOperand(scratch, HeapObject::kMapOffset)); in CheckSpreadAndPushToStack()
2757 __ ldr(scratch2, in CheckSpreadAndPushToStack()
2760 __ cmp(scratch, scratch2); in CheckSpreadAndPushToStack()
2761 __ b(ne, &runtime_call); in CheckSpreadAndPushToStack()
2766 __ ldr(scratch, FieldMemOperand(spread_map, Map::kBitField2Offset)); in CheckSpreadAndPushToStack()
2767 __ DecodeField<Map::ElementsKindBits>(scratch); in CheckSpreadAndPushToStack()
2768 __ cmp(scratch, Operand(FAST_HOLEY_ELEMENTS)); in CheckSpreadAndPushToStack()
2769 __ b(hi, &runtime_call); in CheckSpreadAndPushToStack()
2771 __ cmp(scratch, Operand(FAST_SMI_ELEMENTS)); in CheckSpreadAndPushToStack()
2772 __ b(eq, &no_protector_check); in CheckSpreadAndPushToStack()
2773 __ cmp(scratch, Operand(FAST_ELEMENTS)); in CheckSpreadAndPushToStack()
2774 __ b(eq, &no_protector_check); in CheckSpreadAndPushToStack()
2776 __ LoadRoot(scratch, Heap::kArrayProtectorRootIndex); in CheckSpreadAndPushToStack()
2777 __ ldr(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset)); in CheckSpreadAndPushToStack()
2778 __ cmp(scratch, Operand(Smi::FromInt(Isolate::kProtectorValid))); in CheckSpreadAndPushToStack()
2779 __ b(ne, &runtime_call); in CheckSpreadAndPushToStack()
2781 __ bind(&no_protector_check); in CheckSpreadAndPushToStack()
2783 __ ldr(spread_len, FieldMemOperand(spread, JSArray::kLengthOffset)); in CheckSpreadAndPushToStack()
2784 __ SmiUntag(spread_len); in CheckSpreadAndPushToStack()
2785 __ ldr(spread, FieldMemOperand(spread, JSArray::kElementsOffset)); in CheckSpreadAndPushToStack()
2786 __ b(&push_args); in CheckSpreadAndPushToStack()
2788 __ bind(&runtime_call); in CheckSpreadAndPushToStack()
2792 __ SmiTag(argc); in CheckSpreadAndPushToStack()
2793 __ Push(constructor); in CheckSpreadAndPushToStack()
2794 __ Push(new_target); in CheckSpreadAndPushToStack()
2795 __ Push(argc); in CheckSpreadAndPushToStack()
2796 __ Push(spread); in CheckSpreadAndPushToStack()
2797 __ CallRuntime(Runtime::kSpreadIterableFixed); in CheckSpreadAndPushToStack()
2798 __ mov(spread, r0); in CheckSpreadAndPushToStack()
2799 __ Pop(argc); in CheckSpreadAndPushToStack()
2800 __ Pop(new_target); in CheckSpreadAndPushToStack()
2801 __ Pop(constructor); in CheckSpreadAndPushToStack()
2802 __ SmiUntag(argc); in CheckSpreadAndPushToStack()
2807 __ ldr(spread_len, FieldMemOperand(spread, FixedArray::kLengthOffset)); in CheckSpreadAndPushToStack()
2808 __ SmiUntag(spread_len); in CheckSpreadAndPushToStack()
2810 __ bind(&push_args); in CheckSpreadAndPushToStack()
2812 __ add(argc, argc, spread_len); in CheckSpreadAndPushToStack()
2813 __ sub(argc, argc, Operand(1)); in CheckSpreadAndPushToStack()
2816 __ Pop(scratch); in CheckSpreadAndPushToStack()
2824 __ LoadRoot(scratch, Heap::kRealStackLimitRootIndex); in CheckSpreadAndPushToStack()
2827 __ sub(scratch, sp, scratch); in CheckSpreadAndPushToStack()
2829 __ cmp(scratch, Operand(spread_len, LSL, kPointerSizeLog2)); in CheckSpreadAndPushToStack()
2830 __ b(gt, &done); // Signed comparison. in CheckSpreadAndPushToStack()
2831 __ TailCallRuntime(Runtime::kThrowStackOverflow); in CheckSpreadAndPushToStack()
2832 __ bind(&done); in CheckSpreadAndPushToStack()
2837 __ mov(scratch, Operand(0)); in CheckSpreadAndPushToStack()
2839 __ bind(&loop); in CheckSpreadAndPushToStack()
2840 __ cmp(scratch, spread_len); in CheckSpreadAndPushToStack()
2841 __ b(eq, &done); in CheckSpreadAndPushToStack()
2842 __ add(scratch2, spread, Operand(scratch, LSL, kPointerSizeLog2)); in CheckSpreadAndPushToStack()
2843 __ ldr(scratch2, FieldMemOperand(scratch2, FixedArray::kHeaderSize)); in CheckSpreadAndPushToStack()
2844 __ JumpIfNotRoot(scratch2, Heap::kTheHoleValueRootIndex, &push); in CheckSpreadAndPushToStack()
2845 __ LoadRoot(scratch2, Heap::kUndefinedValueRootIndex); in CheckSpreadAndPushToStack()
2846 __ bind(&push); in CheckSpreadAndPushToStack()
2847 __ Push(scratch2); in CheckSpreadAndPushToStack()
2848 __ add(scratch, scratch, Operand(1)); in CheckSpreadAndPushToStack()
2849 __ b(&loop); in CheckSpreadAndPushToStack()
2850 __ bind(&done); in CheckSpreadAndPushToStack()
2862 __ LoadRoot(r3, Heap::kUndefinedValueRootIndex); in Generate_CallWithSpread()
2864 __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny, in Generate_CallWithSpread()
2876 __ AssertFunction(r1); in Generate_ConstructFunction()
2880 __ LoadRoot(r2, Heap::kUndefinedValueRootIndex); in Generate_ConstructFunction()
2884 __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); in Generate_ConstructFunction()
2885 __ ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kConstructStubOffset)); in Generate_ConstructFunction()
2886 __ add(pc, r4, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_ConstructFunction()
2896 __ AssertBoundFunction(r1); in Generate_ConstructBoundFunction()
2902 __ cmp(r1, r3); in Generate_ConstructBoundFunction()
2903 __ ldr(r3, FieldMemOperand(r1, JSBoundFunction::kBoundTargetFunctionOffset), in Generate_ConstructBoundFunction()
2907 __ ldr(r1, FieldMemOperand(r1, JSBoundFunction::kBoundTargetFunctionOffset)); in Generate_ConstructBoundFunction()
2908 __ mov(ip, Operand(ExternalReference(Builtins::kConstruct, masm->isolate()))); in Generate_ConstructBoundFunction()
2909 __ ldr(ip, MemOperand(ip)); in Generate_ConstructBoundFunction()
2910 __ add(pc, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); in Generate_ConstructBoundFunction()
2923 __ Push(r1); in Generate_ConstructProxy()
2924 __ Push(r3); in Generate_ConstructProxy()
2926 __ add(r0, r0, Operand(3)); in Generate_ConstructProxy()
2928 __ JumpToExternalReference( in Generate_ConstructProxy()
2943 __ JumpIfSmi(r1, &non_constructor); in Generate_Construct()
2946 __ CompareObjectType(r1, r4, r5, JS_FUNCTION_TYPE); in Generate_Construct()
2947 __ Jump(masm->isolate()->builtins()->ConstructFunction(), in Generate_Construct()
2951 __ ldrb(r2, FieldMemOperand(r4, Map::kBitFieldOffset)); in Generate_Construct()
2952 __ tst(r2, Operand(1 << Map::kIsConstructor)); in Generate_Construct()
2953 __ b(eq, &non_constructor); in Generate_Construct()
2957 __ cmp(r5, Operand(JS_BOUND_FUNCTION_TYPE)); in Generate_Construct()
2958 __ Jump(masm->isolate()->builtins()->ConstructBoundFunction(), in Generate_Construct()
2962 __ cmp(r5, Operand(JS_PROXY_TYPE)); in Generate_Construct()
2963 __ Jump(masm->isolate()->builtins()->ConstructProxy(), RelocInfo::CODE_TARGET, in Generate_Construct()
2969 __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); in Generate_Construct()
2971 __ LoadNativeContextSlot(Context::CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, r1); in Generate_Construct()
2972 __ Jump(masm->isolate()->builtins()->CallFunction(), in Generate_Construct()
2978 __ bind(&non_constructor); in Generate_Construct()
2979 __ Jump(masm->isolate()->builtins()->ConstructedNonConstructable(), in Generate_Construct()
2993 __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET); in Generate_ConstructWithSpread()
3002 __ SmiTag(r1); in Generate_AllocateInNewSpace()
3003 __ Push(r1); in Generate_AllocateInNewSpace()
3004 __ Move(cp, Smi::kZero); in Generate_AllocateInNewSpace()
3005 __ TailCallRuntime(Runtime::kAllocateInNewSpace); in Generate_AllocateInNewSpace()
3014 __ SmiTag(r1); in Generate_AllocateInOldSpace()
3015 __ Move(r2, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE))); in Generate_AllocateInOldSpace()
3016 __ Push(r1, r2); in Generate_AllocateInOldSpace()
3017 __ Move(cp, Smi::kZero); in Generate_AllocateInOldSpace()
3018 __ TailCallRuntime(Runtime::kAllocateInTargetSpace); in Generate_AllocateInOldSpace()
3027 __ Push(r1); in Generate_Abort()
3028 __ Move(cp, Smi::kZero); in Generate_Abort()
3029 __ TailCallRuntime(Runtime::kAbort); in Generate_Abort()
3043 __ cmp(r0, r2); in Generate_ArgumentsAdaptorTrampoline()
3044 __ b(lt, &too_few); in Generate_ArgumentsAdaptorTrampoline()
3045 __ cmp(r2, Operand(SharedFunctionInfo::kDontAdaptArgumentsSentinel)); in Generate_ArgumentsAdaptorTrampoline()
3046 __ b(eq, &dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
3049 __ bind(&enough); in Generate_ArgumentsAdaptorTrampoline()
3058 __ add(r0, fp, Operand::PointerOffsetFromSmiKey(r0)); in Generate_ArgumentsAdaptorTrampoline()
3060 __ add(r0, r0, Operand(2 * kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
3061 __ sub(r4, r0, Operand(r2, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
3071 __ bind(&copy); in Generate_ArgumentsAdaptorTrampoline()
3072 __ ldr(ip, MemOperand(r0, 0)); in Generate_ArgumentsAdaptorTrampoline()
3073 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
3074 __ cmp(r0, r4); // Compare before moving to next argument. in Generate_ArgumentsAdaptorTrampoline()
3075 __ sub(r0, r0, Operand(kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
3076 __ b(ne, &copy); in Generate_ArgumentsAdaptorTrampoline()
3078 __ b(&invoke); in Generate_ArgumentsAdaptorTrampoline()
3082 __ bind(&too_few); in Generate_ArgumentsAdaptorTrampoline()
3091 __ add(r0, fp, Operand::PointerOffsetFromSmiKey(r0)); in Generate_ArgumentsAdaptorTrampoline()
3099 __ bind(&copy); in Generate_ArgumentsAdaptorTrampoline()
3101 __ ldr(ip, MemOperand(r0, 2 * kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
3102 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
3103 __ cmp(r0, fp); // Compare before moving to next argument. in Generate_ArgumentsAdaptorTrampoline()
3104 __ sub(r0, r0, Operand(kPointerSize)); in Generate_ArgumentsAdaptorTrampoline()
3105 __ b(ne, &copy); in Generate_ArgumentsAdaptorTrampoline()
3111 __ LoadRoot(ip, Heap::kUndefinedValueRootIndex); in Generate_ArgumentsAdaptorTrampoline()
3112 __ sub(r4, fp, Operand(r2, LSL, kPointerSizeLog2)); in Generate_ArgumentsAdaptorTrampoline()
3114 __ sub(r4, r4, Operand(StandardFrameConstants::kFixedFrameSizeFromFp + in Generate_ArgumentsAdaptorTrampoline()
3118 __ bind(&fill); in Generate_ArgumentsAdaptorTrampoline()
3119 __ push(ip); in Generate_ArgumentsAdaptorTrampoline()
3120 __ cmp(sp, r4); in Generate_ArgumentsAdaptorTrampoline()
3121 __ b(ne, &fill); in Generate_ArgumentsAdaptorTrampoline()
3125 __ bind(&invoke); in Generate_ArgumentsAdaptorTrampoline()
3126 __ mov(r0, r2); in Generate_ArgumentsAdaptorTrampoline()
3130 __ ldr(r4, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_ArgumentsAdaptorTrampoline()
3131 __ Call(r4); in Generate_ArgumentsAdaptorTrampoline()
3138 __ Jump(lr); in Generate_ArgumentsAdaptorTrampoline()
3143 __ bind(&dont_adapt_arguments); in Generate_ArgumentsAdaptorTrampoline()
3144 __ ldr(r4, FieldMemOperand(r1, JSFunction::kCodeEntryOffset)); in Generate_ArgumentsAdaptorTrampoline()
3145 __ Jump(r4); in Generate_ArgumentsAdaptorTrampoline()
3147 __ bind(&stack_overflow); in Generate_ArgumentsAdaptorTrampoline()
3150 __ CallRuntime(Runtime::kThrowStackOverflow); in Generate_ArgumentsAdaptorTrampoline()
3151 __ bkpt(0); in Generate_ArgumentsAdaptorTrampoline()
3155 #undef __