From: rth Date: Thu, 26 Oct 2000 23:15:26 +0000 (+0000) Subject: * calls.c (expand_call): Supress sibcall if we have a X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=044aa5ed5fcfcfb898fb5367fde53ee654937540;p=thirdparty%2Fgcc.git * calls.c (expand_call): Supress sibcall if we have a BLKmode return in registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37076 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eb7254354d6f..8367bdb2661e 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 0eea66436df1..e90be2ea81fe 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);