aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@hxi.com>2000-07-31 12:51:11 +0000
committerJeff Law <law@gcc.gnu.org>2000-07-31 06:51:11 -0600
commit184ef18e6a32fe5c97037aa4f6ea9f36ba1890f0 (patch)
tree077e54d302c533a40a3ae08dc5a498ba943003a5
parent9492393e341dc647bae76005a1597bbbd1daa686 (diff)
downloadgcc-184ef18e6a32fe5c97037aa4f6ea9f36ba1890f0.zip
gcc-184ef18e6a32fe5c97037aa4f6ea9f36ba1890f0.tar.gz
gcc-184ef18e6a32fe5c97037aa4f6ea9f36ba1890f0.tar.bz2
h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and HImode on all architectures and a...
* h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and HImode on all architectures and a combination of HImode and SImode on H8/300H and H8/S. From-SVN: r35372
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/h8300/h8300.h8
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1d5440..2210188 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2000-07-31 Kazu Hirata <kazu@hxi.com>
+ * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
+ HImode on all architectures and a combination of HImode and SImode
+ on H8/300H and H8/S.
+
* h8300.c (split_adds_subs): Rearrange code for conciseness.
Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index 5c4604a..6e6bd44 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -308,7 +308,13 @@ do { \
when one has mode MODE1 and one has mode MODE2.
If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2,
for any hard reg, then this must be 0 for correct output. */
-#define MODES_TIEABLE_P(MODE1, MODE2) ((MODE1) == (MODE2))
+#define MODES_TIEABLE_P(MODE1, MODE2) \
+ ((MODE1) == (MODE2) \
+ || ((MODE1) == HImode && (MODE2) == QImode) \
+ || ((MODE1) == QImode && (MODE2) == HImode) \
+ || ((TARGET_H8300H || TARGET_H8300S) \
+ && (((MODE1) == SImode && (MODE2) == HImode) \
+ || ((MODE1) == HImode && (MODE2) == SImode))))
/* Specify the registers used for certain standard purposes.
The values of these macros are register numbers. */