diff options
Diffstat (limited to 'gcc/explow.c')
-rw-r--r-- | gcc/explow.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/explow.c b/gcc/explow.c index cd50563be52..58d4ebd9757 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -1238,15 +1238,17 @@ allocate_dynamic_stack_space (size, target, known_align) #ifdef HAVE_allocate_stack if (HAVE_allocate_stack) { + enum machine_mode mode = STACK_SIZE_MODE; + if (insn_operand_predicate[(int) CODE_FOR_allocate_stack][0] && ! ((*insn_operand_predicate[(int) CODE_FOR_allocate_stack][0]) (target, Pmode))) target = copy_to_mode_reg (Pmode, target); - size = convert_modes (Pmode, ptr_mode, size, 1); + size = convert_modes (mode, ptr_mode, size, 1); if (insn_operand_predicate[(int) CODE_FOR_allocate_stack][1] && ! ((*insn_operand_predicate[(int) CODE_FOR_allocate_stack][1]) - (size, Pmode))) - size = copy_to_mode_reg (Pmode, size); + (size, mode))) + size = copy_to_mode_reg (mode, size); emit_insn (gen_allocate_stack (target, size)); } |