aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-10-20 21:00:23 +0000
committerEric Botcazou <ebotcazou@adacore.com>2012-10-20 21:00:23 +0000
commit9d907d95541dea303516cb562300139481b1ca6f (patch)
tree98407a614491ba2e6e3f90bd531334efd0366b60 /gcc/calls.c
parentffcf8913161ed74fad330818b89f98c471308868 (diff)
PR rtl-optimization/54315
* calls.c (expand_call): Don't deal specifically with BLKmode values returned in naked registers. * expr.h (copy_blkmode_from_reg): Adjust prototype. * expr.c (copy_blkmode_from_reg): Rename first parameter into TARGET and make it required. Assert that SRCREG hasn't BLKmode. Add a couple of short-circuits for common cases and be prepared for sub-word registers. (expand_assignment): Call copy_blkmode_from_reg for BLKmode values returned in naked registers. (store_expr): Likewise. (store_field): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192641 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c10
1 files changed, 0 insertions, 10 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index d4ef639dc10..64e4b09870c 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -3327,16 +3327,6 @@ expand_call (tree exp, rtx target, int ignore)
sibcall_failure = 1;
}
}
- else if (TYPE_MODE (rettype) == BLKmode)
- {
- rtx val = valreg;
- if (GET_MODE (val) != BLKmode)
- val = avoid_likely_spilled_reg (val);
- target = copy_blkmode_from_reg (target, val, rettype);
-
- /* We can not support sibling calls for this case. */
- sibcall_failure = 1;
- }
else
target = copy_to_reg (avoid_likely_spilled_reg (valreg));