Lines Matching defs:rax

22   //  -- rax                 : number of arguments excluding receiver
42 // JumpToExternalReference expects rax to contain the number of arguments
45 __ addp(rax, Immediate(num_extra_args + 1));
50 __ Integer32ToSmi(rax, rax);
51 __ Push(rax);
52 __ SmiToInteger32(rax, rax);
73 // -- rax : argument count (preserved for callee)
80 __ Integer32ToSmi(rax, rax);
81 __ Push(rax);
89 __ movp(rbx, rax);
94 __ Pop(rax);
95 __ SmiToInteger32(rax, rax);
125 // -- rax: number of arguments
136 __ Integer32ToSmi(rcx, rax);
146 __ movp(rbx, rax);
157 __ SmiToInteger32(rax, Operand(rsp, 0 * kPointerSize));
176 __ movp(rcx, rax);
185 ParameterCount actual(rax);
204 __ JumpIfSmi(rax, &use_receiver, Label::kNear);
209 __ CmpObjectType(rax, FIRST_JS_RECEIVER_TYPE, rcx);
215 __ movp(rax, Operand(rsp, 0));
233 __ JumpIfNotSmi(rax, &dont_throw);
260 // -- rax : newly allocated object
265 __ Push(rax);
266 __ Push(rax);
269 __ SmiToInteger32(rax,
274 __ movp(rdx, Operand(rbp, rax, times_pointer_size,
312 // rax : the number of items to be pushed to the stack
326 __ PositiveSmiTimesPowerOfTwoToInteger64(r11, rax, kPointerSizeLog2);
329 __ movp(r11, rax);
358 // register rax and rbx holds the argument count and argument array,
383 __ movp(rax, r9);
420 __ movp(rax, rcx);
432 // rax : argc
439 // Expects argument count in rax. Clobbers rcx, r11.
453 __ cmpp(rcx, rax);
482 // -- rax : the value to pass to the generator
490 __ movp(FieldOperand(rbx, JSGeneratorObject::kInputOrDebugPosOffset), rax);
491 __ RecordWriteField(rbx, JSGeneratorObject::kInputOrDebugPosOffset, rax, rcx,
520 __ PopReturnAddressTo(rax);
526 // -- rax : return address
561 __ PushReturnAddressFrom(rax);
562 __ movp(rax, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
564 rax, rax, SharedFunctionInfo::kFormalParameterCountOffset);
647 __ movp(rax, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
649 __ JumpIfNotSmi(FieldOperand(rax, SharedFunctionInfo::kDebugInfoOffset),
652 FieldOperand(rax, SharedFunctionInfo::kFunctionDataOffset));
658 __ cmpp(rcx, FieldOperand(rax, SharedFunctionInfo::kCodeOffset));
673 rax);
734 // The return value is in rax.
741 __ movp(debug_info, FieldOperand(rax, SharedFunctionInfo::kDebugInfoOffset));
804 // -- rax : the number of arguments (not including the receiver)
813 __ Move(rcx, rax);
854 // -- rax : the number of arguments (not including the receiver)
866 Generate_StackOverflowCheck(masm, rax, r8, &stack_overflow);
875 Generate_InterpreterPushArgs(masm, rax, rcx, r8);
889 // Jump to the constructor function (rax, rbx, rdx passed on).
892 // Call the constructor (rax, rdx, rdi passed on).
897 // Call the constructor (rax, rdx, rdi passed on).
914 // -- rax : the number of arguments (not including the receiver)
924 __ Move(r8, rax);
1009 __ Move(rdx, rax); // Result is the new bytecode offset.
1023 // -- rax : argument count (preserved for callee)
1141 // -- rax : argument count (preserved for callee)
1149 __ movp(rcx, rax);
1151 __ Integer32ToSmi(rax, rax);
1152 __ Push(rax);
1184 __ JumpIfSmi(rax, &failed, Label::kNear);
1201 __ Pop(rax);
1202 __ SmiToInteger32(rax, rax);
1327 DCHECK_EQ(kInterpreterAccumulatorRegister.code(), rax.code());
1328 __ movp(rax, Operand(rsp, kPCOnStackSize + kPointerSize));
1332 __ ret(2 * kPointerSize); // Remove state, rax.
1353 // -- rax : argc
1360 // 1. Load receiver into rdi, argArray into rax (if present), remove all
1365 StackArgumentsAccessor args(rsp, rax);
1369 __ testp(rax, rax);
1373 __ cmpp(rax, Immediate(1));
1380 __ leap(rsp, Operand(rsp, rax, times_pointer_size, kPointerSize));
1383 __ movp(rax, rbx);
1387 // -- rax : argArray
1403 __ JumpIfRoot(rax, Heap::kNullValueRootIndex, &no_arguments, Label::kNear);
1404 __ JumpIfRoot(rax, Heap::kUndefinedValueRootIndex, &no_arguments,
1417 __ Set(rax, 0);
1440 // rax contains the number of arguments, n, not counting the receiver.
1445 __ testp(rax, rax);
1450 __ incp(rax);
1456 StackArgumentsAccessor args(rsp, rax);
1465 __ movp(rcx, rax);
1473 __ decp(rax); // One fewer argument (first argument is new receiver).
1484 // -- rax : argc
1492 // 1. Load target into rdi (if present), argumentsList into rax (if present),
1497 StackArgumentsAccessor args(rsp, rax);
1501 __ cmpp(rax, Immediate(1));
1506 __ cmpp(rax, Immediate(3));
1511 __ leap(rsp, Operand(rsp, rax, times_pointer_size, kPointerSize));
1514 __ movp(rax, rbx);
1518 // -- rax : argumentsList
1548 // -- rax : argc
1556 // 1. Load target into rdi (if present), argumentsList into rax (if present),
1562 StackArgumentsAccessor args(rsp, rax);
1566 __ cmpp(rax, Immediate(1));
1572 __ cmpp(rax, Immediate(3));
1577 __ leap(rsp, Operand(rsp, rax, times_pointer_size, kPointerSize));
1580 __ movp(rax, rbx);
1584 // -- rax : argumentsList
1629 // -- rax : argc
1658 // -- rax : argc
1689 // -- rax : number of arguments
1706 __ Move(rcx, rax);
1728 __ Integer32ToSmi(rax, rax);
1730 __ EnterBuiltinFrame(rsi, rdi, rax);
1733 __ movp(rax, rbx);
1735 __ movp(rbx, rax);
1738 __ LeaveBuiltinFrame(rsi, rdi, rax);
1740 __ SmiToInteger32(rax, rax);
1793 __ leap(rsp, Operand(rsp, rax, times_pointer_size, kPointerSize));
1795 __ movp(rax, rdx);
1802 // -- rax : number of arguments
1813 StackArgumentsAccessor args(rsp, rax);
1814 __ testp(rax, rax);
1822 __ Integer32ToSmi(rax, rax);
1823 __ EnterBuiltinFrame(rsi, rdi, rax);
1824 __ movp(rax, rbx);
1838 // 2b. No arguments, return +0 (already in rax).
1846 // -- rax : number of arguments
1859 __ Integer32ToSmi(r8, rax);
1863 StackArgumentsAccessor args(rsp, rax);
1865 __ testp(rax, rax);
1885 __ Move(rax, rbx);
1887 __ Move(rbx, rax);
1900 __ AllocateJSValue(rax, rdi, rbx, rcx, &new_object);
1911 __ Pop(FieldOperand(rax, JSValue::kValueOffset));
1929 // -- rax : number of arguments
1937 // 1. Load the first argument into rax.
1940 StackArgumentsAccessor args(rsp, rax);
1941 __ Integer32ToSmi(r8, rax); // Store argc in r8.
1942 __ testp(rax, rax);
1944 __ movp(rax, args.GetArgumentOperand(1));
1947 // 2a. At least one argument, return rax if it's a string, otherwise
1951 __ JumpIfSmi(rax, &to_string, Label::kNear);
1953 __ CmpObjectType(rax, FIRST_NONSTRING_TYPE, rdx);
1962 __ LoadRoot(rax, Heap::kempty_stringRootIndex);
1966 // 3a. Convert rax to a string.
1976 // 3b. Convert symbol in rax to a string.
1982 __ Push(rax);
2001 // -- rax : number of arguments
2014 __ Integer32ToSmi(r8, rax);
2018 StackArgumentsAccessor args(rsp, rax);
2020 __ testp(rax, rax);
2040 __ Move(rax, rbx);
2042 __ Move(rbx, rax);
2055 __ AllocateJSValue(rax, rdi, rbx, rcx, &new_object);
2066 __ Pop(FieldOperand(rax, JSValue::kValueOffset));
2091 // Preserve the number of arguments on the stack. Must preserve rax,
2094 __ Integer32ToSmi(r8, rax);
2157 // -- rax : actual number of arguments
2168 __ cmpp(rax, rbx);
2181 __ leap(rax, Operand(rbp, rax, times_pointer_size, offset));
2187 __ Push(Operand(rax, 0));
2188 __ subp(rax, Immediate(kPointerSize));
2203 __ leap(rdi, Operand(rbp, rax, times_pointer_size, offset));
2211 __ cmpp(r8, rax);
2229 __ movp(rax, rbx);
2230 // rax : expected number of arguments
2261 // -- rax : argumentsList
2272 __ JumpIfSmi(rax, &create_runtime);
2275 __ movp(rcx, FieldOperand(rax, HeapObject::kMapOffset));
2296 __ Push(rax);
2300 __ SmiToInteger32(rbx, FieldOperand(rax, FixedArray::kLengthOffset));
2306 __ movp(rbx, FieldOperand(rax, JSArgumentsObject::kLengthOffset));
2307 __ movp(rcx, FieldOperand(rax, JSObject::kElementsOffset));
2311 __ movp(rax, rcx);
2317 __ movp(rcx, FieldOperand(rax, HeapObject::kMapOffset));
2325 __ SmiToInteger32(rbx, FieldOperand(rax, JSArray::kLengthOffset));
2326 __ movp(rax, FieldOperand(rax, JSArray::kElementsOffset));
2342 __ SmiToInteger32(rbx, FieldOperand(rax, JSArray::kLengthOffset));
2343 __ movp(rax, FieldOperand(rax, JSArray::kElementsOffset));
2368 // -- rax : args (a FixedArray built from argumentsList)
2384 __ movp(r9, FieldOperand(rax, rcx, times_pointer_size,
2395 __ Move(rax, rcx);
2423 __ movp(rax, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
2424 __ movp(rax, FieldOperand(rax, JSFunction::kSharedFunctionInfoOffset));
2426 rax, rax, SharedFunctionInfo::kFormalParameterCountOffset);
2433 rax, Operand(rbx, ArgumentsAdaptorFrameConstants::kLengthOffset));
2438 __ subl(rax, rcx);
2442 Generate_StackOverflowCheck(masm, rax, rcx, &stack_overflow, Label::kNear);
2447 __ movl(rcx, rax);
2465 __ Set(rax, 0);
2565 // -- rax : the number of arguments (not including the receiver)
2568 StackArgumentsAccessor args(rsp, rax);
2580 // -- rax : the number of arguments (not including the receiver)
2599 // -- rax : the number of arguments (not including the receiver)
2634 __ Integer32ToSmi(rax, rax);
2635 __ Push(rax);
2637 __ movp(rax, rcx);
2642 __ movp(rcx, rax);
2644 __ Pop(rax);
2645 __ SmiToInteger32(rax, rax);
2655 // -- rax : the number of arguments (not including the receiver)
2662 PrepareForTailCall(masm, rax, rbx, rcx, r8);
2667 ParameterCount actual(rax);
2686 // -- rax : the number of arguments (not including the receiver)
2699 // -- rax : the number of arguments (not including the receiver)
2727 __ incl(rax);
2738 __ cmpl(rcx, rax);
2751 __ movp(Operand(rsp, rax, times_pointer_size, 0), kScratchRegister);
2752 __ leal(rax, Operand(rax, 1));
2756 // Adjust effective number of arguments (rax contains the number of
2759 __ decl(rax);
2770 // -- rax : the number of arguments (not including the receiver)
2776 PrepareForTailCall(masm, rax, rbx, rcx, r8);
2780 StackArgumentsAccessor args(rsp, rax);
2799 // -- rax : the number of arguments (not including the receiver)
2802 StackArgumentsAccessor args(rsp, rax);
2824 PrepareForTailCall(masm, rax, rbx, rcx, r8);
2833 __ addp(rax, Immediate(2));
2922 __ Integer32ToSmi(rax, rax);
2923 __ Push(rax); // nargs
2926 __ movp(rbx, rax);
2927 __ Pop(rax); // nargs
2928 __ SmiToInteger32(rax, rax);
2938 // rax += r9 - 1. Subtract 1 for the spread itself.
2939 __ leap(rax, Operand(rax, r9, times_1, -1));
2988 // -- rax : the number of arguments (not including the receiver)
3003 // -- rax : the number of arguments (not including the receiver)
3024 // -- rax : the number of arguments (not including the receiver)
3053 // -- rax : the number of arguments (not including the receiver)
3065 __ addp(rax, Immediate(3));
3073 // -- rax : the number of arguments (not including the receiver)
3078 StackArgumentsAccessor args(rsp, rax);
3125 // -- rax : the number of arguments (not including the receiver)
3202 // -- rax : number of arguments (not including the receiver)
3208 // -- rsp[rax * 8] : first argument
3209 // -- rsp[(rax + 1) * 8] : receiver
3212 StackArgumentsAccessor args(rsp, rax);
3234 __ leap(rax, Operand(rax, times_pointer_size, 1 * kPointerSize));
3235 __ addp(rsp, rax);
3247 __ movp(rax, Operand(rbp, StandardFrameConstants::kCallerFPOffset));
3248 __ movp(rax, Operand(rax, JavaScriptFrameConstants::kFunctionOffset));
3250 __ movp(rax, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
3256 __ Push(rax);
3262 __ cmpp(rax, Immediate(0));
3275 __ movp(rbx, Operand(rax, Code::kDeoptimizationDataOffset - kHeapObjectTag));
3284 __ leap(rax, Operand(rax, rbx, times_1, Code::kHeaderSize - kHeapObjectTag));
3287 __ movq(StackOperandForReturnAddress(0), rax);