Commit e68d4dd1 by Uros Bizjak Committed by Uros Bizjak

re PR target/29377 (Build for h8300-elf crashes on 64bit hosts due to int/HWI mismatch)

        PR target/29377
        * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
        argument to HOST_WIDE_INT.  Update function prototype.
        (round_frame_size): Change return type to HOST_WIDE_INT.  Change
        "size" argument to HOST_WIDE_INT.  Update function prototype.

From-SVN: r118102
parent 87ccbc5c
2006-10-28 Uros Bizjak <uros@kss-loka.si> 2006-10-28 Uros Bizjak <uros@kss-loka.si>
PR target/29377
* config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
argument to HOST_WIDE_INT. Update function prototype.
(round_frame_size): Change return type to HOST_WIDE_INT. Change
"size" argument to HOST_WIDE_INT. Update function prototype.
2006-10-28 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.c (output_387_ffreep): Create output from a * config/i386/i386.c (output_387_ffreep): Create output from a
template string for !HAVE_AS_IX86_FFREEP. template string for !HAVE_AS_IX86_FFREEP.
......
...@@ -83,8 +83,8 @@ static int h8300_interrupt_function_p (tree); ...@@ -83,8 +83,8 @@ static int h8300_interrupt_function_p (tree);
static int h8300_saveall_function_p (tree); static int h8300_saveall_function_p (tree);
static int h8300_monitor_function_p (tree); static int h8300_monitor_function_p (tree);
static int h8300_os_task_function_p (tree); static int h8300_os_task_function_p (tree);
static void h8300_emit_stack_adjustment (int, unsigned int); static void h8300_emit_stack_adjustment (int, HOST_WIDE_INT);
static int round_frame_size (int); static HOST_WIDE_INT round_frame_size (HOST_WIDE_INT);
static unsigned int compute_saved_regs (void); static unsigned int compute_saved_regs (void);
static void push (int); static void push (int);
static void pop (int); static void pop (int);
...@@ -510,7 +510,7 @@ byte_reg (rtx x, int b) ...@@ -510,7 +510,7 @@ byte_reg (rtx x, int b)
SIZE to adjust the stack pointer. */ SIZE to adjust the stack pointer. */
static void static void
h8300_emit_stack_adjustment (int sign, unsigned int size) h8300_emit_stack_adjustment (int sign, HOST_WIDE_INT size)
{ {
/* If the frame size is 0, we don't have anything to do. */ /* If the frame size is 0, we don't have anything to do. */
if (size == 0) if (size == 0)
...@@ -546,8 +546,8 @@ h8300_emit_stack_adjustment (int sign, unsigned int size) ...@@ -546,8 +546,8 @@ h8300_emit_stack_adjustment (int sign, unsigned int size)
/* Round up frame size SIZE. */ /* Round up frame size SIZE. */
static int static HOST_WIDE_INT
round_frame_size (int size) round_frame_size (HOST_WIDE_INT size)
{ {
return ((size + STACK_BOUNDARY / BITS_PER_UNIT - 1) return ((size + STACK_BOUNDARY / BITS_PER_UNIT - 1)
& -STACK_BOUNDARY / BITS_PER_UNIT); & -STACK_BOUNDARY / BITS_PER_UNIT);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment