Lines Matching refs:__
55 #define __ masm.
78 __ push(rbx);
79 __ push(rdi);
80 __ movq(rbx, xmm0);
81 __ push(rbx);
82 __ fld_d(Operand(rsp, 0));
85 __ fstp_d(Operand(rsp, 0));
86 __ pop(rbx);
87 __ movq(xmm0, rbx);
88 __ pop(rdi);
89 __ pop(rbx);
90 __ Ret();
113 __ sqrtsd(xmm0, xmm0);
114 __ Ret();
147 __ movsd(Operand(rsp, kPointerSize * 2), xmm1);
148 __ movsd(Operand(rsp, kPointerSize), xmm0);
149 __ fld_d(Operand(rsp, kPointerSize * 2));
150 __ fld_d(Operand(rsp, kPointerSize));
155 __ fwait();
156 __ fnstsw_ax();
158 __ testb(rax, Immediate(5));
159 __ j(zero, &no_exceptions);
160 __ fnclex();
161 __ bind(&no_exceptions);
167 __ bind(&partial_remainder_loop);
168 __ fprem();
169 __ fwait();
170 __ fnstsw_ax();
171 __ testl(rax, Immediate(0x400 /* C2 */));
174 __ j(not_zero, &partial_remainder_loop);
181 __ testb(rax, Immediate(5));
182 __ j(zero, &valid_result);
183 __ fstp(0); // Drop result in st(0).
185 __ movq(rcx, kNaNValue, RelocInfo::NONE);
186 __ movq(Operand(rsp, kPointerSize), rcx);
187 __ movsd(xmm0, Operand(rsp, kPointerSize));
188 __ jmp(&return_result);
191 __ bind(&valid_result);
192 __ fstp_d(Operand(rsp, kPointerSize));
193 __ movsd(xmm0, Operand(rsp, kPointerSize));
196 __ bind(&return_result);
197 __ fstp(0); // Unload y.
200 __ testb(rax, Immediate(0x3f /* Any Exception*/));
201 __ j(not_zero, &clear_exceptions);
202 __ ret(0);
203 __ bind(&clear_exceptions);
204 __ fnclex();
205 __ ret(0);
216 #undef __
221 #define __ ACCESS_MASM(masm)
233 __ movq(FieldOperand(rdx, HeapObject::kMapOffset), rbx);
234 __ RecordWriteField(rdx,
258 __ movq(r8, FieldOperand(rdx, JSObject::kElementsOffset));
259 __ CompareRoot(r8, Heap::kEmptyFixedArrayRootIndex);
260 __ j(equal, &only_change_map);
264 __ SmiToInteger32(r9, FieldOperand(r8, FixedDoubleArray::kLengthOffset));
265 __ CompareRoot(FieldOperand(r8, HeapObject::kMapOffset),
267 __ j(equal, &new_backing_store);
272 __ JumpIfNotInNewSpace(r8, rdi, &new_backing_store);
274 __ movq(r14, r8); // Destination array equals source array.
280 __ LoadRoot(rdi, Heap::kFixedDoubleArrayMapRootIndex);
281 __ movq(FieldOperand(r14, HeapObject::kMapOffset), rdi);
283 __ bind(&allocated);
285 __ movq(FieldOperand(rdx, HeapObject::kMapOffset), rbx);
286 __ RecordWriteField(rdx,
300 __ movq(r15, BitCast<int64_t, uint64_t>(kHoleNanInt64), RelocInfo::NONE);
302 __ jmp(&entry);
305 __ bind(&new_backing_store);
306 __ lea(rdi, Operand(r9, times_pointer_size, FixedArray::kHeaderSize));
307 __ AllocateInNewSpace(rdi, r14, r11, r15, fail, TAG_OBJECT);
309 __ LoadRoot(rdi, Heap::kFixedDoubleArrayMapRootIndex);
310 __ movq(FieldOperand(r14, HeapObject::kMapOffset), rdi);
312 __ movq(FieldOperand(rdx, JSObject::kElementsOffset), r14);
313 __ movq(r11, r14);
314 __ RecordWriteField(rdx,
322 __ Integer32ToSmi(r11, r9);
323 __ movq(FieldOperand(r14, FixedDoubleArray::kLengthOffset), r11);
324 __ jmp(&allocated);
326 __ bind(&only_change_map);
328 __ movq(FieldOperand(rdx, HeapObject::kMapOffset), rbx);
329 __ RecordWriteField(rdx,
336 __ jmp(&done);
339 __ bind(&loop);
340 __ movq(rbx,
344 __ JumpIfNotSmi(rbx, &convert_hole);
345 __ SmiToInteger32(rbx, rbx);
346 __ cvtlsi2sd(xmm0, rbx);
347 __ movsd(FieldOperand(r14, r9, times_8, FixedDoubleArray::kHeaderSize),
349 __ jmp(&entry);
350 __ bind(&convert_hole);
353 __ CompareRoot(rbx, Heap::kTheHoleValueRootIndex);
354 __ Assert(equal, "object found in smi-only array");
357 __ movq(FieldOperand(r14, r9, times_8, FixedDoubleArray::kHeaderSize), r15);
358 __ bind(&entry);
359 __ decq(r9);
360 __ j(not_sign, &loop);
362 __ bind(&done);
379 __ movq(r8, FieldOperand(rdx, JSObject::kElementsOffset));
380 __ CompareRoot(r8, Heap::kEmptyFixedArrayRootIndex);
381 __ j(equal, &only_change_map);
383 __ push(rax);
385 __ movq(r8, FieldOperand(rdx, JSObject::kElementsOffset));
386 __ SmiToInteger32(r9, FieldOperand(r8, FixedDoubleArray::kLengthOffset));
389 __ lea(rdi, Operand(r9, times_pointer_size, FixedArray::kHeaderSize));
390 __ AllocateInNewSpace(rdi, r11, r14, r15, &gc_required, TAG_OBJECT);
392 __ LoadRoot(rdi, Heap::kFixedArrayMapRootIndex);
393 __ movq(FieldOperand(r11, HeapObject::kMapOffset), rdi);
394 __ Integer32ToSmi(r14, r9);
395 __ movq(FieldOperand(r11, FixedArray::kLengthOffset), r14);
398 __ movq(rsi, BitCast<int64_t, uint64_t>(kHoleNanInt64), RelocInfo::NONE);
399 __ LoadRoot(rdi, Heap::kTheHoleValueRootIndex);
402 __ jmp(&entry);
405 __ bind(&gc_required);
406 __ pop(rax);
407 __ movq(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
408 __ jmp(fail);
411 __ bind(&loop);
412 __ movq(r14, FieldOperand(r8,
418 __ cmpq(r14, rsi);
419 __ j(equal, &convert_hole);
422 __ AllocateHeapNumber(rax, r15, &gc_required);
424 __ movq(FieldOperand(rax, HeapNumber::kValueOffset), r14);
425 __ movq(FieldOperand(r11,
430 __ movq(r15, r9);
431 __ RecordWriteArray(r11,
437 __ jmp(&entry, Label::kNear);
440 __ bind(&convert_hole);
441 __ movq(FieldOperand(r11,
447 __ bind(&entry);
448 __ decq(r9);
449 __ j(not_sign, &loop);
452 __ movq(FieldOperand(rdx, JSObject::kElementsOffset), r11);
453 __ RecordWriteField(rdx,
460 __ pop(rax);
461 __ movq(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
463 __ bind(&only_change_map);
465 __ movq(FieldOperand(rdx, HeapObject::kMapOffset), rbx);
466 __ RecordWriteField(rdx,
482 __ movq(result, FieldOperand(string, HeapObject::kMapOffset));
483 __
487 __ testb(result, Immediate(kIsIndirectStringMask));
488 __ j(zero, &check_sequential, Label::kNear);
492 __ testb(result, Immediate(kSlicedNotConsMask));
493 __ j(zero, &cons_string, Label::kNear);
497 __ SmiToInteger32(result, FieldOperand(string, SlicedString::kOffsetOffset));
498 __ addq(index, result);
499 __ movq(string, FieldOperand(string, SlicedString::kParentOffset));
500 __ jmp(&indirect_string_loaded, Label::kNear);
507 __ bind(&cons_string);
508 __ CompareRoot(FieldOperand(string, ConsString::kSecondOffset),
510 __ j(not_equal, call_runtime);
511 __ movq(string, FieldOperand(string, ConsString::kFirstOffset));
513 __ bind(&indirect_string_loaded);
514 __ movq(result, FieldOperand(string, HeapObject::kMapOffset));
515 __ movzxbl(result, FieldOperand(result, Map::kInstanceTypeOffset));
521 __ bind(&check_sequential);
523 __ testb(result, Immediate(kStringRepresentationMask));
524 __ j(zero, &seq_string, Label::kNear);
531 __ testb(result, Immediate(kIsIndirectStringMask));
532 __ Assert(zero, "external string expected, but not found");
536 __ testb(result, Immediate(kShortExternalStringTag));
537 __ j(not_zero, call_runtime);
540 __ testb(result, Immediate(kStringEncodingMask));
541 __ movq(result, FieldOperand(string, ExternalString::kResourceDataOffset));
542 __ j(not_equal, &ascii_external, Label::kNear);
544 __ movzxwl(result, Operand(result, index, times_2, 0));
545 __ jmp(&done, Label::kNear);
546 __ bind(&ascii_external);
548 __ movzxbl(result, Operand(result, index, times_1, 0));
549 __ jmp(&done, Label::kNear);
553 __ bind(&seq_string);
556 __ testb(result, Immediate(kStringEncodingMask));
557 __ j(not_zero, &ascii, Label::kNear);
562 __ movzxwl(result, FieldOperand(string,
566 __ jmp(&done, Label::kNear);
570 __ bind(&ascii);
571 __ movzxbl(result, FieldOperand(string,
575 __ bind(&done);
578 #undef __