aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-05-26 19:25:37 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-05-26 19:25:37 -0400
commitc753237db26c6fe9dd4c648db2392af534b5a653 (patch)
tree97b4b6a0e15c22b49726f66947b9f5ae91947b6e /gcc
parent2e24869ea7f0280c5c898c8509406d39bb3d9532 (diff)
downloadgcc-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.h7
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