Home | History | Annotate | Download | only in ia32

Lines Matching defs:__

57 #define __ masm.
82 __ push(ebx);
83 __ push(edx);
84 __ push(edi);
85 __ fld_d(Operand(esp, 4 * kPointerSize));
86 __ mov(ebx, Operand(esp, 4 * kPointerSize));
87 __ mov(edx, Operand(esp, 5 * kPointerSize));
90 __ pop(edi);
91 __ pop(edx);
92 __ pop(ebx);
93 __ Ret();
120 __ movdbl(xmm0, Operand(esp, 1 * kPointerSize));
121 __ sqrtsd(xmm0, xmm0);
122 __ movdbl(Operand(esp, 1 * kPointerSize), xmm0);
124 __ fld_d(Operand(esp, 1 * kPointerSize));
125 __ Ret();
171 __ cmp(Operand(esp, kSizeOffset + stack_offset),
174 __ j(greater_equal, &ok);
175 __ int3();
176 __ bind(&ok);
180 __ push(edi);
181 __ push(esi);
186 __ mov(dst, Operand(esp, stack_offset + kDestinationOffset));
187 __ mov(src, Operand(esp, stack_offset + kSourceOffset));
188 __ mov(count, Operand(esp, stack_offset + kSizeOffset));
191 __ movdqu(xmm0, Operand(src, 0));
192 __ movdqu(Operand(dst, 0), xmm0);
193 __ mov(edx, dst);
194 __ and_(edx, 0xF);
195 __ neg(edx);
196 __ add(edx, Immediate(16));
197 __ add(dst, edx);
198 __ add(src, edx);
199 __ sub(count, edx);
203 __ test(src, Immediate(0x0F));
204 __ j(not_zero, &unaligned_source);
207 __ mov(edx, count);
210 __ shr(loop_count, 5);
214 __ bind(&loop);
215 __ prefetch(Operand(src, 0x20), 1);
216 __ movdqa(xmm0, Operand(src, 0x00));
217 __ movdqa(xmm1, Operand(src, 0x10));
218 __ add(src, Immediate(0x20));
220 __ movdqa(Operand(dst, 0x00), xmm0);
221 __ movdqa(Operand(dst, 0x10), xmm1);
222 __ add(dst, Immediate(0x20));
224 __ dec(loop_count);
225 __ j(not_zero, &loop);
230 __ test(count, Immediate(0x10));
231 __ j(zero, &move_less_16);
232 __ movdqa(xmm0, Operand(src, 0));
233 __ add(src, Immediate(0x10));
234 __ movdqa(Operand(dst, 0), xmm0);
235 __ add(dst, Immediate(0x10));
236 __ bind(&move_less_16);
239 __ and_(count, 0xF);
240 __ movdqu(xmm0, Operand(src, count, times_1, -0x10));
241 __ movdqu(Operand(dst, count, times_1, -0x10), xmm0);
243 __ mov(eax, Operand(esp, stack_offset + kDestinationOffset));
244 __ pop(esi);
245 __ pop(edi);
246 __ ret(0);
248 __ Align(16);
252 __ bind(&unaligned_source);
253 __ mov(edx, ecx);
256 __ shr(loop_count, 5);
260 __ bind(&loop);
261 __ prefetch(Operand(src, 0x20), 1);
262 __ movdqu(xmm0, Operand(src, 0x00));
263 __ movdqu(xmm1, Operand(src, 0x10));
264 __ add(src, Immediate(0x20));
266 __ movdqa(Operand(dst, 0x00), xmm0);
267 __ movdqa(Operand(dst, 0x10), xmm1);
268 __ add(dst, Immediate(0x20));
270 __ dec(loop_count);
271 __ j(not_zero, &loop);
276 __ test(count, Immediate(0x10));
277 __ j(zero, &move_less_16);
278 __ movdqu(xmm0, Operand(src, 0));
279 __ add(src, Immediate(0x10));
280 __ movdqa(Operand(dst, 0), xmm0);
281 __ add(dst, Immediate(0x10));
282 __ bind(&move_less_16);
285 __ and_(count, 0x0F);
286 __ movdqu(xmm0, Operand(src, count, times_1, -0x10));
287 __ movdqu(Operand(dst, count, times_1, -0x10), xmm0);
289 __ mov(eax, Operand(esp, stack_offset + kDestinationOffset));
290 __ pop(esi);
291 __ pop(edi);
292 __ ret(0);
297 __ push(edi);
298 __ push(esi);
300 __ cld();
304 __ mov(dst, Operand(esp, stack_offset + kDestinationOffset));
305 __ mov(src, Operand(esp, stack_offset + kSourceOffset));
306 __ mov(count, Operand(esp, stack_offset + kSizeOffset));
309 __ mov(eax, Operand(src, 0));
310 __ mov(Operand(dst, 0), eax);
313 __ mov(edx, dst);
314 __ and_(edx, 0x03);
315 __ neg(edx);
316 __ add(edx, Immediate(4)); // edx = 4 - (dst & 3)
317 __ add(dst, edx);
318 __ add(src, edx);
319 __ sub(count, edx);
322 __ mov(edx, count);
324 __ shr(ecx, 2); // Make word count instead of byte count.
325 __ rep_movs();
328 __ and_(count, 3);
329 __ mov(eax, Operand(src, count, times_1, -4));
330 __ mov(Operand(dst, count, times_1, -4), eax);
332 __ mov(eax, Operand(esp, stack_offset + kDestinationOffset));
333 __ pop(esi);
334 __ pop(edi);
335 __ ret(0);
347 #undef __
352 #define __ ACCESS_MASM(masm)
364 __ mov(FieldOperand(edx, HeapObject::kMapOffset), ebx);
365 __ RecordWriteField(edx,
388 __ mov(edi, FieldOperand(edx, JSObject::kElementsOffset));
389 __ cmp(edi, Immediate(masm->isolate()->factory()->empty_fixed_array()));
390 __ j(equal, &only_change_map);
392 __ push(eax);
393 __ push(ebx);
395 __ mov(edi, FieldOperand(edi, FixedArray::kLengthOffset));
400 __ lea(esi, Operand(edi, times_4, FixedDoubleArray::kHeaderSize));
401 __ AllocateInNewSpace(esi, eax, ebx, no_reg, &gc_required, TAG_OBJECT);
406 __ mov(FieldOperand(eax, HeapObject::kMapOffset),
408 __ mov(FieldOperand(eax, FixedDoubleArray::kLengthOffset), edi);
409 __ mov(esi, FieldOperand(edx, JSObject::kElementsOffset));
411 __ mov(FieldOperand(edx, JSObject::kElementsOffset), eax);
412 __ mov(ebx, eax);
413 __ RecordWriteField(edx,
421 __ mov(edi, FieldOperand(esi, FixedArray::kLengthOffset));
429 __ movdbl(the_hole_nan,
432 __ jmp(&entry);
435 __ bind(&gc_required);
437 __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
438 __ pop(ebx);
439 __ pop(eax);
440 __ jmp(fail);
444 __ bind(&loop);
445 __ mov(ebx, FieldOperand(esi, edi, times_2, FixedArray::kHeaderSize));
448 __ JumpIfNotSmi(ebx, &convert_hole);
451 __ SmiUntag(ebx);
454 __ cvtsi2sd(xmm0, ebx);
455 __ movdbl(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize),
458 __ push(ebx);
459 __ fild_s(Operand(esp, 0));
460 __ pop(ebx);
461 __ fstp_d(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize));
463 __ jmp(&entry);
466 __ bind(&convert_hole);
469 __ cmp(ebx, masm->isolate()->factory()->the_hole_value());
470 __ Assert(equal, "object found in smi-only array");
475 __ movdbl(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize),
478 __ fld_d(Operand::StaticVariable(canonical_the_hole_nan_reference));
479 __ fstp_d(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize));
482 __ bind(&entry);
483 __ sub(edi, Immediate(Smi::FromInt(1)));
484 __ j(not_sign, &loop);
486 __ pop(ebx);
487 __ pop(eax);
490 __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
492 __ bind(&only_change_map);
496 __ mov(FieldOperand(edx, HeapObject::kMapOffset), ebx);
497 __ RecordWriteField(edx,
520 __ mov(edi, FieldOperand(edx, JSObject::kElementsOffset));
521 __ cmp(edi, Immediate(masm->isolate()->factory()->empty_fixed_array()));
522 __ j(equal, &only_change_map);
524 __ push(eax);
525 __ push(edx);
526 __ push(ebx);
528 __ mov(ebx, FieldOperand(edi, FixedDoubleArray::kLengthOffset));
532 __ lea(edi, Operand(ebx, times_2, FixedArray::kHeaderSize));
533 __ AllocateInNewSpace(edi, eax, esi, no_reg, &gc_required, TAG_OBJECT);
537 __ mov(FieldOperand(eax, HeapObject::kMapOffset),
539 __ mov(FieldOperand(eax, FixedArray::kLengthOffset), ebx);
540 __ mov(edi, FieldOperand(edx, JSObject::kElementsOffset));
542 __ jmp(&entry);
547 __ bind(&only_change_map);
548 __ mov(FieldOperand(edx, HeapObject::kMapOffset), ebx);
549 __ RecordWriteField(edx,
556 __ jmp(&success);
559 __ bind(&gc_required);
560 __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
561 __ pop(ebx);
562 __ pop(edx);
563 __ pop(eax);
564 __ jmp(fail);
569 __ bind(&loop);
572 __ cmp(FieldOperand(edi, ebx, times_4, offset), Immediate(kHoleNanUpper32));
573 __ j(equal, &convert_hole);
576 __ AllocateHeapNumber(edx, esi, no_reg, &gc_required);
580 __ movdbl(xmm0,
582 __ movdbl(FieldOperand(edx, HeapNumber::kValueOffset), xmm0);
584 __ mov(esi, FieldOperand(edi, ebx, times_4, FixedDoubleArray::kHeaderSize));
585 __ mov(FieldOperand(edx, HeapNumber::kValueOffset), esi);
586 __ mov(esi, FieldOperand(edi, ebx, times_4, offset));
587 __ mov(FieldOperand(edx, HeapNumber::kValueOffset + kPointerSize), esi);
589 __ mov(FieldOperand(eax, ebx, times_2, FixedArray::kHeaderSize), edx);
590 __ mov(esi, ebx);
591 __ RecordWriteArray(eax,
597 __ jmp(&entry, Label::kNear);
600 __ bind(&convert_hole);
601 __ mov(FieldOperand(eax, ebx, times_2, FixedArray::kHeaderSize),
604 __ bind(&entry);
605 __ sub(ebx, Immediate(Smi::FromInt(1)));
606 __ j(not_sign, &loop);
608 __ pop(ebx);
609 __ pop(edx);
613 __ mov(FieldOperand(edx, HeapObject::kMapOffset), ebx);
614 __ RecordWriteField(edx,
622 __ mov(FieldOperand(edx, JSObject::kElementsOffset), eax);
623 __ RecordWriteField(edx,
632 __ pop(eax);
633 __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
635 __ bind(&success);
646 __ mov(result, FieldOperand(string, HeapObject::kMapOffset));
647 __ movzx_b(result, FieldOperand(result, Map::kInstanceTypeOffset));
651 __ test(result, Immediate(kIsIndirectStringMask));
652 __ j(zero, &check_sequential, Label::kNear);
656 __ test(result, Immediate(kSlicedNotConsMask));
657 __ j(zero, &cons_string, Label::kNear);
661 __ mov(result, FieldOperand(string, SlicedString::kOffsetOffset));
662 __ SmiUntag(result);
663 __ add(index, result);
664 __ mov(string, FieldOperand(string, SlicedString::kParentOffset));
665 __ jmp(&indirect_string_loaded, Label::kNear);
672 __ bind(&cons_string);
673 __ cmp(FieldOperand(string, ConsString::kSecondOffset),
675 __ j(not_equal, call_runtime);
676 __ mov(string, FieldOperand(string, ConsString::kFirstOffset));
678 __ bind(&indirect_string_loaded);
679 __ mov(result, FieldOperand(string, HeapObject::kMapOffset));
680 __ movzx_b(result, FieldOperand(result, Map::kInstanceTypeOffset));
686 __ bind(&check_sequential);
688 __ test(result, Immediate(kStringRepresentationMask));
689 __ j(zero, &seq_string, Label::kNear);
696 __ test(result, Immediate(kIsIndirectStringMask));
697 __ Assert(zero, "external string expected, but not found");
701 __ test_b(result, kShortExternalStringMask);
702 __ j(not_zero, call_runtime);
705 __ test_b(result, kStringEncodingMask);
706 __ mov(result, FieldOperand(string, ExternalString::kResourceDataOffset));
707 __ j(not_equal, &ascii_external, Label::kNear);
709 __ movzx_w(result, Operand(result, index, times_2, 0));
710 __ jmp(&done, Label::kNear);
711 __ bind(&ascii_external);
713 __ movzx_b(result, Operand(result, index, times_1, 0));
714 __ jmp(&done, Label::kNear);
718 __ bind(&seq_string);
721 __ test(result, Immediate(kStringEncodingMask));
722 __ j(not_zero, &ascii, Label::kNear);
726 __ movzx_w(result, FieldOperand(string,
730 __ jmp(&done, Label::kNear);
734 __ bind(&ascii);
735 __ movzx_b(result, FieldOperand(string,
739 __ bind(&done);
742 #undef __