]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/local-alloc.c
reload.c (find_reloads): Handle constraint letters marked by EXTRA_ADDRESS_CONSTRAINT...
[gcc.git] / gcc / local-alloc.c
index 77607ba74be5b3e34f9e4ba1ff8cc56b00613693..04e2fbe5a4c7cc5951bb03cc6b223b34b7cc8ac7 100644 (file)
@@ -1342,7 +1342,8 @@ block_alloc (b)
                  /* If the operand is an address, find a register in it.
                     There may be more than one register, but we only try one
                     of them.  */
-                 if (recog_data.constraints[i][0] == 'p')
+                 if (recog_data.constraints[i][0] == 'p'
+                     || EXTRA_ADDRESS_CONSTRAINT (recog_data.constraints[i][0]))
                    while (GET_CODE (r1) == PLUS || GET_CODE (r1) == MULT)
                      r1 = XEXP (r1, 0);
 
@@ -2472,7 +2473,8 @@ requires_inout (p)
        break;
 
       default:
-       if (REG_CLASS_FROM_LETTER (c) == NO_REGS)
+       if (REG_CLASS_FROM_LETTER (c) == NO_REGS
+           && !EXTRA_ADDRESS_CONSTRAINT (c))
          break;
        /* FALLTHRU */
       case 'p':
This page took 0.024116 seconds and 5 git commands to generate.