modified_flags => 1,
},
+# "allocates" a free register
ProduceVal => {
op_flags => "c",
irn_flags => "R",
Cmp => {
irn_flags => "R",
state => "exc_pinned",
- reg_req => { in => [ "gp", "gp", "none", "gp", "gp" ] , out => [ "flags" ] },
+ reg_req => { in => [ "gp", "gp", "none", "gp", "gp" ],
+ out => [ "flags", "none", "none" ] },
ins => [ "base", "index", "mem", "left", "right" ],
- outs => [ "eflags" ],
+ outs => [ "eflags", "unused", "M" ],
am => "source,binary",
emit => '. cmp%M %binop',
attr => "int ins_permuted, int cmp_unsigned",
# SSE3 fisttp instruction
vfisttp => {
state => "exc_pinned",
- reg_req => { in => [ "gp", "gp", "none", "vfp" ] },
+ reg_req => { in => [ "gp", "gp", "none", "vfp" ], out => [ "in_r4", "none" ]},
ins => [ "base", "index", "mem", "val" ],
+ outs => [ "res", "M" ],
latency => 4,
units => [ "VFP" ],
- mode => "mode_M",
attr_type => "ia32_x87_attr_t",
},
state => "exc_pinned",
rd_constructor => "NONE",
reg_req => { },
- emit => '. fist%M %AM',
+ emit => '. fisttp%M %AM',
mode => "mode_M",
attr_type => "ia32_x87_attr_t",
latency => 2,