Extend the NOT+ADC-trick (sic) for SUB to SBB.
[libfirm] / ir / be / ia32 / ia32_spec.pl
index ae6b2b9..bc39460 100644 (file)
@@ -555,7 +555,7 @@ SubMem8Bit => {
 Sbb => {
        state     => "exc_pinned",
        reg_req   => { in => [ "gp", "gp", "none", "gp", "gp", "flags" ],
-                      out => [ "in_r4 !in_r5", "flags", "none" ] },
+                      out => [ "in_r4", "flags", "none" ] },
        ins       => [ "base", "index", "mem", "minuend", "subtrahend", "eflags" ],
        outs      => [ "res", "flags", "M" ],
        am        => "source,binary",
@@ -1042,13 +1042,13 @@ Jcc => {
 SwitchJmp => {
        state     => "pinned",
        op_flags  => [ "labeled", "cfopcode", "forking" ],
-       reg_req   => { in => [ "gp" ] },
+       reg_req   => { in => [ "gp", "gp" ] },
+       ins       => [ "base", "index" ],
        mode      => "mode_T",
        attr_type => "ia32_switch_attr_t",
        attr      => "long default_pn",
-       latency   => 3,
+       latency   => 2,
        units     => [ "BRANCH" ],
-       modified_flags => $status_flags,
        init_attr => "info->out_infos = NULL;", # XXX ugly hack for out requirements
 },