• Home
  • Raw
  • Download

Lines Matching full:__

34 #define __ masm.  macro
49 __ movsd(xmm0, Operand(esp, 1 * kPointerSize)); in CreateSqrtFunction()
50 __ sqrtsd(xmm0, xmm0); in CreateSqrtFunction()
51 __ movsd(Operand(esp, 1 * kPointerSize), xmm0); in CreateSqrtFunction()
53 __ fld_d(Operand(esp, 1 * kPointerSize)); in CreateSqrtFunction()
54 __ Ret(); in CreateSqrtFunction()
68 #undef __
69 #define __ ACCESS_MASM(masm) macro
88 __ cmp(loop_count, 0); in MemMoveEmitMainLoop()
89 __ j(equal, &move_last_63); in MemMoveEmitMainLoop()
90 __ bind(&loop); in MemMoveEmitMainLoop()
92 if (direction == BACKWARD) __ sub(src, Immediate(0x40)); in MemMoveEmitMainLoop()
93 __ movdq(alignment == MOVE_ALIGNED, xmm0, Operand(src, 0x00)); in MemMoveEmitMainLoop()
94 __ movdq(alignment == MOVE_ALIGNED, xmm1, Operand(src, 0x10)); in MemMoveEmitMainLoop()
95 __ movdq(alignment == MOVE_ALIGNED, xmm2, Operand(src, 0x20)); in MemMoveEmitMainLoop()
96 __ movdq(alignment == MOVE_ALIGNED, xmm3, Operand(src, 0x30)); in MemMoveEmitMainLoop()
97 if (direction == FORWARD) __ add(src, Immediate(0x40)); in MemMoveEmitMainLoop()
98 if (direction == BACKWARD) __ sub(dst, Immediate(0x40)); in MemMoveEmitMainLoop()
99 __ movdqa(Operand(dst, 0x00), xmm0); in MemMoveEmitMainLoop()
100 __ movdqa(Operand(dst, 0x10), xmm1); in MemMoveEmitMainLoop()
101 __ movdqa(Operand(dst, 0x20), xmm2); in MemMoveEmitMainLoop()
102 __ movdqa(Operand(dst, 0x30), xmm3); in MemMoveEmitMainLoop()
103 if (direction == FORWARD) __ add(dst, Immediate(0x40)); in MemMoveEmitMainLoop()
104 __ dec(loop_count); in MemMoveEmitMainLoop()
105 __ j(not_zero, &loop); in MemMoveEmitMainLoop()
107 __ bind(&move_last_63); in MemMoveEmitMainLoop()
108 __ test(count, Immediate(0x20)); in MemMoveEmitMainLoop()
109 __ j(zero, &move_last_31); in MemMoveEmitMainLoop()
110 if (direction == BACKWARD) __ sub(src, Immediate(0x20)); in MemMoveEmitMainLoop()
111 __ movdq(alignment == MOVE_ALIGNED, xmm0, Operand(src, 0x00)); in MemMoveEmitMainLoop()
112 __ movdq(alignment == MOVE_ALIGNED, xmm1, Operand(src, 0x10)); in MemMoveEmitMainLoop()
113 if (direction == FORWARD) __ add(src, Immediate(0x20)); in MemMoveEmitMainLoop()
114 if (direction == BACKWARD) __ sub(dst, Immediate(0x20)); in MemMoveEmitMainLoop()
115 __ movdqa(Operand(dst, 0x00), xmm0); in MemMoveEmitMainLoop()
116 __ movdqa(Operand(dst, 0x10), xmm1); in MemMoveEmitMainLoop()
117 if (direction == FORWARD) __ add(dst, Immediate(0x20)); in MemMoveEmitMainLoop()
119 __ bind(&move_last_31); in MemMoveEmitMainLoop()
120 __ test(count, Immediate(0x10)); in MemMoveEmitMainLoop()
121 __ j(zero, move_last_15); in MemMoveEmitMainLoop()
122 if (direction == BACKWARD) __ sub(src, Immediate(0x10)); in MemMoveEmitMainLoop()
123 __ movdq(alignment == MOVE_ALIGNED, xmm0, Operand(src, 0)); in MemMoveEmitMainLoop()
124 if (direction == FORWARD) __ add(src, Immediate(0x10)); in MemMoveEmitMainLoop()
125 if (direction == BACKWARD) __ sub(dst, Immediate(0x10)); in MemMoveEmitMainLoop()
126 __ movdqa(Operand(dst, 0), xmm0); in MemMoveEmitMainLoop()
127 if (direction == FORWARD) __ add(dst, Immediate(0x10)); in MemMoveEmitMainLoop()
132 __ pop(esi); in MemMoveEmitPopAndReturn()
133 __ pop(edi); in MemMoveEmitPopAndReturn()
134 __ ret(0); in MemMoveEmitPopAndReturn()
138 #undef __
139 #define __ masm. macro
193 __ push(edi); in CreateMemMoveFunction()
194 __ push(esi); in CreateMemMoveFunction()
200 __ mov(dst, Operand(esp, stack_offset + kDestinationOffset)); in CreateMemMoveFunction()
201 __ mov(src, Operand(esp, stack_offset + kSourceOffset)); in CreateMemMoveFunction()
202 __ mov(count, Operand(esp, stack_offset + kSizeOffset)); in CreateMemMoveFunction()
204 __ cmp(dst, src); in CreateMemMoveFunction()
205 __ j(equal, &pop_and_return); in CreateMemMoveFunction()
207 __ prefetch(Operand(src, 0), 1); in CreateMemMoveFunction()
208 __ cmp(count, kSmallCopySize); in CreateMemMoveFunction()
209 __ j(below_equal, &small_size); in CreateMemMoveFunction()
210 __ cmp(count, kMediumCopySize); in CreateMemMoveFunction()
211 __ j(below_equal, &medium_size); in CreateMemMoveFunction()
212 __ cmp(dst, src); in CreateMemMoveFunction()
213 __ j(above, &backward); in CreateMemMoveFunction()
218 __ mov(eax, src); in CreateMemMoveFunction()
219 __ sub(eax, dst); in CreateMemMoveFunction()
220 __ cmp(eax, kMinMoveDistance); in CreateMemMoveFunction()
221 __ j(below, &forward_much_overlap); in CreateMemMoveFunction()
223 __ movdqu(xmm0, Operand(src, 0)); in CreateMemMoveFunction()
224 __ movdqu(Operand(dst, 0), xmm0); in CreateMemMoveFunction()
226 __ mov(edx, dst); in CreateMemMoveFunction()
227 __ and_(edx, 0xF); in CreateMemMoveFunction()
228 __ neg(edx); in CreateMemMoveFunction()
229 __ add(edx, Immediate(16)); in CreateMemMoveFunction()
230 __ add(dst, edx); in CreateMemMoveFunction()
231 __ add(src, edx); in CreateMemMoveFunction()
232 __ sub(count, edx); in CreateMemMoveFunction()
234 __ mov(loop_count, count); in CreateMemMoveFunction()
235 __ shr(loop_count, 6); in CreateMemMoveFunction()
237 __ test(src, Immediate(0xF)); in CreateMemMoveFunction()
238 __ j(not_zero, &unaligned_source); in CreateMemMoveFunction()
242 __ bind(&move_last_15); in CreateMemMoveFunction()
243 __ and_(count, 0xF); in CreateMemMoveFunction()
244 __ j(zero, &skip_last_move, Label::kNear); in CreateMemMoveFunction()
245 __ movdqu(xmm0, Operand(src, count, times_1, -0x10)); in CreateMemMoveFunction()
246 __ movdqu(Operand(dst, count, times_1, -0x10), xmm0); in CreateMemMoveFunction()
247 __ bind(&skip_last_move); in CreateMemMoveFunction()
251 __ bind(&unaligned_source); in CreateMemMoveFunction()
253 __ jmp(&move_last_15); in CreateMemMoveFunction()
257 __ bind(&loop_until_aligned); in CreateMemMoveFunction()
258 __ mov_b(eax, Operand(src, 0)); in CreateMemMoveFunction()
259 __ inc(src); in CreateMemMoveFunction()
260 __ mov_b(Operand(dst, 0), eax); in CreateMemMoveFunction()
261 __ inc(dst); in CreateMemMoveFunction()
262 __ dec(count); in CreateMemMoveFunction()
263 __ bind(&forward_much_overlap); // Entry point into this block. in CreateMemMoveFunction()
264 __ test(dst, Immediate(0xF)); in CreateMemMoveFunction()
265 __ j(not_zero, &loop_until_aligned); in CreateMemMoveFunction()
267 __ mov(loop_count, count); in CreateMemMoveFunction()
268 __ shr(loop_count, 6); in CreateMemMoveFunction()
271 __ bind(&last_15_much_overlap); in CreateMemMoveFunction()
272 __ and_(count, 0xF); in CreateMemMoveFunction()
273 __ j(zero, &pop_and_return); in CreateMemMoveFunction()
274 __ cmp(count, kSmallCopySize); in CreateMemMoveFunction()
275 __ j(below_equal, &small_size); in CreateMemMoveFunction()
276 __ jmp(&medium_size); in CreateMemMoveFunction()
282 __ bind(&backward); in CreateMemMoveFunction()
284 __ add(dst, count); in CreateMemMoveFunction()
285 __ add(src, count); in CreateMemMoveFunction()
286 __ mov(eax, dst); in CreateMemMoveFunction()
287 __ sub(eax, src); in CreateMemMoveFunction()
288 __ cmp(eax, kMinMoveDistance); in CreateMemMoveFunction()
289 __ j(below, &backward_much_overlap); in CreateMemMoveFunction()
291 __ movdqu(xmm0, Operand(src, -0x10)); in CreateMemMoveFunction()
292 __ movdqu(Operand(dst, -0x10), xmm0); in CreateMemMoveFunction()
294 __ mov(edx, dst); in CreateMemMoveFunction()
295 __ and_(edx, 0xF); in CreateMemMoveFunction()
296 __ sub(dst, edx); in CreateMemMoveFunction()
297 __ sub(src, edx); in CreateMemMoveFunction()
298 __ sub(count, edx); in CreateMemMoveFunction()
300 __ mov(loop_count, count); in CreateMemMoveFunction()
301 __ shr(loop_count, 6); in CreateMemMoveFunction()
303 __ test(src, Immediate(0xF)); in CreateMemMoveFunction()
304 __ j(not_zero, &unaligned_source); in CreateMemMoveFunction()
308 __ bind(&move_first_15); in CreateMemMoveFunction()
309 __ and_(count, 0xF); in CreateMemMoveFunction()
310 __ j(zero, &skip_last_move, Label::kNear); in CreateMemMoveFunction()
311 __ sub(src, count); in CreateMemMoveFunction()
312 __ sub(dst, count); in CreateMemMoveFunction()
313 __ movdqu(xmm0, Operand(src, 0)); in CreateMemMoveFunction()
314 __ movdqu(Operand(dst, 0), xmm0); in CreateMemMoveFunction()
315 __ bind(&skip_last_move); in CreateMemMoveFunction()
319 __ bind(&unaligned_source); in CreateMemMoveFunction()
321 __ jmp(&move_first_15); in CreateMemMoveFunction()
325 __ bind(&loop_until_aligned); in CreateMemMoveFunction()
326 __ dec(src); in CreateMemMoveFunction()
327 __ dec(dst); in CreateMemMoveFunction()
328 __ mov_b(eax, Operand(src, 0)); in CreateMemMoveFunction()
329 __ mov_b(Operand(dst, 0), eax); in CreateMemMoveFunction()
330 __ dec(count); in CreateMemMoveFunction()
331 __ bind(&backward_much_overlap); // Entry point into this block. in CreateMemMoveFunction()
332 __ test(dst, Immediate(0xF)); in CreateMemMoveFunction()
333 __ j(not_zero, &loop_until_aligned); in CreateMemMoveFunction()
335 __ mov(loop_count, count); in CreateMemMoveFunction()
336 __ shr(loop_count, 6); in CreateMemMoveFunction()
339 __ bind(&first_15_much_overlap); in CreateMemMoveFunction()
340 __ and_(count, 0xF); in CreateMemMoveFunction()
341 __ j(zero, &pop_and_return); in CreateMemMoveFunction()
343 __ sub(dst, count); in CreateMemMoveFunction()
344 __ sub(src, count); in CreateMemMoveFunction()
345 __ cmp(count, kSmallCopySize); in CreateMemMoveFunction()
346 __ j(below_equal, &small_size); in CreateMemMoveFunction()
347 __ jmp(&medium_size); in CreateMemMoveFunction()
355 __ bind(&f9_16); in CreateMemMoveFunction()
356 __ movsd(xmm0, Operand(src, 0)); in CreateMemMoveFunction()
357 __ movsd(xmm1, Operand(src, count, times_1, -8)); in CreateMemMoveFunction()
358 __ movsd(Operand(dst, 0), xmm0); in CreateMemMoveFunction()
359 __ movsd(Operand(dst, count, times_1, -8), xmm1); in CreateMemMoveFunction()
362 __ bind(&f17_32); in CreateMemMoveFunction()
363 __ movdqu(xmm0, Operand(src, 0)); in CreateMemMoveFunction()
364 __ movdqu(xmm1, Operand(src, count, times_1, -0x10)); in CreateMemMoveFunction()
365 __ movdqu(Operand(dst, 0x00), xmm0); in CreateMemMoveFunction()
366 __ movdqu(Operand(dst, count, times_1, -0x10), xmm1); in CreateMemMoveFunction()
369 __ bind(&f33_48); in CreateMemMoveFunction()
370 __ movdqu(xmm0, Operand(src, 0x00)); in CreateMemMoveFunction()
371 __ movdqu(xmm1, Operand(src, 0x10)); in CreateMemMoveFunction()
372 __ movdqu(xmm2, Operand(src, count, times_1, -0x10)); in CreateMemMoveFunction()
373 __ movdqu(Operand(dst, 0x00), xmm0); in CreateMemMoveFunction()
374 __ movdqu(Operand(dst, 0x10), xmm1); in CreateMemMoveFunction()
375 __ movdqu(Operand(dst, count, times_1, -0x10), xmm2); in CreateMemMoveFunction()
378 __ bind(&f49_63); in CreateMemMoveFunction()
379 __ movdqu(xmm0, Operand(src, 0x00)); in CreateMemMoveFunction()
380 __ movdqu(xmm1, Operand(src, 0x10)); in CreateMemMoveFunction()
381 __ movdqu(xmm2, Operand(src, 0x20)); in CreateMemMoveFunction()
382 __ movdqu(xmm3, Operand(src, count, times_1, -0x10)); in CreateMemMoveFunction()
383 __ movdqu(Operand(dst, 0x00), xmm0); in CreateMemMoveFunction()
384 __ movdqu(Operand(dst, 0x10), xmm1); in CreateMemMoveFunction()
385 __ movdqu(Operand(dst, 0x20), xmm2); in CreateMemMoveFunction()
386 __ movdqu(Operand(dst, count, times_1, -0x10), xmm3); in CreateMemMoveFunction()
389 __ bind(&medium_handlers); in CreateMemMoveFunction()
390 __ dd(conv.address(&f9_16)); in CreateMemMoveFunction()
391 __ dd(conv.address(&f17_32)); in CreateMemMoveFunction()
392 __ dd(conv.address(&f33_48)); in CreateMemMoveFunction()
393 __ dd(conv.address(&f49_63)); in CreateMemMoveFunction()
395 __ bind(&medium_size); // Entry point into this block. in CreateMemMoveFunction()
396 __ mov(eax, count); in CreateMemMoveFunction()
397 __ dec(eax); in CreateMemMoveFunction()
398 __ shr(eax, 4); in CreateMemMoveFunction()
401 __ cmp(eax, 3); in CreateMemMoveFunction()
402 __ j(below_equal, &ok); in CreateMemMoveFunction()
403 __ int3(); in CreateMemMoveFunction()
404 __ bind(&ok); in CreateMemMoveFunction()
406 __ mov(eax, Operand(eax, times_4, conv.address(&medium_handlers))); in CreateMemMoveFunction()
407 __ jmp(eax); in CreateMemMoveFunction()
412 __ bind(&f0); in CreateMemMoveFunction()
415 __ bind(&f1); in CreateMemMoveFunction()
416 __ mov_b(eax, Operand(src, 0)); in CreateMemMoveFunction()
417 __ mov_b(Operand(dst, 0), eax); in CreateMemMoveFunction()
420 __ bind(&f2); in CreateMemMoveFunction()
421 __ mov_w(eax, Operand(src, 0)); in CreateMemMoveFunction()
422 __ mov_w(Operand(dst, 0), eax); in CreateMemMoveFunction()
425 __ bind(&f3); in CreateMemMoveFunction()
426 __ mov_w(eax, Operand(src, 0)); in CreateMemMoveFunction()
427 __ mov_b(edx, Operand(src, 2)); in CreateMemMoveFunction()
428 __ mov_w(Operand(dst, 0), eax); in CreateMemMoveFunction()
429 __ mov_b(Operand(dst, 2), edx); in CreateMemMoveFunction()
432 __ bind(&f4); in CreateMemMoveFunction()
433 __ mov(eax, Operand(src, 0)); in CreateMemMoveFunction()
434 __ mov(Operand(dst, 0), eax); in CreateMemMoveFunction()
437 __ bind(&f5_8); in CreateMemMoveFunction()
438 __ mov(eax, Operand(src, 0)); in CreateMemMoveFunction()
439 __ mov(edx, Operand(src, count, times_1, -4)); in CreateMemMoveFunction()
440 __ mov(Operand(dst, 0), eax); in CreateMemMoveFunction()
441 __ mov(Operand(dst, count, times_1, -4), edx); in CreateMemMoveFunction()
444 __ bind(&small_handlers); in CreateMemMoveFunction()
445 __ dd(conv.address(&f0)); in CreateMemMoveFunction()
446 __ dd(conv.address(&f1)); in CreateMemMoveFunction()
447 __ dd(conv.address(&f2)); in CreateMemMoveFunction()
448 __ dd(conv.address(&f3)); in CreateMemMoveFunction()
449 __ dd(conv.address(&f4)); in CreateMemMoveFunction()
450 __ dd(conv.address(&f5_8)); in CreateMemMoveFunction()
451 __ dd(conv.address(&f5_8)); in CreateMemMoveFunction()
452 __ dd(conv.address(&f5_8)); in CreateMemMoveFunction()
453 __ dd(conv.address(&f5_8)); in CreateMemMoveFunction()
455 __ bind(&small_size); // Entry point into this block. in CreateMemMoveFunction()
458 __ cmp(count, 8); in CreateMemMoveFunction()
459 __ j(below_equal, &ok); in CreateMemMoveFunction()
460 __ int3(); in CreateMemMoveFunction()
461 __ bind(&ok); in CreateMemMoveFunction()
463 __ mov(eax, Operand(count, times_4, conv.address(&small_handlers))); in CreateMemMoveFunction()
464 __ jmp(eax); in CreateMemMoveFunction()
467 __ bind(&pop_and_return); in CreateMemMoveFunction()
481 #undef __
486 #define __ ACCESS_MASM(masm) macro
495 __ bind(&indirect_string_loaded); in Generate()
498 __ mov(result, FieldOperand(string, HeapObject::kMapOffset)); in Generate()
499 __ movzx_b(result, FieldOperand(result, Map::kInstanceTypeOffset)); in Generate()
503 __ test(result, Immediate(kIsIndirectStringMask)); in Generate()
504 __ j(zero, &check_sequential, Label::kNear); in Generate()
508 __ and_(result, Immediate(kStringRepresentationMask)); in Generate()
509 __ cmp(result, Immediate(kConsStringTag)); in Generate()
510 __ j(equal, &cons_string, Label::kNear); in Generate()
511 __ cmp(result, Immediate(kThinStringTag)); in Generate()
512 __ j(equal, &thin_string, Label::kNear); in Generate()
515 __ mov(result, FieldOperand(string, SlicedString::kOffsetOffset)); in Generate()
516 __ SmiUntag(result); in Generate()
517 __ add(index, result); in Generate()
518 __ mov(string, FieldOperand(string, SlicedString::kParentOffset)); in Generate()
519 __ jmp(&indirect_string_loaded); in Generate()
522 __ bind(&thin_string); in Generate()
523 __ mov(string, FieldOperand(string, ThinString::kActualOffset)); in Generate()
524 __ jmp(&indirect_string_loaded); in Generate()
531 __ bind(&cons_string); in Generate()
532 __ cmp(FieldOperand(string, ConsString::kSecondOffset), in Generate()
534 __ j(not_equal, call_runtime); in Generate()
535 __ mov(string, FieldOperand(string, ConsString::kFirstOffset)); in Generate()
536 __ jmp(&indirect_string_loaded); in Generate()
542 __ bind(&check_sequential); in Generate()
544 __ test(result, Immediate(kStringRepresentationMask)); in Generate()
545 __ j(zero, &seq_string, Label::kNear); in Generate()
552 __ test(result, Immediate(kIsIndirectStringMask)); in Generate()
553 __ Assert(zero, kExternalStringExpectedButNotFound); in Generate()
557 __ test_b(result, Immediate(kShortExternalStringMask)); in Generate()
558 __ j(not_zero, call_runtime); in Generate()
561 __ test_b(result, Immediate(kStringEncodingMask)); in Generate()
562 __ mov(result, FieldOperand(string, ExternalString::kResourceDataOffset)); in Generate()
563 __ j(not_equal, &one_byte_external, Label::kNear); in Generate()
565 __ movzx_w(result, Operand(result, index, times_2, 0)); in Generate()
566 __ jmp(&done, Label::kNear); in Generate()
567 __ bind(&one_byte_external); in Generate()
569 __ movzx_b(result, Operand(result, index, times_1, 0)); in Generate()
570 __ jmp(&done, Label::kNear); in Generate()
574 __ bind(&seq_string); in Generate()
577 __ test(result, Immediate(kStringEncodingMask)); in Generate()
578 __ j(not_zero, &one_byte, Label::kNear); in Generate()
582 __ movzx_w(result, FieldOperand(string, in Generate()
586 __ jmp(&done, Label::kNear); in Generate()
590 __ bind(&one_byte); in Generate()
591 __ movzx_b(result, FieldOperand(string, in Generate()
595 __ bind(&done); in Generate()
598 #undef __