diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2015-07-09 15:39:53 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2015-07-09 15:39:53 +0000 |
commit | 9d86e84ec0b576bd3586cf05f6605fee316c9cd4 (patch) | |
tree | 29d233e4e61f3cd1493734ba7208f952708bef72 /gcc/lra-int.h | |
parent | c551c21da8eca5bbc4798b7db33c8f3c9f39ec06 (diff) |
re PR rtl-optimization/66782 (Unable to run 64-bit wine after MS->SYSV register changes)
2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
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
Diffstat (limited to 'gcc/lra-int.h')
-rw-r--r-- | gcc/lra-int.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/lra-int.h b/gcc/lra-int.h index a7763e856dd..5c640426686 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; |