aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2011-10-12 07:46:58 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2011-10-12 07:46:58 +0000
commit2ba87a294f618e93699867f50f924758c60dab45 (patch)
tree4308de3c1a843d03ea183155046d08644a139ffe /gcc/expr.h
parente755e54342572456e16194c427933aef5fcfbb69 (diff)
downloadgcc-2ba87a294f618e93699867f50f924758c60dab45.zip
gcc-2ba87a294f618e93699867f50f924758c60dab45.tar.gz
gcc-2ba87a294f618e93699867f50f924758c60dab45.tar.bz2
expr.h (copy_blkmode_to_reg): Declare.
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. From-SVN: r179839
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 1652186..1bf1369 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)