From 9d6e10c70a5c5c2ae0a867f287623b1d83f2969a Mon Sep 17 00:00:00 2001 From: Renlin Li Date: Wed, 19 Nov 2014 15:15:51 +0000 Subject: re PR middle-end/63762 ([ARM]GCC generates UNPREDICTABLE STR with Rn = Rt when hard-float abi is used) 2014-11-19 Renlin Li PR middle-end/63762 * ira.c (ira): Update preferred class. * gcc.dg/pr63762.c: New test. From-SVN: r217783 --- gcc/ira.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gcc/ira.c') diff --git a/gcc/ira.c b/gcc/ira.c index 9c9e71d..e610d35 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -5263,7 +5263,18 @@ ira (FILE *f) ira_allocno_iterator ai; FOR_EACH_ALLOCNO (a, ai) - ALLOCNO_REGNO (a) = REGNO (ALLOCNO_EMIT_DATA (a)->reg); + { + int old_regno = ALLOCNO_REGNO (a); + int new_regno = REGNO (ALLOCNO_EMIT_DATA (a)->reg); + + ALLOCNO_REGNO (a) = new_regno; + + if (old_regno != new_regno) + setup_reg_classes (new_regno, reg_preferred_class (old_regno), + reg_alternate_class (old_regno), + reg_allocno_class (old_regno)); + } + } else { -- cgit v1.1