aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-04-04 18:18:07 -0600
committerJeff Law <law@gcc.gnu.org>1993-04-04 18:18:07 -0600
commit1cfe228c0c0bcfe0f7ae3ab20835190694beafc0 (patch)
treebd8416f01f156182c7f65cb196699aa81aed9be0 /gcc
parent6d9d0ca1724ec8adb755eb3483e28d35ac8b84e6 (diff)
downloadgcc-1cfe228c0c0bcfe0f7ae3ab20835190694beafc0.zip
gcc-1cfe228c0c0bcfe0f7ae3ab20835190694beafc0.tar.gz
gcc-1cfe228c0c0bcfe0f7ae3ab20835190694beafc0.tar.bz2
pa.h (HARD_REGNO_MODE_OK): Do not accept integer modes greater than 32 bits in 1.0 FP registers.
* pa.h (HARD_REGNO_MODE_OK): Do not accept integer modes greater than 32 bits in 1.0 FP registers. * pa.md (movdi patterns): Do not accept 1.0 FP registers. (floatunsdisf, floatunsdidf expanders): Disable unless TARGET_SNAKE. (floatdisf2, floatdidf2 patterns): Likewise. (fix_truncdisf2, fix_truncdidf2): Likewise. From-SVN: r4017
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 8a65f74..64067cc 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -404,7 +404,9 @@ extern int target_flags;
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
((REGNO) == 0 ? (MODE) == CCmode || (MODE) == CCFPmode \
: (REGNO) < 32 ? ((GET_MODE_SIZE (MODE) <= 4) ? 1 : ((REGNO) & 1) == 0)\
- : (REGNO) < 44 ? (GET_MODE_SIZE (MODE) >= 4) \
+ : (REGNO) < 44 ? (GET_MODE_SIZE (MODE) == 4 \
+ || (GET_MODE_SIZE (MODE) > 4 \
+ && GET_MODE_CLASS (MODE) == MODE_FLOAT)) \
: (GET_MODE_SIZE (MODE) > 4 ? ((REGNO) & 1) == 0 \
: 1))