{ name => "r14", type => 2 },
{ name => "r15", type => 2 },
# { name => "gp_NOREG", type => 4 }, # we need a dummy register for NoReg nodes
- { mode => "mode_Iu" }
+ { mode => "mode_Lu" }
],
# fp => [
# { name => "xmm0", type => 1 },
],
);
-$mode_gp = "mode_Iu";
+$mode_gp = "mode_Lu";
$mode_flags = "mode_Iu";
sub amd64_custom_init_attr {
modified_flags => 1,
},
Mul => {
- op_flags => "C",
- irn_flags => "R",
- state => "exc_pinned",
- reg_req => { in => [ "gp", "gp" ],
- out => [ "gp" ] },
- in => [ "left", "right" ],
- outs => [ "res" ],
- mode => $mode_gp,
- modified_flags => 1,
+ # we should not rematrialize this node. It produces 2 results and has
+ # very strict constraints
+ state => "exc_pinned",
+ reg_req => { in => [ "rax", "gp" ],
+ out => [ "rax rdx" ] },
+ ins => [ "left", "right" ],
+ emit => '. mul %S2',
+ outs => [ "res" ],
+ mode => $mode_gp,
+ am => "source,binary",
+ modified_flags => $status_flags
},
Sub => {
irn_flags => "R",
ins => [ "ptr", "val", "mem" ],
outs => [ "M" ],
mode => "mode_M",
- emit => ". mov (%S1), %S2"
+ emit => ". mov %S2, (%S1)"
},
#NoReg_GP => {