aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-04-25 19:10:10 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-04-25 19:10:10 -0400
commitd8b679b944c7fbffdcb8df1ff8d68d5909b9678b (patch)
treeab7029db879b4c16f29bdf2e057b24b3045de871
parent3e4a14ef2edd79e6d00aecb83871f01d5c5a61e3 (diff)
downloadgcc-d8b679b944c7fbffdcb8df1ff8d68d5909b9678b.zip
gcc-d8b679b944c7fbffdcb8df1ff8d68d5909b9678b.tar.gz
gcc-d8b679b944c7fbffdcb8df1ff8d68d5909b9678b.tar.bz2
(untyped_call): Make it return a complex double.
From-SVN: r9464
-rw-r--r--gcc/config/i386/i386.md9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index e815346..2d91e76 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -5236,7 +5236,14 @@
{
int i;
- emit_call_insn (gen_call (operands[0], const0_rtx, NULL, const0_rtx));
+ /* In order to give reg-stack an easier job in validating two
+ coprocessor registers as containing a possible return value,
+ simply pretend the untyped call returns a complex long double
+ value. */
+ emit_call_insn (TARGET_80387
+ ? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
+ operands[0], const0_rtx)
+ : gen_call (operands[0], const0_rtx));
for (i = 0; i < XVECLEN (operands[2], 0); i++)
{