aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-05-08 21:07:15 +0000
committerRichard Stallman <rms@gnu.org>1993-05-08 21:07:15 +0000
commite9575b51d7a117624f2c67434ebd8e88aead9bc4 (patch)
tree58b75b70d04eec3b97a62280515ca531263ff81d /gcc
parent172a1cb0efe872ecf0a63429da8346f3a856c0c5 (diff)
downloadgcc-e9575b51d7a117624f2c67434ebd8e88aead9bc4.zip
gcc-e9575b51d7a117624f2c67434ebd8e88aead9bc4.tar.gz
gcc-e9575b51d7a117624f2c67434ebd8e88aead9bc4.tar.bz2
(VALUE_REGNO, HARD_REGNO_MODE_OK): Add missing #undef.
(HARD_REGNO_MODE_OK): Properly check for floating-point registers. Register 16 is AP and not floating. From-SVN: r4386
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/sco.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/config/i386/sco.h b/gcc/config/i386/sco.h
index dff5e24..1a2559f 100644
--- a/gcc/config/i386/sco.h
+++ b/gcc/config/i386/sco.h
@@ -60,17 +60,19 @@
/* If no 387, use the general regs to return floating values,
since this system does not emulate the 80387. */
+#undef VALUE_REGNO
#define VALUE_REGNO(MODE) \
((TARGET_80387 && ((MODE) == SFmode || (MODE) == DFmode))
? FIRST_FLOAT_REG : 0)
-#define HARD_REGNO_MODE_OK(REGNO, MODE) \
- ((REGNO) < 2 ? 1 \
- : (REGNO) < 4 ? 1 \
- : (REGNO) >= 8 ? ((GET_MODE_CLASS (MODE) == MODE_FLOAT \
- || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
- && TARGET_80387 \
- && GET_MODE_UNIT_SIZE (MODE) <= 8) \
+#undef HARD_REGNO_MODE_OK
+#define HARD_REGNO_MODE_OK(REGNO, MODE) \
+ ((REGNO) < 2 ? 1 \
+ : (REGNO) < 4 ? 1 \
+ : FP_REGNO_P (REGNO) ? ((GET_MODE_CLASS (MODE) == MODE_FLOAT \
+ || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
+ && TARGET_80387 \
+ && GET_MODE_UNIT_SIZE (MODE) <= 8) \
: (MODE) != QImode)
#endif