entered into RCS
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 26 May 1992 23:25:37 +0000 (19:25 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 26 May 1992 23:25:37 +0000 (19:25 -0400)
From-SVN: r1092

gcc/config/a29k/a29k.h

index 299d88f..d80b824 100644 (file)
@@ -386,6 +386,10 @@ extern int target_flags;
    registers cannot hold floating-point values and the accumulators cannot
    hold integer values.
 
+   DImode and larger values should start at an even register just like
+   DFmode values, even though the instruction set doesn't require it, in order
+   to prevent reload from aborting due to a modes_equiv_for_class_p failure.
+
    (I'd like to use the "?:" syntax to make this more readable, but Sun's
    compiler doesn't seem to accept it.)  */
 #define HARD_REGNO_MODE_OK(REGNO, MODE)                                \
@@ -396,8 +400,7 @@ extern int target_flags;
        && GET_MODE_CLASS (MODE) != MODE_FLOAT                          \
        && GET_MODE_CLASS (MODE) != MODE_COMPLEX_FLOAT)                 \
    || ((REGNO) < R_BP                                                  \
-       && ((((REGNO) & 1) == 0) || GET_MODE_CLASS (MODE) == MODE_INT   \
-          || GET_MODE_CLASS (MODE) == MODE_COMPLEX_INT                 \
+       && ((((REGNO) & 1) == 0)                                                \
           || GET_MODE_UNIT_SIZE (MODE) <= UNITS_PER_WORD)))
 
 /* Value is 1 if it is a good idea to tie two pseudo registers