(register_operand): Don't reject subreg of complex mode.
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 29 Sep 1996 23:05:22 +0000 (19:05 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 29 Sep 1996 23:05:22 +0000 (19:05 -0400)
From-SVN: r12868

gcc/recog.c

index 65e997d68a5b1492df6b258d662c7e6b9c05fbf9..1322f4154bbdfeb084c4f92e09a215c4c36f7ac7 100644 (file)
@@ -871,7 +871,9 @@ register_operand (op, mode)
          && TEST_HARD_REG_BIT (reg_class_contents[(int) CLASS_CANNOT_CHANGE_SIZE],
                                REGNO (SUBREG_REG (op)))
          && (GET_MODE_SIZE (mode)
-             != GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))))
+             != GET_MODE_SIZE (GET_MODE (SUBREG_REG (op))))
+         && GET_MODE_CLASS (GET_MODE (SUBREG_REG (op))) != MODE_COMPLEX_INT
+         && GET_MODE_CLASS (GET_MODE (SUBREG_REG (op))) != MODE_COMPLEX_FLOAT)
        return 0;
 #endif