aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-09-12 17:49:38 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-09-12 17:49:38 +0200
commit7d8102762c1b37bd1b0b59795a67ffc0da6631a5 (patch)
tree34a400a54600fe6c44115b7bb2447a9fc4285f81 /gcc/expr.h
parent886a64f901a20efd755f9fc3e71419902b0cfd41 (diff)
downloadgcc-7d8102762c1b37bd1b0b59795a67ffc0da6631a5.zip
gcc-7d8102762c1b37bd1b0b59795a67ffc0da6631a5.tar.gz
gcc-7d8102762c1b37bd1b0b59795a67ffc0da6631a5.tar.bz2
re PR debug/50299 (entryval: bigendian 32bit->64bit extension breaks address match)
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. From-SVN: r178784
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 74c608a..1652186 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -321,8 +321,16 @@ extern void emit_group_store (rtx, rtx, tree, int);
/* Copy BLKmode object from a set of registers. */
extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
+/* Mark REG as holding a parameter for the next CALL_INSN.
+ Mode is TYPE_MODE of the non-promoted parameter, or VOIDmode. */
+extern void use_reg_mode (rtx *, rtx, enum machine_mode);
+
/* Mark REG as holding a parameter for the next CALL_INSN. */
-extern void use_reg (rtx *, rtx);
+static inline void
+use_reg (rtx *fusage, rtx reg)
+{
+ use_reg_mode (fusage, reg, VOIDmode);
+}
/* Mark NREGS consecutive regs, starting at REGNO, as holding parameters
for the next CALL_INSN. */