@@ -2809,6 +2809,12 @@ in DWARF 2 debug information. The default is zero. A different value
may reduce the size of debug information on some ports.
@end defmac
+@defmac DWARF_REG_MODE (@var{N}, @var{mode})
+If defined, a C expression whose value is a mode that should be used
+to represent the @var{N}th DWARF frame register. By default this is
+the same @var{mode} as the hard register it relates to.
+@end defmac
+
@node Exception Handling
@subsection Exception Handling Support
@cindex exception handling
@@ -252,6 +252,10 @@ init_return_column_size (enum machine_mode mode, rtx mem, unsigned int c)
gen_int_mode (size, mode));
}
+#ifndef DWARF_REG_MODE
+#define DWARF_REG_MODE(REGNO, MODE) (MODE)
+#endif
+
/* Generate code to initialize the register size table. */
void
@@ -276,6 +280,7 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
if (HARD_REGNO_CALL_PART_CLOBBERED (i, save_mode))
save_mode = choose_hard_reg_mode (i, 1, true);
+ save_mode = DWARF_REG_MODE (i, save_mode);
if (dnum == DWARF_FRAME_RETURN_COLUMN)
{
if (save_mode == VOIDmode)