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