aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames Van Artsdalen <jrv@gnu.org>1992-11-12 13:36:55 +0000
committerJames Van Artsdalen <jrv@gnu.org>1992-11-12 13:36:55 +0000
commit1bbe49a61811a8abef89487625f87bf338a9639f (patch)
tree9821a86d33cade13e17eb12fa67589d8696b7154 /gcc
parentbf02fc09833ec12432a4c5821419837d077c13ac (diff)
downloadgcc-1bbe49a61811a8abef89487625f87bf338a9639f.zip
gcc-1bbe49a61811a8abef89487625f87bf338a9639f.tar.gz
gcc-1bbe49a61811a8abef89487625f87bf338a9639f.tar.bz2
(HARD_REGNO_MODE_OK): Restrict MODE_INT from FP regs only.
From-SVN: r2745
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index ec7daea..cd2ba8a 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -276,11 +276,12 @@ extern int target_flags;
Make it clear that the fp regs could not hold a 16-byte float. */
#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) \
- && GET_MODE_UNIT_SIZE (MODE) <= 8) \
+ ((REGNO) < 2 ? 1 \
+ : (REGNO) < 4 ? 1 \
+ : FP_REGNO_P ((REGNO)) \
+ ? ((GET_MODE_CLASS (MODE) == MODE_FLOAT \
+ || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
+ && GET_MODE_UNIT_SIZE (MODE) <= 8) \
: (MODE) != QImode)
/* Value is 1 if it is a good idea to tie two pseudo registers