From 42755c21511d94f8ce81d1b7cc6e7601953525a9 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 11 Jun 2009 22:11:04 -0700 Subject: [PATCH] * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset. From-SVN: r148412 --- gcc/ChangeLog | 2 ++ gcc/dwarf2out.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b1d0cd77d179..3888eb6c7307 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ 2009-06-11 Richard Henderson + * 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. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 1d3a1ca2f520..c41f008863b1 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -524,7 +524,7 @@ init_return_column_size (enum machine_mode mode, rtx mem, unsigned int c) /* 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; @@ -535,7 +535,7 @@ div_data_align (HOST_WIDE_INT off) /* 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; @@ -992,7 +992,7 @@ def_cfa_1 (const char *label, dw_cfa_location *loc_p) 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; -- 2.47.2