Commit 1302b069 authored by Christoph Mallon's avatar Christoph Mallon
Browse files

ia32: Consistently do not rematerialize both signed and unsigned double width multiplications.

This was lost for the unsigned multiplication some years ago.
parent d1be27a3
......@@ -218,6 +218,8 @@ my $divop = {
};
my $mulop = {
# we should not rematerialize these nodes. They produce 2 results and have
# very strict constraints
state => "exc_pinned",
in_reqs => [ "gp", "gp", "none", "eax", "gp" ],
out_reqs => [ "eax", "flags", "none", "edx" ],
......@@ -433,10 +435,8 @@ l_Adc => {
Mul => {
template => $mulop,
# we should not rematerialize this node. It produces 2 results and has
# very strict constraints
emit => "mul%M %AS4",
latency => 10,
emit => "mul%M %AS4",
latency => 10,
},
l_Mul => {
......@@ -468,9 +468,8 @@ IMulImm => {
IMul1OP => {
template => $mulop,
irn_flags => [ "rematerializable" ],
emit => "imul%M %AS4",
latency => 5,
emit => "imul%M %AS4",
latency => 5,
},
l_IMul => {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment