2009-06-11 Richard Henderson <rth@redhat.com>
+ * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
+
* dwarf2out.c (need_data_align_sf_opcode): New.
(div_data_align): Move earlier.
(def_cfa_1, reg_save): Use it.
/* Divide OFF by DWARF_CIE_DATA_ALIGNMENT, asserting no remainder. */
-static HOST_WIDE_INT
+static inline HOST_WIDE_INT
div_data_align (HOST_WIDE_INT off)
{
HOST_WIDE_INT r = off / DWARF_CIE_DATA_ALIGNMENT;
/* Return true if we need a signed version of a given opcode
(e.g. DW_CFA_offset_extended_sf vs DW_CFA_offset_extended). */
-static bool
+static inline bool
need_data_align_sf_opcode (HOST_WIDE_INT off)
{
return DWARF_CIE_DATA_ALIGNMENT < 0 ? off > 0 : off < 0;
the CFA register did not change but the offset did. The data
factoring for DW_CFA_def_cfa_offset_sf happens in output_cfi, or
in the assembler via the .cfi_def_cfa_offset directive. */
- if (loc.offset < 0)
+ if (need_data_align_sf_opcode (loc.offset))
cfi->dw_cfi_opc = DW_CFA_def_cfa_offset_sf;
else
cfi->dw_cfi_opc = DW_CFA_def_cfa_offset;