Commit 858a9ffc by Stan Cox

(output_float_compare): For pentiumpro use fcomip

From-SVN: r14048
parent 96f06cb6
...@@ -3737,9 +3737,25 @@ output_float_compare (insn, operands) ...@@ -3737,9 +3737,25 @@ output_float_compare (insn, operands)
`fcompp' float compare */ `fcompp' float compare */
if (unordered_compare) if (unordered_compare)
output_asm_insn ("fucompp", operands); if (cc_status.flags & CC_FCOMI)
{
output_asm_insn (AS2 (fucomip,%y1,%0), operands);
output_asm_insn (AS1 (fstp, %y0), operands);
RET;
}
else
output_asm_insn ("fucompp", operands);
else else
output_asm_insn ("fcompp", operands); {
if (cc_status.flags & CC_FCOMI)
{
output_asm_insn (AS2 (fcomip, %y1,%0), operands);
output_asm_insn (AS1 (fstp, %y0), operands);
RET;
}
else
output_asm_insn ("fcompp", operands);
}
} }
else else
{ {
...@@ -3764,13 +3780,7 @@ output_float_compare (insn, operands) ...@@ -3764,13 +3780,7 @@ output_float_compare (insn, operands)
output_op_from_reg (operands[1], strcat (buf, AS1 (%z0,%1))); output_op_from_reg (operands[1], strcat (buf, AS1 (%z0,%1)));
else if (cc_status.flags & CC_FCOMI) else if (cc_status.flags & CC_FCOMI)
{ {
rtx xops[3]; output_asm_insn (strcat (buf, AS2 (%z1,%y1,%0)), operands);
xops[0] = operands[0];
xops[1] = operands[1];
xops[2] = operands[0];
output_asm_insn (strcat (buf, AS2 (%z1,%y1,%2)), xops);
RET; RET;
} }
else else
......
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