aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2005-12-09 08:19:15 +0000
committerThiemo Seufer <ths@gcc.gnu.org>2005-12-09 08:19:15 +0000
commit2cf2d928fc41f13373db65aa00589bdc374a857b (patch)
treed1de596dfcf5f12178f5810063ed56338dd09bc0 /gcc
parent18d83a6fa87f8fea6177fc1720eacbcd920b91cf (diff)
downloadgcc-2cf2d928fc41f13373db65aa00589bdc374a857b.zip
gcc-2cf2d928fc41f13373db65aa00589bdc374a857b.tar.gz
gcc-2cf2d928fc41f13373db65aa00589bdc374a857b.tar.bz2
mips.c (override_options): Don't allow too small integers in FP registers.
* config/mips/mips.c (override_options): Don't allow too small integers in FP registers. From-SVN: r108276
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5faabaf..22a9fbc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-09 Thiemo Seufer <ths@networkno.de>
+
+ * config/mips/mips.c (override_options): Don't allow too small
+ integers in FP registers.
+
2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_function_ok_for_sibcall): Use
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 3e7d0f0..5a655f6 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -4916,8 +4916,13 @@ override_options (void)
&& size <= UNITS_PER_FPVALUE)
/* Allow integer modes that fit into a single
register. We need to put integers into FPRs
- when using instructions like cvt and trunc. */
- || (class == MODE_INT && size <= UNITS_PER_FPREG)
+ when using instructions like cvt and trunc.
+ We can't allow sizes smaller than a word,
+ the FPU has no appropriate load/store
+ instructions for those. */
+ || (class == MODE_INT
+ && size >= MIN_UNITS_PER_WORD
+ && size <= UNITS_PER_FPREG)
/* Allow TFmode for CCmode reloads. */
|| (ISA_HAS_8CC && mode == TFmode));