diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-05-26 19:25:37 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-05-26 19:25:37 -0400 |
commit | c753237db26c6fe9dd4c648db2392af534b5a653 (patch) | |
tree | 97b4b6a0e15c22b49726f66947b9f5ae91947b6e /gcc | |
parent | 2e24869ea7f0280c5c898c8509406d39bb3d9532 (diff) | |
download | gcc-c753237db26c6fe9dd4c648db2392af534b5a653.zip gcc-c753237db26c6fe9dd4c648db2392af534b5a653.tar.gz gcc-c753237db26c6fe9dd4c648db2392af534b5a653.tar.bz2 |
entered into RCS
From-SVN: r1092
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/a29k/a29k.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/a29k/a29k.h b/gcc/config/a29k/a29k.h index 299d88f..d80b824 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 |