Hi DJ,

  Here is a small patch to fix a code-gen problem for the RL78.  The bug
  was that the register death pass was not looking inside PARALLELs, and
  thus missing some USE and SET cases.  I considered adding code to scan
  all of the elements in the PARALLEL, but the only ones that can be
  generated for the RL78 are the SImode shift patterns and these always
  consist of a SET as the first element and a CLOBBER as the second
  element.  So I decided to keep things simple and create the patch
  below.

  OK to apply ?

Cheers
  Nick
  
2015-01-20  Nick Clifton  <ni...@redhat.com>

        * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
        PARALLELs.

Index: gcc/config/rl78/rl78.c
===================================================================
--- gcc/config/rl78/rl78.c      (revision 219891)
+++ gcc/config/rl78/rl78.c      (working copy)
@@ -3583,6 +3583,8 @@
        {
        case INSN:
          p = PATTERN (insn);
+         if (GET_CODE (p) == PARALLEL)
+           p = XVECEXP (p, 0, 0);
          switch (GET_CODE (p))
            {
            case SET:

Reply via email to