Lines Matching defs:eax
56 __ test(eax, Immediate(delta_to_patch_site));
161 __ mov(eax, Immediate(isolate()->factory()->undefined_value()));
170 __ push(eax);
178 __ push(eax);
205 // Context is returned in eax. It replaces the context passed to us.
207 __ mov(esi, eax);
208 __ mov(Operand(ebp, StandardFrameConstants::kContextOffset), eax);
218 __ mov(eax, Operand(ebp, parameter_offset));
221 __ mov(Operand(esi, context_offset), eax);
222 // Update the write barrier. This clobbers eax and ebx.
226 eax,
231 __ JumpIfInNewSpace(esi, eax, &done, Label::kNear);
270 SetVar(arguments, eax, ebx, edx);
319 __ mov(eax, isolate()->factory()->undefined_value());
326 __ Move(eax, Immediate(Smi::FromInt(0)));
382 __ push(eax);
397 __ push(eax);
400 __ pop(eax);
730 __ cmp(eax, isolate()->factory()->true_value());
875 __ LoadContext(eax, scope_->ContextChainLength(scope_->GlobalScope()));
876 __ mov(eax, ContextOperand(eax, variable->interface()->Index()));
877 __ mov(eax, ContextOperand(eax, Context::EXTENSION_INDEX));
880 __ mov(ContextOperand(esi, variable->index()), eax);
884 eax,
980 __ or_(ecx, eax);
983 eax);
1000 __ cmp(eax, isolate()->factory()->true_value());
1006 __ test(eax, eax);
1049 __ cmp(eax, isolate()->factory()->undefined_value());
1051 __ cmp(eax, isolate()->factory()->null_value());
1058 __ JumpIfSmi(eax, &convert, Label::kNear);
1059 __ CmpObjectType(eax, FIRST_SPEC_OBJECT_TYPE, ecx);
1062 __ push(eax);
1065 __ push(eax);
1070 __ CmpObjectType(eax, LAST_JS_PROXY_TYPE, ecx);
1079 __ mov(eax, FieldOperand(eax, HeapObject::kMapOffset));
1084 __ push(eax);
1086 __ cmp(FieldOperand(eax, HeapObject::kMapOffset),
1091 // We got a map in register eax. Get the enumeration cache from it.
1095 __ EnumLength(edx, eax);
1099 __ LoadInstanceDescriptors(eax, ecx);
1104 __ push(eax); // Map.
1114 // We got a fixed array in register eax. Iterate through that.
1131 __ push(eax); // Array
1132 __ mov(eax, FieldOperand(eax, FixedArray::kLengthOffset));
1133 __ push(eax); // Fixed array length (as smi).
1139 __ mov(eax, Operand(esp, 0 * kPointerSize)); // Get the current index.
1140 __ cmp(eax, Operand(esp, 1 * kPointerSize)); // Compare to the array length.
1145 __ mov(ebx, FieldOperand(ebx, eax, times_2, FixedArray::kHeaderSize));
1170 __ test(eax, eax);
1172 __ mov(ebx, eax);
1271 context()->Plug(eax);
1292 __ cmp(eax, isolate()->factory()->undefined_value());
1410 __ mov(eax, ContextSlotOperandCheckExtensions(local, slow));
1413 __ cmp(eax, isolate()->factory()->the_hole_value());
1416 __ mov(eax, isolate()->factory()->undefined_value());
1444 context()->Plug(eax);
1491 GetVar(eax, var);
1492 __ cmp(eax, isolate()->factory()->the_hole_value());
1502 __ mov(eax, isolate()->factory()->undefined_value());
1505 context()->Plug(eax);
1524 context()->Plug(eax);
1538 // eax = regexp literal clone.
1548 // Result will be in eax.
1554 __ mov(ebx, eax);
1559 __ Allocate(size, eax, ecx, edx, &runtime_allocate, TAG_OBJECT);
1574 __ mov(FieldOperand(eax, i), edx);
1575 __ mov(FieldOperand(eax, i + kPointerSize), ecx);
1579 __ mov(FieldOperand(eax, size - kPointerSize), edx);
1581 context()->Plug(eax);
1618 __ mov(eax, FieldOperand(edi, JSFunction::kLiteralsOffset));
1627 // result_saved is false the result is in eax.
1643 __ push(eax); // Save result on the stack
1656 DCHECK(StoreDescriptor::ValueRegister().is(eax));
1716 context()->Plug(eax);
1756 __ mov(eax, FieldOperand(ebx, JSFunction::kLiteralsOffset));
1774 __ push(eax); // array literal.
1807 context()->Plug(eax);
1878 __ push(eax); // Left operand goes on the stack.
1910 context()->Plug(eax);
1945 __ mov(FieldOperand(eax, JSGeneratorObject::kContinuationOffset),
1947 __ mov(FieldOperand(eax, JSGeneratorObject::kContextOffset), esi);
1949 __ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx,
1954 __ push(eax); // generator object
1992 __ mov(eax, isolate()->factory()->undefined_value());
2001 __ push(eax); // exception
2008 __ pop(eax); // result
2011 __ push(eax); // result
2017 __ mov(eax, Operand(esp, generator_object_depth));
2018 __ push(eax); // g
2020 __ mov(FieldOperand(eax, JSGeneratorObject::kContinuationOffset),
2022 __ mov(FieldOperand(eax, JSGeneratorObject::kContextOffset), esi);
2024 __ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx,
2029 __ pop(eax); // result
2031 __ bind(&l_resume); // received in eax
2040 __ push(eax); // received
2051 __ mov(edi, eax);
2061 __ push(eax); // save result
2062 __ Move(load_receiver, eax); // result
2069 CallLoadIC(NOT_CONTEXTUAL); // result.done in eax
2072 __ test(eax, eax);
2083 CallLoadIC(NOT_CONTEXTUAL); // result.value in eax
2084 context()->DropAndPlug(2, eax); // drop iter and g
2094 // The value stays in eax, and is ultimately read by the resumed generator, as
2188 __ push(eax);
2209 __ Allocate(map->instance_size(), eax, ecx, edx, &gc_required, TAG_OBJECT);
2223 __ mov(FieldOperand(eax, HeapObject::kMapOffset), ebx);
2224 __ mov(FieldOperand(eax, JSObject::kPropertiesOffset),
2226 __ mov(FieldOperand(eax, JSObject::kElementsOffset),
2228 __ mov(FieldOperand(eax, JSGeneratorObject::kResultValuePropertyOffset), ecx);
2229 __ mov(FieldOperand(eax, JSGeneratorObject::kResultDonePropertyOffset), edx);
2233 __ RecordWriteField(eax, JSGeneratorObject::kResultValuePropertyOffset,
2261 __ push(eax);
2287 // stack. Right operand is in eax.
2290 __ mov(ecx, eax);
2291 __ or_(eax, edx);
2293 patch_site.EmitJumpIfSmi(eax, &smi_case, Label::kNear);
2296 __ mov(eax, ecx);
2304 __ mov(eax, edx); // Copy left operand in case of a stub call.
2309 __ sar_cl(eax); // No checks of result necessary
2310 __ and_(eax, Immediate(~kSmiTagMask));
2314 __ SmiUntag(eax);
2316 __ shl_cl(eax);
2318 __ cmp(eax, 0xc0000000);
2323 __ SmiTag(eax);
2328 __ SmiUntag(eax);
2330 __ shr_cl(eax);
2331 __ test(eax, Immediate(0xc0000000));
2336 __ SmiTag(eax);
2340 __ add(eax, ecx);
2344 __ sub(eax, ecx);
2348 __ SmiUntag(eax);
2349 __ imul(eax, ecx);
2351 __ test(eax, eax);
2359 __ or_(eax, ecx);
2362 __ and_(eax, ecx);
2365 __ xor_(eax, ecx);
2372 context()->Plug(eax);
2384 context()->Plug(eax);
2410 __ push(eax); // Preserve value.
2412 __ Move(StoreDescriptor::ReceiverRegister(), eax);
2420 __ push(eax); // Preserve value.
2423 __ Move(StoreDescriptor::NameRegister(), eax);
2432 context()->Plug(eax);
2438 __ mov(location, eax);
2440 __ mov(edx, eax);
2459 __ push(eax);
2491 __ push(eax); // Value.
2516 // eax : value
2529 context()->Plug(eax);
2535 // eax : value
2541 DCHECK(StoreDescriptor::ValueRegister().is(eax));
2548 context()->Plug(eax);
2565 context()->Plug(eax);
2572 context()->Plug(eax);
2608 __ mov(Operand(esp, kPointerSize), eax);
2627 __ push(eax);
2629 __ push(eax);
2631 __ push(eax);
2642 __ mov(Operand(esp, kPointerSize), eax);
2662 __ mov(LoadDescriptor::NameRegister(), eax);
2668 __ mov(Operand(esp, kPointerSize), eax);
2699 context()->DropAndPlug(1, eax);
2757 // The runtime call returns a pair of values in eax (function) and
2760 __ mov(Operand(esp, (arg_count + 1) * kPointerSize), eax);
2770 context()->DropAndPlug(1, eax);
2785 // Call the runtime to find the function to call (returned in eax) and
2790 __ push(eax); // Function.
2800 __ push(eax);
2868 // Load function and argument count into edi and eax.
2869 __ Move(eax, Immediate(arg_count));
2885 context()->Plug(eax);
2903 __ test(eax, Immediate(kSmiTagMask));
2924 __ test(eax, Immediate(kSmiTagMask | 0x80000000));
2944 __ JumpIfSmi(eax, if_false);
2945 __ cmp(eax, isolate()->factory()->null_value());
2947 __ mov(ebx, FieldOperand(eax, HeapObject::kMapOffset));
2976 __ JumpIfSmi(eax, if_false);
2977 __ CmpObjectType(eax, FIRST_SPEC_OBJECT_TYPE, ebx);
2998 __ JumpIfSmi(eax, if_false);
2999 __ mov(ebx, FieldOperand(eax, HeapObject::kMapOffset));
3023 __ AssertNotSmi(eax);
3027 __ mov(ebx, FieldOperand(eax, HeapObject::kMapOffset));
3033 __ mov(ecx, FieldOperand(eax, JSObject::kPropertiesOffset));
3074 __ mov(ebx, FieldOperand(eax, HeapObject::kMapOffset));
3113 __ JumpIfSmi(eax, if_false);
3114 __ CmpObjectType(eax, JS_FUNCTION_TYPE, ebx);
3136 __ CheckMap(eax, map, if_false, DO_SMI_CHECK);
3139 __ cmp(FieldOperand(eax, HeapNumber::kExponentOffset), Immediate(0x1));
3141 __ cmp(FieldOperand(eax, HeapNumber::kMantissaOffset), Immediate(0x0));
3163 __ JumpIfSmi(eax, if_false);
3164 __ CmpObjectType(eax, JS_ARRAY_TYPE, ebx);
3185 __ JumpIfSmi(eax, if_false);
3186 __ CmpObjectType(eax, JS_REGEXP_TYPE, ebx);
3206 __ mov(eax, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
3210 __ cmp(Operand(eax, StandardFrameConstants::kContextOffset),
3213 __ mov(eax, Operand(eax, StandardFrameConstants::kCallerFPOffset));
3217 __ cmp(Operand(eax, StandardFrameConstants::kMarkerOffset),
3242 __ cmp(eax, ebx);
3255 // parameter count in eax.
3257 __ mov(edx, eax);
3258 __ Move(eax, Immediate(Smi::FromInt(info_->scope()->num_parameters())));
3261 context()->Plug(eax);
3270 __ Move(eax, Immediate(Smi::FromInt(info_->scope()->num_parameters())));
3280 __ mov(eax, Operand(ebx, ArgumentsAdaptorFrameConstants::kLengthOffset));
3283 __ AssertSmi(eax);
3284 context()->Plug(eax);
3296 __ JumpIfSmi(eax, &null);
3303 __ CmpObjectType(eaxeax);
3304 // Map is now in eax.
3310 __ CmpInstanceType(eax, LAST_SPEC_OBJECT_TYPE);
3318 __ mov(eax, FieldOperand(eax, Map::kConstructorOffset));
3319 __ CmpObjectType(eax, JS_FUNCTION_TYPE, ebx);
3322 // eax now contains the constructor function. Grab the
3324 __ mov(eax, FieldOperand(eax, JSFunction::kSharedFunctionInfoOffset));
3325 __ mov(eax, FieldOperand(eax, SharedFunctionInfo::kInstanceClassNameOffset));
3330 __ mov(eax, isolate()->factory()->Function_string());
3335 __ mov(eax, isolate()->factory()->Object_string());
3340 __ mov(eax, isolate()->factory()->null_value());
3345 context()->Plug(eax);
3358 context()->Plug(eax);
3372 context()->Plug(eax);
3384 __ JumpIfSmi(eax, &done, Label::kNear);
3386 __ CmpObjectType(eax, JS_VALUE_TYPE, ebx);
3388 __ mov(eax, FieldOperand(eax, JSValue::kValueOffset));
3391 context()->Plug(eax);
3404 Register object = eax;
3405 Register result = eax;
3444 Register string = eax;
3480 Register string = eax;
3518 context()->Plug(eax);
3528 __ pop(ebx); // eax = value. ebx = object.
3539 __ mov(FieldOperand(ebx, JSValue::kValueOffset), eax);
3543 __ mov(edx, eax);
3547 context()->Plug(eax);
3555 // Load the argument into eax and call the stub.
3560 context()->Plug(eax);
3571 StringCharFromCodeGenerator generator(eax, ebx);
3591 Register index = eax;
3637 Register index = eax;
3639 Register result = eax;
3686 context()->Plug(eax);
3699 context()->Plug(eax);
3715 __ JumpIfSmi(eax, &runtime);
3716 __ CmpObjectType(eax, JS_FUNCTION_TYPE, ebx);
3727 __ push(eax);
3731 context()->Plug(eax);
3746 context()->Plug(eax);
3761 __ mov(eax, isolate()->factory()->undefined_value());
3762 context()->Plug(eax);
3768 Register key = eax;
3785 __ mov(eax, FixedArrayElementOperand(cache, tmp, 1));
3795 context()->Plug(eax);
3805 __ AssertString(eax);
3814 __ test(FieldOperand(eax, String::kHashFieldOffset),
3828 __ AssertString(eax);
3830 __ mov(eax, FieldOperand(eax, String::kHashFieldOffset));
3831 __ IndexFromHash(eax, eax);
3833 context()->Plug(eax);
3846 // Load this to eax (= array)
3849 Register array = eax;
3850 Register elements = no_reg; // Will be eax.
4092 __ mov(eax, result_operand);
4097 context()->Plug(eax);
4105 __ movzx_b(eax, Operand::StaticVariable(debug_is_active));
4106 __ SmiTag(eax);
4107 context()->Plug(eax);
4124 __ mov(eax, GlobalObjectOperand());
4125 __ push(FieldOperand(eax, GlobalObject::kBuiltinsOffset));
4140 __ mov(Operand(esp, kPointerSize), eax);
4156 context()->DropAndPlug(1, eax);
4168 context()->Plug(eax);
4185 context()->Plug(eax);
4196 context()->Plug(eax);
4208 context()->Plug(eax);
4254 __ mov(eax, isolate()->factory()->true_value());
4262 __ mov(eax, isolate()->factory()->false_value());
4277 context()->Plug(eax);
4343 patch_site.EmitJumpIfNotSmi(eax, &slow, Label::kNear);
4353 __ push(eax);
4356 __ mov(Operand(esp, kPointerSize), eax);
4359 __ mov(Operand(esp, 2 * kPointerSize), eax);
4366 __ add(eax, Immediate(Smi::FromInt(1)));
4368 __ sub(eax, Immediate(Smi::FromInt(1)));
4373 __ sub(eax, Immediate(Smi::FromInt(1)));
4375 __ add(eax, Immediate(Smi::FromInt(1)));
4391 __ push(eax);
4394 __ mov(Operand(esp, kPointerSize), eax);
4397 __ mov(Operand(esp, 2 * kPointerSize), eax);
4408 __ mov(edx, eax);
4409 __ mov(eax, Immediate(Smi::FromInt(1)));
4416 // Store the value returned in eax.
4425 context.Plug(eax);
4437 context()->Plug(eax);
4451 context()->Plug(eax);
4468 context()->Plug(eax);
4493 context()->Plug(eax);
4509 context()->Plug(eax);
4534 __ JumpIfSmi(eax, if_true);
4535 __ cmp(FieldOperand(eax, HeapObject::kMapOffset),
4539 __ JumpIfSmi(eax, if_false);
4540 __ CmpObjectType(eax, FIRST_NONSTRING_TYPE, edx);
4547 __ JumpIfSmi(eax, if_false);
4548 __ CmpObjectType(eax, SYMBOL_TYPE, edx);
4551 __ cmp(eax, isolate()->factory()->true_value());
4553 __ cmp(eax, isolate()->factory()->false_value());
4556 __ cmp(eax, isolate()->factory()->undefined_value());
4558 __ JumpIfSmi(eax, if_false);
4560 __ mov(edx, FieldOperand(eax, HeapObject::kMapOffset));
4565 __ JumpIfSmi(eax, if_false);
4567 __ CmpObjectType(eax, JS_FUNCTION_TYPE, edx);
4572 __ JumpIfSmi(eax, if_false);
4573 __ cmp(eax, isolate()->factory()->null_value());
4575 __ CmpObjectType(eax, FIRST_NONCALLABLE_SPEC_OBJECT_TYPE, edx);
4614 __ cmp(eax, isolate()->factory()->true_value());
4623 __ test(eax, eax);
4639 __ or_(ecx, eax);
4641 __ cmp(edx, eax);
4653 __ test(eax, eax);
4681 __ cmp(eax, nil_value);
4686 __ test(eax, eax);
4694 __ mov(eax, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
4695 context()->Plug(eax);
4700 return eax;