diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2014-10-03 08:43:21 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2014-10-03 08:43:21 +0000 |
commit | 54bddf1d58d0ff4c2625a0310b8ff7853d73b871 (patch) | |
tree | cb18144264106e9531c4d4df7a79d5ff50b16098 /gcc/caller-save.c | |
parent | f598c55c56f71b77771190284c852601cf3edd0d (diff) | |
download | gcc-54bddf1d58d0ff4c2625a0310b8ff7853d73b871.tar.gz |
lra-constraints.c (inherit_in_ebb): Handle calls with multiple return values.
gcc/
* lra-constraints.c (inherit_in_ebb): Handle calls with
multiple return values.
* caller-save.c (save_call_clobbered_regs): Likewise.
From-SVN: r215839
Diffstat (limited to 'gcc/caller-save.c')
-rw-r--r-- | gcc/caller-save.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c index 11df2ecc171..e28facba7be 100644 --- a/gcc/caller-save.c +++ b/gcc/caller-save.c @@ -879,8 +879,13 @@ save_call_clobbered_regs (void) if (GET_CODE (pat) == PARALLEL) pat = XVECEXP (pat, 0, 0); dest = SET_DEST (pat); - newpat = gen_rtx_SET (VOIDmode, cheap, copy_rtx (dest)); - chain = insert_one_insn (chain, 0, -1, newpat); + /* For multiple return values dest is PARALLEL. + Currently we handle only single return value case. */ + if (REG_P (dest)) + { + newpat = gen_rtx_SET (VOIDmode, cheap, copy_rtx (dest)); + chain = insert_one_insn (chain, 0, -1, newpat); + } } } last = chain; |