summaryrefslogtreecommitdiffstats
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-12 15:49:38 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2011-09-12 15:49:38 +0000
commitb4eeceb9b7f596eef6a585effb14cd3850a273cc (patch)
tree34a400a54600fe6c44115b7bb2447a9fc4285f81 /gcc/expr.c
parentbf412f98ddb900fedd06b4a48371ac32368c3a4f (diff)
downloadppe42-gcc-b4eeceb9b7f596eef6a585effb14cd3850a273cc.tar.gz
ppe42-gcc-b4eeceb9b7f596eef6a585effb14cd3850a273cc.zip
PR debug/50299
* calls.c (load_register_parameters): Use use_reg_mode instead of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE entry. (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument for stack CALL_INSN_FUNCTION_USAGE uses. * expr.h (use_reg_mode): New prototype. (use_reg): Changed into inline around use_reg_mode. * expr.c (use_reg): Renamed to... (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST mode to that mode instead of VOIDmode. * var-tracking.c (prepare_call_arguments): Don't track parameters whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible to it using lowpart_subreg. Convert VALUE and REG/MEM to the EXPR_LIST mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178784 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 6e35db2f2e0..e4bb633d717 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2184,13 +2184,12 @@ copy_blkmode_from_reg (rtx tgtblk, rtx srcreg, tree type)
to by CALL_FUSAGE. REG must denote a hard register. */
void
-use_reg (rtx *call_fusage, rtx reg)
+use_reg_mode (rtx *call_fusage, rtx reg, enum machine_mode mode)
{
gcc_assert (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER);
*call_fusage
- = gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_USE (VOIDmode, reg), *call_fusage);
+ = gen_rtx_EXPR_LIST (mode, gen_rtx_USE (VOIDmode, reg), *call_fusage);
}
/* Add USE expressions to *CALL_FUSAGE for each of NREGS consecutive regs,
OpenPOWER on IntegriCloud