aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2009-06-11 22:11:04 -0700
committerRichard Henderson <rth@gcc.gnu.org>2009-06-11 22:11:04 -0700
commit42755c21511d94f8ce81d1b7cc6e7601953525a9 (patch)
treee8004f8c5e0f2df6e30fa432b5139fcec7f00c44 /gcc
parentf2ae7631fb1cec46a9614c254b91fa4d51ed5680 (diff)
downloadgcc-42755c21511d94f8ce81d1b7cc6e7601953525a9.zip
gcc-42755c21511d94f8ce81d1b7cc6e7601953525a9.tar.gz
gcc-42755c21511d94f8ce81d1b7cc6e7601953525a9.tar.bz2
* dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
From-SVN: r148412
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/dwarf2out.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b1d0cd7..3888eb6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
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.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 1d3a1ca..c41f008 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;