diff options
| author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-12 07:46:58 +0000 |
|---|---|---|
| committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-12 07:46:58 +0000 |
| commit | ee5ab2d1409dc6bc472395af025a8cbac86a01cf (patch) | |
| tree | 4308de3c1a843d03ea183155046d08644a139ffe /gcc/expr.h | |
| parent | 3aa9fba733602f06d7163aa52b427a959a1d6d91 (diff) | |
| download | ppe42-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.h | 2 |
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) |

