OSDN Git Service

* config/mips/mips.c (override_options): Don't allow too small
authorths <ths@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Dec 2005 08:19:15 +0000 (08:19 +0000)
committerths <ths@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Dec 2005 08:19:15 +0000 (08:19 +0000)
integers in FP registers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108276 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mips/mips.c

index 5faabaf..22a9fbc 100644 (file)
@@ -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
index 3e7d0f0..5a655f6 100644 (file)
@@ -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));