* gdbarch.sh (DEPRECATED_STACK_ALIGN): Rename STACK_ALIGN.
* gdbarch.h, gdbarch.c: Re-generate.
* infcall.c (call_function_by_hand): Update.
* hppa-tdep.c (hppa_push_arguments): Update.
* ada-lang.c (place_on_stack): Update.
* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
* sparc-tdep.c (sparc_gdbarch_init): Update.
* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
* hppa-tdep.c (hppa_gdbarch_init): Update.
* h8300-tdep.c (h8300_gdbarch_init): Delete comment refering to
stack_align.
+2003-09-11 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_STACK_ALIGN): Rename STACK_ALIGN.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * infcall.c (call_function_by_hand): Update.
+ * hppa-tdep.c (hppa_push_arguments): Update.
+ * ada-lang.c (place_on_stack): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Delete comment refering to
+ stack_align.
+
2003-09-11 Daniel Jacobowitz <drow@mvista.com>
* dwarf2loc.c (dwarf2_loc_desc_needs_frame): Variables in a
{
CORE_ADDR old_sp = *sp;
-#ifdef STACK_ALIGN
+#ifdef DEPRECATED_STACK_ALIGN
*sp = push_bytes (*sp, VALUE_CONTENTS_RAW (val),
- STACK_ALIGN (TYPE_LENGTH
+ DEPRECATED_STACK_ALIGN (TYPE_LENGTH
(check_typedef (VALUE_TYPE (val)))));
#else
*sp = push_bytes (*sp, VALUE_CONTENTS_RAW (val),
+2003-09-11 Andrew Cagney <cagney@redhat.com>
+
+ * gdbint.texinfo (Target Architecture Definition): Replace
+ STACK_ALIGN with DEPRECATED_STACK_ALIGN.
+
2003-08-18 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Document
Define this to adjust @var{address} so that it meets the alignment
requirements for the start of a new stack frame. A stack frame's
alignment requirements are typically stronger than a target processors
-stack alignment requirements (@pxref{STACK_ALIGN}).
+stack alignment requirements (@pxref{DEPRECATED_STACK_ALIGN}).
This function is used to ensure that, when creating a dummy frame, both
the initial stack pointer and (if needed) the address of the return
value are correctly aligned.
-Unlike @code{STACK_ALIGN}, this function always adjusts the address in
-the direction of stack growth.
+Unlike @code{DEPRECATED_STACK_ALIGN}, this function always adjusts the
+address in the direction of stack growth.
By default, no frame based stack alignment is performed.
declarations) into @value{GDBN} regnums. If not defined, no conversion will be
done.
-@item STACK_ALIGN (@var{addr})
-@anchor{STACK_ALIGN}
-@findex STACK_ALIGN
+@item DEPRECATED_STACK_ALIGN (@var{addr})
+@anchor{DEPRECATED_STACK_ALIGN}
+@findex DEPRECATED_STACK_ALIGN
Define this to increase @var{addr} so that it meets the alignment
requirements for the processor's stack.
gdbarch_deprecated_frame_locals_address_ftype *deprecated_frame_locals_address;
gdbarch_deprecated_saved_pc_after_call_ftype *deprecated_saved_pc_after_call;
gdbarch_frame_num_args_ftype *frame_num_args;
- gdbarch_stack_align_ftype *stack_align;
+ gdbarch_deprecated_stack_align_ftype *deprecated_stack_align;
gdbarch_frame_align_ftype *frame_align;
gdbarch_reg_struct_has_addr_ftype *reg_struct_has_addr;
int frame_red_zone_size;
get_frame_base, /* deprecated_frame_locals_address */
0, /* deprecated_saved_pc_after_call */
0, /* frame_num_args */
- 0, /* stack_align */
+ 0, /* deprecated_stack_align */
0, /* frame_align */
0, /* reg_struct_has_addr */
0, /* frame_red_zone_size */
/* Skip verify of deprecated_frame_locals_address, has predicate */
/* Skip verify of deprecated_saved_pc_after_call, has predicate */
/* Skip verify of frame_num_args, has predicate */
- /* Skip verify of stack_align, has predicate */
+ /* Skip verify of deprecated_stack_align, has predicate */
/* Skip verify of frame_align, has predicate */
/* Skip verify of reg_struct_has_addr, has predicate */
if (gdbarch->float_format == 0)
"gdbarch_dump: DEPRECATED_SIZEOF_CALL_DUMMY_WORDS = %d\n",
DEPRECATED_SIZEOF_CALL_DUMMY_WORDS);
#endif
+#ifdef DEPRECATED_STACK_ALIGN_P
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_STACK_ALIGN_P()",
+ XSTRING (DEPRECATED_STACK_ALIGN_P ()));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_STACK_ALIGN_P() = %d\n",
+ DEPRECATED_STACK_ALIGN_P ());
+#endif
+#ifdef DEPRECATED_STACK_ALIGN
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_STACK_ALIGN(sp)",
+ XSTRING (DEPRECATED_STACK_ALIGN (sp)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_STACK_ALIGN = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_stack_align
+ /*DEPRECATED_STACK_ALIGN ()*/);
+#endif
#ifdef DEPRECATED_STORE_RETURN_VALUE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
(long) current_gdbarch->stab_reg_to_regnum
/*STAB_REG_TO_REGNUM ()*/);
#endif
-#ifdef STACK_ALIGN_P
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "STACK_ALIGN_P()",
- XSTRING (STACK_ALIGN_P ()));
- fprintf_unfiltered (file,
- "gdbarch_dump: STACK_ALIGN_P() = %d\n",
- STACK_ALIGN_P ());
-#endif
-#ifdef STACK_ALIGN
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "STACK_ALIGN(sp)",
- XSTRING (STACK_ALIGN (sp)));
- fprintf_unfiltered (file,
- "gdbarch_dump: STACK_ALIGN = <0x%08lx>\n",
- (long) current_gdbarch->stack_align
- /*STACK_ALIGN ()*/);
-#endif
#ifdef STORE_RETURN_VALUE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
}
int
-gdbarch_stack_align_p (struct gdbarch *gdbarch)
+gdbarch_deprecated_stack_align_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->stack_align != NULL;
+ return gdbarch->deprecated_stack_align != NULL;
}
CORE_ADDR
-gdbarch_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp)
+gdbarch_deprecated_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp)
{
gdb_assert (gdbarch != NULL);
- gdb_assert (gdbarch->stack_align != NULL);
+ gdb_assert (gdbarch->deprecated_stack_align != NULL);
if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_stack_align called\n");
- return gdbarch->stack_align (sp);
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_stack_align called\n");
+ return gdbarch->deprecated_stack_align (sp);
}
void
-set_gdbarch_stack_align (struct gdbarch *gdbarch,
- gdbarch_stack_align_ftype stack_align)
+set_gdbarch_deprecated_stack_align (struct gdbarch *gdbarch,
+ gdbarch_deprecated_stack_align_ftype deprecated_stack_align)
{
- gdbarch->stack_align = stack_align;
+ gdbarch->deprecated_stack_align = deprecated_stack_align;
}
int
#define FRAME_NUM_ARGS(frame) (gdbarch_frame_num_args (current_gdbarch, frame))
#endif
-#if defined (STACK_ALIGN)
-/* Legacy for systems yet to multi-arch STACK_ALIGN */
-#if !defined (STACK_ALIGN_P)
-#define STACK_ALIGN_P() (1)
+/* DEPRECATED_STACK_ALIGN has been replaced by an initial aligning call
+ to frame_align and the requirement that methods such as
+ push_dummy_call and frame_red_zone_size maintain correct stack/frame
+ alignment. */
+
+#if defined (DEPRECATED_STACK_ALIGN)
+/* Legacy for systems yet to multi-arch DEPRECATED_STACK_ALIGN */
+#if !defined (DEPRECATED_STACK_ALIGN_P)
+#define DEPRECATED_STACK_ALIGN_P() (1)
#endif
#endif
-extern int gdbarch_stack_align_p (struct gdbarch *gdbarch);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (STACK_ALIGN_P)
-#error "Non multi-arch definition of STACK_ALIGN"
+extern int gdbarch_deprecated_stack_align_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_STACK_ALIGN_P)
+#error "Non multi-arch definition of DEPRECATED_STACK_ALIGN"
#endif
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (STACK_ALIGN_P)
-#define STACK_ALIGN_P() (gdbarch_stack_align_p (current_gdbarch))
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_STACK_ALIGN_P)
+#define DEPRECATED_STACK_ALIGN_P() (gdbarch_deprecated_stack_align_p (current_gdbarch))
#endif
-typedef CORE_ADDR (gdbarch_stack_align_ftype) (CORE_ADDR sp);
-extern CORE_ADDR gdbarch_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp);
-extern void set_gdbarch_stack_align (struct gdbarch *gdbarch, gdbarch_stack_align_ftype *stack_align);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (STACK_ALIGN)
-#error "Non multi-arch definition of STACK_ALIGN"
+typedef CORE_ADDR (gdbarch_deprecated_stack_align_ftype) (CORE_ADDR sp);
+extern CORE_ADDR gdbarch_deprecated_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp);
+extern void set_gdbarch_deprecated_stack_align (struct gdbarch *gdbarch, gdbarch_deprecated_stack_align_ftype *deprecated_stack_align);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_STACK_ALIGN)
+#error "Non multi-arch definition of DEPRECATED_STACK_ALIGN"
#endif
-#if !defined (STACK_ALIGN)
-#define STACK_ALIGN(sp) (gdbarch_stack_align (current_gdbarch, sp))
+#if !defined (DEPRECATED_STACK_ALIGN)
+#define DEPRECATED_STACK_ALIGN(sp) (gdbarch_deprecated_stack_align (current_gdbarch, sp))
#endif
extern int gdbarch_frame_align_p (struct gdbarch *gdbarch);
F::DEPRECATED_SAVED_PC_AFTER_CALL:CORE_ADDR:deprecated_saved_pc_after_call:struct frame_info *frame:frame
F:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame
#
-F:2:STACK_ALIGN:CORE_ADDR:stack_align:CORE_ADDR sp:sp
+# DEPRECATED_STACK_ALIGN has been replaced by an initial aligning call
+# to frame_align and the requirement that methods such as
+# push_dummy_call and frame_red_zone_size maintain correct stack/frame
+# alignment.
+F:2:DEPRECATED_STACK_ALIGN:CORE_ADDR:deprecated_stack_align:CORE_ADDR sp:sp
M:::CORE_ADDR:frame_align:CORE_ADDR address:address
F:2:REG_STRUCT_HAS_ADDR:int:reg_struct_has_addr:int gcc_p, struct type *type:gcc_p, type
v::FRAME_RED_ZONE_SIZE:int:frame_red_zone_size
set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_long_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- /* set_gdbarch_stack_align (gdbarch, SOME_stack_align); */
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
/* Char is unsigned. */
/* The value of SP as it was passed into this function after
aligning. */
- CORE_ADDR orig_sp = STACK_ALIGN (sp);
+ CORE_ADDR orig_sp = DEPRECATED_STACK_ALIGN (sp);
/* The number of stack bytes occupied by the current argument. */
int bytes_reserved;
The ABIs also mandate minimum stack alignments which we must
preserve. */
- cum_bytes_aligned = STACK_ALIGN (cum_bytes_reserved);
+ cum_bytes_aligned = DEPRECATED_STACK_ALIGN (cum_bytes_reserved);
sp += max (cum_bytes_aligned, REG_PARM_STACK_SPACE);
/* Now write each of the args at the proper offset down the stack. */
The ABI also mandates minimum stack alignments which we must
preserve. */
- cum_bytes_aligned = STACK_ALIGN (cum_bytes_reserved);
+ cum_bytes_aligned = DEPRECATED_STACK_ALIGN (cum_bytes_reserved);
sp += max (cum_bytes_aligned, REG_PARM_STACK_SPACE);
/* Now write each of the args at the proper offset down the stack.
(gdbarch, hppa32_register_virtual_type);
set_gdbarch_deprecated_call_dummy_length
(gdbarch, hppa32_call_dummy_length);
- set_gdbarch_stack_align (gdbarch, hppa32_stack_align);
+ set_gdbarch_deprecated_stack_align (gdbarch, hppa32_stack_align);
set_gdbarch_reg_struct_has_addr (gdbarch, hppa_reg_struct_has_addr);
set_gdbarch_deprecated_extract_return_value
(gdbarch, hppa32_extract_return_value);
(gdbarch, hppa64_call_dummy_breakpoint_offset);
set_gdbarch_deprecated_call_dummy_length
(gdbarch, hppa64_call_dummy_length);
- set_gdbarch_stack_align (gdbarch, hppa64_stack_align);
+ set_gdbarch_deprecated_stack_align (gdbarch, hppa64_stack_align);
set_gdbarch_deprecated_extract_return_value
(gdbarch, hppa64_extract_return_value);
set_gdbarch_use_struct_convention
arg_type = check_typedef (VALUE_ENCLOSING_TYPE (args[i]));
len = TYPE_LENGTH (arg_type);
- if (STACK_ALIGN_P ())
+ if (DEPRECATED_STACK_ALIGN_P ())
/* MVS 11/22/96: I think at least some of this
stack_align code is really broken. Better to let
PUSH_ARGUMENTS adjust the stack in a target-defined
manner. */
- aligned_len = STACK_ALIGN (len);
+ aligned_len = DEPRECATED_STACK_ALIGN (len);
else
aligned_len = len;
if (INNER_THAN (1, 2))
if (struct_return)
{
int len = TYPE_LENGTH (value_type);
- if (STACK_ALIGN_P ())
+ if (DEPRECATED_STACK_ALIGN_P ())
/* NOTE: cagney/2003-03-22: Should rely on frame align, rather
than stack align to force the alignment of the stack. */
- len = STACK_ALIGN (len);
+ len = DEPRECATED_STACK_ALIGN (len);
if (INNER_THAN (1, 2))
{
/* Stack grows downward. Align STRUCT_ADDR and SP after
/* MVS 11/22/96: I think at least some of this stack_align code
is really broken. Better to let push_dummy_call() adjust the
stack in a target-defined manner. */
- if (STACK_ALIGN_P () && INNER_THAN (1, 2))
+ if (DEPRECATED_STACK_ALIGN_P () && INNER_THAN (1, 2))
{
/* If stack grows down, we must leave a hole at the top. */
int len = 0;
len += TYPE_LENGTH (VALUE_ENCLOSING_TYPE (args[i]));
if (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P ())
len += DEPRECATED_CALL_DUMMY_STACK_ADJUST;
- sp -= STACK_ALIGN (len) - len;
+ sp -= DEPRECATED_STACK_ALIGN (len) - len;
}
}
handled any alignment issues, the code below is entirely
redundant. */
if (!gdbarch_push_dummy_call_p (current_gdbarch)
- && STACK_ALIGN_P () && !INNER_THAN (1, 2))
+ && DEPRECATED_STACK_ALIGN_P () && !INNER_THAN (1, 2))
{
/* If stack grows up, we must leave a hole at the bottom, note
that sp already has been advanced for the arguments! */
if (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P ())
sp += DEPRECATED_CALL_DUMMY_STACK_ADJUST;
- sp = STACK_ALIGN (sp);
+ sp = DEPRECATED_STACK_ALIGN (sp);
}
/* XXX This seems wrong. For stacks that grow down we shouldn't do
set_gdbarch_decr_pc_after_break (gdbarch, 0);
set_gdbarch_function_start_offset (gdbarch, 0);
set_gdbarch_breakpoint_from_pc (gdbarch, m68hc11_breakpoint_from_pc);
- set_gdbarch_stack_align (gdbarch, m68hc11_stack_align);
+ set_gdbarch_deprecated_stack_align (gdbarch, m68hc11_stack_align);
set_gdbarch_print_insn (gdbarch, gdb_print_insn_m68hc11);
m68hc11_add_reggroups (gdbarch);
#else
set_gdbarch_deprecated_sizeof_call_dummy_words (gdbarch, 0);
#endif
- set_gdbarch_stack_align (gdbarch, sparc32_stack_align);
+ set_gdbarch_deprecated_stack_align (gdbarch, sparc32_stack_align);
set_gdbarch_deprecated_extra_stack_alignment_needed (gdbarch, 1);
set_gdbarch_deprecated_store_struct_return (gdbarch, sparc32_store_struct_return);
set_gdbarch_use_struct_convention (gdbarch,
#else
set_gdbarch_deprecated_sizeof_call_dummy_words (gdbarch, 0);
#endif
- set_gdbarch_stack_align (gdbarch, sparc64_stack_align);
+ set_gdbarch_deprecated_stack_align (gdbarch, sparc64_stack_align);
set_gdbarch_deprecated_extra_stack_alignment_needed (gdbarch, 1);
set_gdbarch_deprecated_store_struct_return (gdbarch, sparc64_store_struct_return);
set_gdbarch_use_struct_convention (gdbarch,
set_gdbarch_address_to_pointer (gdbarch, xstormy16_address_to_pointer);
set_gdbarch_pointer_to_address (gdbarch, xstormy16_pointer_to_address);
- set_gdbarch_stack_align (gdbarch, xstormy16_stack_align);
+ set_gdbarch_deprecated_stack_align (gdbarch, xstormy16_stack_align);
set_gdbarch_deprecated_save_dummy_frame_tos (gdbarch, xstormy16_save_dummy_frame_tos);