From: Richard Kenner Date: Tue, 26 May 1992 23:25:37 +0000 (-0400) Subject: entered into RCS X-Git-Tag: misc/cutover-egcs-0~12839 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c753237db26c6fe9dd4c648db2392af534b5a653;p=thirdparty%2Fgcc.git entered into RCS From-SVN: r1092 --- diff --git a/gcc/config/a29k/a29k.h b/gcc/config/a29k/a29k.h index 299d88f0e810..d80b82419acb 100644 --- a/gcc/config/a29k/a29k.h +++ b/gcc/config/a29k/a29k.h @@ -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