attr->data.am_support = am_tp;
attr->data.am_arity = arity;
- assert((am_tp == ia32_am_None && arity == ia32_am_arity_none) ||
- (am_tp != ia32_am_None &&
- ((arity == ia32_am_unary) || (arity == ia32_am_binary) || (arity == ia32_am_ternary))));
+ assert(am_tp == ia32_am_None ?
+ arity == ia32_am_arity_none :
+ arity == ia32_am_unary || arity == ia32_am_binary);
}
/**
$res .= "\tset_ia32_am_support(res, ia32_am_Source, ia32_am_unary);";
} elsif($am eq "source,binary") {
$res .= "\tset_ia32_am_support(res, ia32_am_Source, ia32_am_binary);";
- } elsif($am eq "source,ternary") {
- $res .= "\tset_ia32_am_support(res, ia32_am_Source, ia32_am_ternary);";
} elsif($am eq "none") {
# nothing to do
} else {
out => [ "eax", "flags", "none", "edx", "none" ] },
ins => [ "base", "index", "mem", "divisor", "dividend_low", "dividend_high" ],
outs => [ "div_res", "flags", "M", "mod_res", "X_exc" ],
- am => "source,ternary",
+ am => "source,unary",
emit => ". idiv%M %unop3",
latency => 25,
units => [ "GP" ],
out => [ "eax", "flags", "none", "edx", "none" ] },
ins => [ "base", "index", "mem", "divisor", "dividend_low", "dividend_high" ],
outs => [ "div_res", "flags", "M", "mod_res", "X_exc" ],
- am => "source,ternary",
+ am => "source,unary",
emit => ". div%M %unop3",
latency => 25,
units => [ "GP" ],