summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-26 23:15:26 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-26 23:15:26 +0000
commit044aa5ed5fcfcfb898fb5367fde53ee654937540 (patch)
tree7c494e52ae3f3c79e7d798a6b2a4259d98643e55
parent76581d4542fec2e87c36e1967652eec7791c49e4 (diff)
downloadppe42-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/ChangeLog5
-rw-r--r--gcc/calls.c7
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);
OpenPOWER on IntegriCloud