summaryrefslogtreecommitdiffstats
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-12 07:46:58 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-12 07:46:58 +0000
commitee5ab2d1409dc6bc472395af025a8cbac86a01cf (patch)
tree4308de3c1a843d03ea183155046d08644a139ffe /gcc/expr.h
parent3aa9fba733602f06d7163aa52b427a959a1d6d91 (diff)
downloadppe42-gcc-ee5ab2d1409dc6bc472395af025a8cbac86a01cf.tar.gz
ppe42-gcc-ee5ab2d1409dc6bc472395af025a8cbac86a01cf.zip
gcc/
* expr.h (copy_blkmode_to_reg): Declare. * expr.c (copy_blkmode_to_reg): New function. (expand_assignment): Don't expand register RESULT_DECLs before the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a RESULT_DECL register. (expand_expr_real_1): Handle BLKmode decls when looking for promotion. * stmt.c (expand_return): Move BLKmode-to-register code into copy_blkmode_to_reg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179839 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 16521866bfe..1bf1369ac96 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -325,6 +325,8 @@ extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
Mode is TYPE_MODE of the non-promoted parameter, or VOIDmode. */
extern void use_reg_mode (rtx *, rtx, enum machine_mode);
+extern rtx copy_blkmode_to_reg (enum machine_mode, tree);
+
/* Mark REG as holding a parameter for the next CALL_INSN. */
static inline void
use_reg (rtx *fusage, rtx reg)
OpenPOWER on IntegriCloud