From 8eb99146fb0cd70a29d359508fe27bfb4767cb8c Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 26 Oct 2000 16:15:26 -0700 Subject: [PATCH] calls.c (expand_call): Supress sibcall if we have a BLKmode return in registers. * calls.c (expand_call): Supress sibcall if we have a BLKmode return in registers. From-SVN: r37076 --- gcc/ChangeLog | 5 +++++ gcc/calls.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eb7254354d6..8367bdb2661 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-10-26 Richard Henderson + + * calls.c (expand_call): Supress sibcall if we have a + BLKmode return in registers. + 2000-10-26 Bernd Schmidt * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants diff --git a/gcc/calls.c b/gcc/calls.c index 0eea66436df..e90be2ea81f 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -3259,7 +3259,12 @@ expand_call (exp, target, ignore) emit_move_insn (target, valreg); } else if (TYPE_MODE (TREE_TYPE (exp)) == BLKmode) - target = copy_blkmode_from_reg (target, valreg, TREE_TYPE (exp)); + { + target = copy_blkmode_from_reg (target, valreg, TREE_TYPE (exp)); + + /* We can not support sibling calls for this case. */ + sibcall_failure = 1; + } else target = copy_to_reg (valreg); -- 2.30.2