Lines Matching refs:arg

350     foreach my $arg (split(/\s+/, $args))
352 my $name = "arg$argc";
354 if ($arg =~ /^([abcd]l|[abcd]x|e[abcd]x|r[abcd]x|r8|r16|r32|r64|mm|xmm|m8|m16|m32|m64|m128)\.(sb|ub|sw|uw|sd|ud|sq|uq|ps|pd)\[([^\]]+)\]$/)
364 my $arg = {
372 $arg->{register} = $register;
376 push @args, $arg;
391 elsif ($arg =~ /^st([0-9]+)\.(ps|pd)\[([^\]]+)\]$/)
401 my $arg = {
409 $arg->{register} = $register;
413 push @args, $arg;
428 elsif ($arg =~ /^(imm8|imm16|imm32|imm64)\[([^\]]+)\]$/)
433 my $arg = {
438 push @args, $arg;
442 die "Can't parse argument $arg";
448 foreach my $arg (@presets, @args)
450 if ($arg->{type} =~ /^(r8|r16|r32|r64|m8|m16|m32)$/)
452 while (!exists($arg->{register}) || !defined($arg->{register}))
454 $arg->{register} = shift @intregs;
457 $arg->{register} = $arg->{register}->{$arg->{type}};
459 elsif ($arg->{type} =~ /^(mm|m64)$/)
461 $arg->{register} = shift @mmregs;
463 elsif ($arg->{type} =~ /^(xmm|m128)$/)
465 $arg->{register} = shift @xmmregs;
467 elsif ($arg->{type} =~ /^st$/)
469 while (!exists($arg->{register}) || !defined($arg->{register}))
471 $arg->{register} = shift @fpregs;
496 arg => $args[$index],
504 print qq| = arg$index| if $type =~ /^m(8|16|32|64|128)$/;
642 foreach my $arg (@presets, @args)
644 if (defined($arg->{name}))
646 if ($arg->{type} eq "xmm")
648 $arg->{argnuml} = $argnum++;
649 $arg->{argnumh} = $argnum++;
653 $arg->{argnum} = $argnum++;
673 foreach my $arg (@presets, @args)
675 if ($arg->{type} eq "r8")
677 print qq| \"movb %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
679 elsif ($arg->{type} eq "r16")
681 print qq| \"movw %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
683 elsif ($arg->{type} eq "r32")
685 print qq| \"movl %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
687 elsif ($arg->{type} eq "r64")
689 print qq| \"movq %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
691 elsif ($arg->{type} eq "mm")
693 print qq| \"movq %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
695 elsif ($arg->{type} eq "xmm")
697 print qq| \"movlps %$arg->{argnuml}, %%$arg->{register}\\n\"\n|;
698 print qq| \"movhps %$arg->{argnumh}, %%$arg->{register}\\n\"\n|;
700 elsif ($arg->{type} eq "st")
702 $fpargs[$RegNums{$arg->{register}}] = $arg;
706 foreach my $arg (reverse @fpargs)
708 if (defined($arg))
710 if ($arg->{subtype} eq "ps")
712 print qq| \"flds %$arg->{argnum}\\n\"\n|;
714 elsif ($arg->{subtype} eq "pd")
716 print qq| \"fldl %$arg->{argnum}\\n\"\n|;
748 foreach my $arg (@args)
750 next if $arg->{type} eq "eflags";
752 if ($arg->{type} =~ /^(r8|r16|r32|r64|mm|xmm)$/)
754 print qq|$prefix%%$arg->{register}|;
756 elsif ($arg->{type} =~ /^st$/)
758 my $register = $arg->{register};
764 elsif ($arg->{type} =~ /^(m(8|16|32|64|128))$/)
766 if (exists($arg->{result}))
768 print qq|$prefix%$arg->{result}->{argnum}|;
772 print qq|$prefix%$arg->{argnum}|;
775 elsif ($arg->{type} =~ /^imm(8|16|32|64)$/)
777 print qq|$prefix\$$arg->{value}|;
877 foreach my $arg (@presets, @args)
879 if (defined($arg->{name}))
881 if ($arg->{type} eq "xmm")
883 print qq|$prefix\"m\" \($arg->{name}.uq[0]\), \"m\" \($arg->{name}.uq[1]\)|;
887 print qq|$prefix\"m\" \($arg->{name}\)|;
898 foreach my $arg (@presets, @args)
900 if ($arg->{register} && $arg->{type} ne "st")
902 my $register = $arg->{register};