re PR middle-end/6348 (internal error in allocate_dynamic_stack_space with STACK_SIZE...
authorRichard Henderson <rth@redhat.com>
Thu, 20 Mar 2003 22:51:39 +0000 (14:51 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 20 Mar 2003 22:51:39 +0000 (14:51 -0800)
        PR middle-end/6348
        * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
        different from word_mode.

From-SVN: r64628

gcc/ChangeLog
gcc/explow.c

index a8f7577..ce5f6b8 100644 (file)
@@ -1,3 +1,9 @@
+2003-03-20  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/6348
+       * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
+       different from word_mode.
+
 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
index fb13368..50556e8 100644 (file)
@@ -1365,7 +1365,7 @@ allocate_dynamic_stack_space (size, target, known_align)
 
       pred = insn_data[(int) CODE_FOR_allocate_stack].operand[1].predicate;
       if (pred && ! ((*pred) (size, mode)))
-       size = copy_to_mode_reg (mode, size);
+       size = copy_to_mode_reg (mode, convert_to_mode (mode, size, 1));
 
       emit_insn (gen_allocate_stack (target, size));
     }