]> gcc.gnu.org Git - gcc.git/commitdiff
Fix SI followed by 4 DFs under AIX
authorMichael Meissner <meissner@gcc.gnu.org>
Tue, 24 Sep 1996 22:14:57 +0000 (22:14 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Tue, 24 Sep 1996 22:14:57 +0000 (22:14 +0000)
From-SVN: r12838

gcc/expr.c

index 1b0ba5b98b8365b50962052671cb32c9d136ae2f..926a61c00ff743b8e93c5446e7c9a301e61033b5 100644 (file)
@@ -1785,8 +1785,12 @@ emit_group_load (x, y)
        {
          if (GET_MODE (target_reg) == GET_MODE (y))
            source = y;
        {
          if (GET_MODE (target_reg) == GET_MODE (y))
            source = y;
+         /* Allow for the target_reg to be smaller than the input register
+            to allow for AIX with 4 DF arguments after a single SI arg.  The
+            last DF argument will only load 1 word into the integer registers,
+            but load a DF value into the float registers.  */
          else if (GET_MODE_SIZE (GET_MODE (target_reg))
          else if (GET_MODE_SIZE (GET_MODE (target_reg))
-                  == GET_MODE_SIZE (GET_MODE (y)))
+                  <= GET_MODE_SIZE (GET_MODE (y)))
            source = gen_rtx (SUBREG, GET_MODE (target_reg), y, 0);
          else
            abort ();       
            source = gen_rtx (SUBREG, GET_MODE (target_reg), y, 0);
          else
            abort ();       
This page took 0.073968 seconds and 5 git commands to generate.