summaryrefslogtreecommitdiff
path: root/gcc/explow.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/explow.c')
-rw-r--r--gcc/explow.c8
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));
}