From 9d86e84ec0b576bd3586cf05f6605fee316c9cd4 Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Thu, 9 Jul 2015 15:39:53 +0000 Subject: re PR rtl-optimization/66782 (Unable to run 64-bit wine after MS->SYSV register changes) 2015-07-09 Vladimir Makarov PR rtl-optimization/66782 * lra-int.h (struct lra_insn_recog_data): Add comment about clobbered hard regs for arg_hard_regs. * lra.c (lra_set_insn_recog_data): Add clobbered hard regs. * lra-lives.c (process_bb_lives): Process clobbered hard regs. Add condition for processing used hard regs. * lra-constraints.c (update_ebb_live_info, inherit_in_ebb): Process clobbered hard regs. From-SVN: r225618 --- gcc/lra-int.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/lra-int.h') diff --git a/gcc/lra-int.h b/gcc/lra-int.h index a7763e8..5c64042 100644 --- a/gcc/lra-int.h +++ b/gcc/lra-int.h @@ -267,9 +267,11 @@ struct lra_insn_recog_data duplication numbers: */ rtx **operand_loc; /* The operand locations, NULL if no operands. */ rtx **dup_loc; /* The dup locations, NULL if no dups. */ - /* Number of hard registers implicitly used in given call insn. The - value can be NULL or points to array of the hard register numbers - ending with a negative value. */ + /* Number of hard registers implicitly used/clobbered in given call + insn. The value can be NULL or points to array of the hard + register numbers ending with a negative value. To differ + clobbered and used hard regs, clobbered hard regs are incremented + by FIRST_PSEUDO_REGISTER. */ int *arg_hard_regs; /* Cached value of get_preferred_alternatives. */ alternative_mask preferred_alternatives; -- cgit v1.1