Lines Matching refs:arg

327     foreach my $arg (split(/\s+/, $args))
329 my $name = "arg$argc";
331 if ($arg =~ /^([abcd]l|[abcd]x|e[abcd]x|r8|r16|r32|mm|xmm|m8|m16|m32|m64|m128)\.(sb|ub|sw|uw|sd|ud|sq|uq|ps|pd)\[([^\]]+)\]$/)
341 my $arg = {
349 $arg->{register} = $register;
353 push @args, $arg;
368 elsif ($arg =~ /^st([0-9]+)\.(ps|pd)\[([^\]]+)\]$/)
378 my $arg = {
386 $arg->{register} = $register;
390 push @args, $arg;
405 elsif ($arg =~ /^(imm8|imm16|imm32)\[([^\]]+)\]$/)
410 my $arg = {
415 push @args, $arg;
419 die "Can't parse argument $arg";
425 foreach my $arg (@presets, @args)
427 if ($arg->{type} =~ /^(r8|r16|r32|m8|m16|m32)$/)
429 while (!exists($arg->{register}) || !defined($arg->{register}))
431 $arg->{register} = shift @intregs;
434 $arg->{register} = $arg->{register}->{$arg->{type}};
436 elsif ($arg->{type} =~ /^(mm|m64)$/)
438 $arg->{register} = shift @mmregs;
440 elsif ($arg->{type} =~ /^(xmm|m128)$/)
442 $arg->{register} = shift @xmmregs;
444 elsif ($arg->{type} =~ /^st$/)
446 while (!exists($arg->{register}) || !defined($arg->{register}))
448 $arg->{register} = shift @fpregs;
473 arg => $args[$index],
481 print qq| = arg$index| if $type =~ /^m(8|16|32|64|128)$/;
619 foreach my $arg (@presets, @args)
621 if (defined($arg->{name}))
623 if ($arg->{type} eq "xmm")
625 $arg->{argnuml} = $argnum++;
626 $arg->{argnumh} = $argnum++;
630 $arg->{argnum} = $argnum++;
646 foreach my $arg (@presets, @args)
648 if ($arg->{type} eq "r8")
650 print qq| \"movb %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
652 elsif ($arg->{type} eq "r16")
654 print qq| \"movw %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
656 elsif ($arg->{type} eq "r32")
658 print qq| \"movl %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
660 elsif ($arg->{type} eq "mm")
662 print qq| \"movq %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
664 elsif ($arg->{type} eq "xmm")
666 print qq| \"movlps %$arg->{argnuml}, %%$arg->{register}\\n\"\n|;
667 print qq| \"movhps %$arg->{argnumh}, %%$arg->{register}\\n\"\n|;
669 elsif ($arg->{type} eq "st")
671 $fpargs[$RegNums{$arg->{register}}] = $arg;
675 foreach my $arg (reverse @fpargs)
677 if (defined($arg))
679 if ($arg->{subtype} eq "ps")
681 print qq| \"flds %$arg->{argnum}\\n\"\n|;
683 elsif ($arg->{subtype} eq "pd")
685 print qq| \"fldl %$arg->{argnum}\\n\"\n|;
716 foreach my $arg (@args)
718 next if $arg->{type} eq "eflags";
720 if ($arg->{type} =~ /^(r8|r16|r32|mm|xmm)$/)
722 print qq|$prefix%%$arg->{register}|;
724 elsif ($arg->{type} =~ /^st$/)
726 my $register = $arg->{register};
732 elsif ($arg->{type} =~ /^(m(8|16|32|64|128))$/)
734 if (exists($arg->{result}))
736 print qq|$prefix%$arg->{result}->{argnum}|;
740 print qq|$prefix%$arg->{argnum}|;
743 elsif ($arg->{type} =~ /^imm(8|16|32)$/)
745 print qq|$prefix\$$arg->{value}|;
841 foreach my $arg (@presets, @args)
843 if (defined($arg->{name}))
845 if ($arg->{type} eq "xmm")
847 print qq|$prefix\"m\" \($arg->{name}.uq[0]\), \"m\" \($arg->{name}.uq[1]\)|;
851 print qq|$prefix\"m\" \($arg->{name}\)|;
862 foreach my $arg (@presets, @args)
864 if ($arg->{register} && $arg->{type} ne "st")
866 print qq|$prefix\"$arg->{register}\"|;