diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-26 23:15:26 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-26 23:15:26 +0000 |
| commit | 044aa5ed5fcfcfb898fb5367fde53ee654937540 (patch) | |
| tree | 7c494e52ae3f3c79e7d798a6b2a4259d98643e55 | |
| parent | 76581d4542fec2e87c36e1967652eec7791c49e4 (diff) | |
| download | ppe42-gcc-044aa5ed5fcfcfb898fb5367fde53ee654937540.tar.gz ppe42-gcc-044aa5ed5fcfcfb898fb5367fde53ee654937540.zip | |
* 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
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/calls.c | 7 |
2 files changed, 11 insertions, 1 deletions
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 <rth@redhat.com> + + * calls.c (expand_call): Supress sibcall if we have a + BLKmode return in registers. + 2000-10-26 Bernd Schmidt <bernds@redhat.co.uk> * 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); |

