aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1998-07-01 16:07:35 -0700
committerRichard Henderson <rth@gcc.gnu.org>1998-07-01 16:07:35 -0700
commit9591225263488fa9e6fe00508d39a431979e1f2a (patch)
tree46fb25f8645a1790176bbb3e0abe6dc5ef643d04 /gcc
parent56159047bb0b5fbd3e4355733e656fbb89290abc (diff)
downloadgcc-9591225263488fa9e6fe00508d39a431979e1f2a.zip
gcc-9591225263488fa9e6fe00508d39a431979e1f2a.tar.gz
gcc-9591225263488fa9e6fe00508d39a431979e1f2a.tar.bz2
i386.h (HARD_REGNO_MODE_OK): Kill spurrious test.
* i386.h (HARD_REGNO_MODE_OK): Kill spurrious test. (MODES_TIEABLE_P): Tie SImode and HImode. From-SVN: r20884
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.h8
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 093d3fb..fc7c2d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 1 23:06:03 1998 Richard Henderson <rth@cygnus.com>
+
+ * i386.h (HARD_REGNO_MODE_OK): Kill spurrious test.
+ (MODES_TIEABLE_P): Tie SImode and HImode.
+
1998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* invoke.texi (Optimize Options): Fix typo.
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 7e7152c..87eaf86 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -639,8 +639,7 @@ extern int ix86_arch;
for cross-compiler testing. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
- ((REGNO) < 2 ? 1 \
- : (REGNO) < 4 ? 1 \
+ ((REGNO) < 4 ? 1 \
: FP_REGNO_P (REGNO) \
? (((int) GET_MODE_CLASS (MODE) == (int) MODE_FLOAT \
|| (int) GET_MODE_CLASS (MODE) == (int) MODE_COMPLEX_FLOAT) \
@@ -653,7 +652,10 @@ extern int ix86_arch;
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) == SImode && (MODE2) == HImode \
+ || (MODE1) == HImode && (MODE2) == SImode))
/* Specify the registers used for certain standard purposes.
The values of these macros are register numbers. */