diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-20 22:16:59 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-20 22:16:59 +0000 |
commit | c09425a054eba423ceb4a2382e93d7d9ea15f1c3 (patch) | |
tree | 4e90a38b800d7602fd7eb1d4fd8ad649cb0465f5 /gcc/rtl.c | |
parent | 81dd33bf17e28c74292e72136eeebe7550b8bdc6 (diff) | |
download | gcc-c09425a054eba423ceb4a2382e93d7d9ea15f1c3.tar.gz |
* emit-rtl.c (verify_rtx_sharing, copy_insn_1,
emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
containing hard regs are shared.
(gen_hard_reg_clobber): New function.
(hard_reg_clobbers): New array.
* genemit.c (gen_exp): Use gen_hard_reg_clobber.
(copy_rtx): Do not copy clobbers containing hard regs.
* rtl.h (gen_hard_reg_clobber): Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76233 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl.c')
-rw-r--r-- | gcc/rtl.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/rtl.c b/gcc/rtl.c index 313e2cb2b5c..87ffcbbb300 100644 --- a/gcc/rtl.c +++ b/gcc/rtl.c @@ -224,6 +224,10 @@ copy_rtx (rtx orig) /* SCRATCH must be shared because they represent distinct values. */ case ADDRESSOF: return orig; + case CLOBBER: + if (REG_P (XEXP (orig, 0)) && REGNO (XEXP (orig, 0)) < FIRST_PSEUDO_REGISTER) + return orig; + break; case CONST: /* CONST can be shared if it contains a SYMBOL_REF. If it contains |