aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-07-11 12:30:56 -0700
committerRichard Henderson <rth@gcc.gnu.org>2011-07-11 12:30:56 -0700
commit7263c6d715f45580abda86e3617804524d28853b (patch)
tree265c21b5e028fad7b1f5c8a73b733d4ee8f96336 /gcc/dwarf2out.h
parent5fb8060d5b57061e6b683aebdd04a915473963f6 (diff)
downloadgcc-7263c6d715f45580abda86e3617804524d28853b.zip
gcc-7263c6d715f45580abda86e3617804524d28853b.tar.gz
gcc-7263c6d715f45580abda86e3617804524d28853b.tar.bz2
dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
* dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New. (DW_FRAME_POINTER_REGNUM): New. (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum. (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here. (dwf_regno): New. (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register, dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr): Use it. * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum. * dwarf2out.h (dwarf_frame_regnum): New. (struct cfa_loc): Document the domain of the reg member. From-SVN: r176178
Diffstat (limited to 'gcc/dwarf2out.h')
-rw-r--r--gcc/dwarf2out.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h
index d41453b..912a100 100644
--- a/gcc/dwarf2out.h
+++ b/gcc/dwarf2out.h
@@ -121,6 +121,7 @@ dw_fde_node;
typedef struct cfa_loc {
HOST_WIDE_INT offset;
HOST_WIDE_INT base_offset;
+ /* REG is in DWARF_FRAME_REGNUM space, *not* normal REGNO space. */
unsigned int reg;
BOOL_BITFIELD indirect : 1; /* 1 if CFA is accessed via a dereference. */
BOOL_BITFIELD in_use : 1; /* 1 if a saved cfa is stored here. */
@@ -261,6 +262,15 @@ extern void dwarf2out_set_demangle_name_func (const char *(*) (const char *));
extern void dwarf2out_vms_debug_main_pointer (void);
#endif
+/* Unfortunately, DWARF_FRAME_REGNUM is not universally defined in such a
+ way as to force an unsigned return type. Do that via inline wrapper. */
+
+static inline unsigned
+dwarf_frame_regnum (unsigned regnum)
+{
+ return DWARF_FRAME_REGNUM (regnum);
+}
+
struct array_descr_info
{
int ndimensions;