aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-10-21 21:55:58 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-10-21 21:55:58 -0400
commitec559d0c11f8820614308fb09d3637f71b392afb (patch)
tree0481b8304e156c4fb6932f728ad49b2284c30f49
parent894715dd366829dec751c83b87ce946cfbc275cf (diff)
downloadgcc-ec559d0c11f8820614308fb09d3637f71b392afb.zip
gcc-ec559d0c11f8820614308fb09d3637f71b392afb.tar.gz
gcc-ec559d0c11f8820614308fb09d3637f71b392afb.tar.bz2
(HARD_REGNO_MODE_OK): Multi-word objects cannot go into MQ, LR, or CTR.
From-SVN: r5867
-rw-r--r--gcc/config/rs6000/rs6000.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 6e1358e..77fb7d2 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -404,7 +404,8 @@ extern char *rs6000_cpu_string;
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
(FP_REGNO_P (REGNO) ? GET_MODE_CLASS (MODE) == MODE_FLOAT \
: CR_REGNO_P (REGNO) ? GET_MODE_CLASS (MODE) == MODE_CC \
- : ! INT_REGNO_P (REGNO) ? GET_MODE_CLASS (MODE) == MODE_INT \
+ : ! INT_REGNO_P (REGNO) ? (GET_MODE_CLASS (MODE) == MODE_INT \
+ && GET_MODE_SIZE (MODE) <= UNITS_PER_WORD) \
: 1)
/* Value is 1 if it is a good idea to tie two pseudo registers