Lines Matching defs:__

228 #define __ masm()->
240 __ sub(esp, Immediate(kDoubleRegsSize));
242 __ pushad();
248 __ sub(esp, Immediate(kPointerSize));
249 __ fistp_s(MemOperand(esp, 0));
250 __ pop(eax);
252 __ mov(edi, eax);
254 __ mov(ecx, eax);
255 __ and_(ecx, 0x7);
256 __ j(zero, &done, Label::kNear);
258 __ bind(&loop);
259 __ shr(eax, 0x3);
260 __ mov(ebx, eax);
261 __ and_(ebx, 0x7); // Extract the st_x index into ebx.
264 __ fstp_d(Operand(esp, ebx, times_8, 0x20));
265 __ dec(ecx); // Decrease stack depth.
266 __ j(not_zero, &loop, Label::kNear);
267 __ bind(&done);
273 __ mov(ebx, Operand(esp, kSavedRegistersAreaSize));
277 __ mov(ecx, Operand(esp, kSavedRegistersAreaSize + 1 * kPointerSize));
278 __ lea(edx, Operand(esp, kSavedRegistersAreaSize + 2 * kPointerSize));
280 __ sub(edx, ebp);
281 __ neg(edx);
283 __ push(edi);
285 __ PrepareCallCFunction(6, eax);
286 __ mov(eax, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
287 __ mov(Operand(esp, 0 * kPointerSize), eax); // Function.
288 __ mov(Operand(esp, 1 * kPointerSize), Immediate(type())); // Bailout type.
289 __ mov(Operand(esp, 2 * kPointerSize), ebx); // Bailout id.
290 __ mov(Operand(esp, 3 * kPointerSize), ecx); // Code address or 0.
291 __ mov(Operand(esp, 4 * kPointerSize), edx); // Fp-to-sp delta.
292 __ mov(Operand(esp, 5 * kPointerSize),
296 __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate()), 6);
299 __ pop(edi);
303 __ mov(ebx, Operand(eax, Deoptimizer::input_offset()));
308 __ pop(Operand(ebx, offset));
316 __ fld_d(Operand(esp, src_offset));
317 __ fstp_d(Operand(ebx, dst_offset));
323 __ fnclex();
326 __ add(esp, Immediate(kDoubleRegsSize + 2 * kPointerSize));
330 __ mov(ecx, Operand(ebx, FrameDescription::frame_size_offset()));
331 __ add(ecx, esp);
336 __ lea(edx, Operand(ebx, FrameDescription::frame_content_offset()));
338 __ jmp(&pop_loop_header);
340 __ bind(&pop_loop);
341 __ pop(Operand(edx, 0));
342 __ add(edx, Immediate(sizeof(uint32_t)));
343 __ bind(&pop_loop_header);
344 __ cmp(ecx, esp);
345 __ j(not_equal, &pop_loop);
348 __ push(edi);
349 __ push(eax);
350 __ PrepareCallCFunction(1, ebx);
351 __ mov(Operand(esp, 0 * kPointerSize), eax);
354 __ CallCFunction(
357 __ pop(eax);
358 __ pop(edi);
362 __ cmp(Operand(eax, Deoptimizer::has_alignment_padding_offset()),
364 __ j(equal, &no_padding);
365 __ pop(ecx);
367 __ cmp(ecx, Immediate(kAlignmentZapValue));
368 __ Assert(equal, kAlignmentMarkerExpected);
370 __ bind(&no_padding);
377 __ mov(edx, Operand(eax, Deoptimizer::output_count_offset()));
378 __ mov(eax, Operand(eax, Deoptimizer::output_offset()));
379 __ lea(edx, Operand(eax, edx, times_4, 0));
380 __ jmp(&outer_loop_header);
381 __ bind(&outer_push_loop);
383 __ mov(ebx, Operand(eax, 0));
384 __ mov(ecx, Operand(ebx, FrameDescription::frame_size_offset()));
385 __ jmp(&inner_loop_header);
386 __ bind(&inner_push_loop);
387 __ sub(ecx, Immediate(sizeof(uint32_t)));
388 __ push(Operand(ebx, ecx, times_1, FrameDescription::frame_content_offset()));
389 __ bind(&inner_loop_header);
390 __ test(ecx, ecx);
391 __ j(not_zero, &inner_push_loop);
392 __ add(eax, Immediate(kPointerSize));
393 __ bind(&outer_loop_header);
394 __ cmp(eax, edx);
395 __ j(below, &outer_push_loop);
402 __ mov(ecx, edi);
403 __ and_(ecx, 0x7);
404 __ j(zero, &done2, Label::kNear);
406 __ lea(ecx, Operand(ecx, ecx, times_2, 0));
407 __ bind(&loop2);
408 __ mov(eax, edi);
409 __ shr_cl(eax);
410 __ and_(eax, 0x7);
411 __ fld_d(Operand(ebx, eax, times_8, double_regs_offset));
412 __ sub(ecx, Immediate(0x3));
413 __ j(not_zero, &loop2, Label::kNear);
414 __ bind(&done2);
417 __ push(Operand(ebx, FrameDescription::state_offset()));
418 __ push(Operand(ebx, FrameDescription::pc_offset()));
419 __ push(Operand(ebx, FrameDescription::continuation_offset()));
425 __ push(Operand(ebx, offset));
429 __ popad();
432 __ ret(0);
442 __ push_imm32(i);
443 __ jmp(&done);
446 __ bind(&done);
466 #undef __