Commit missing part of previous delta to add GNU_UNIQUE_FUNCTION support.
[deliverable/binutils-gdb.git] / gas / dw2gencfi.c
index 12a656fe93d99377b8fd027d0db0348bb9b18287..0b4a64fa1497e216632f2d2f5d6f7d9a7409349f 100644 (file)
@@ -1,5 +1,6 @@
 /* dw2gencfi.c - Support for generating Dwarf2 CFI information.
-   Copyright 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   Free Software Foundation, Inc.
    Contributed by Michal Ludvig <mludvig@suse.cz>
 
    This file is part of GAS, the GNU Assembler.
@@ -284,7 +285,7 @@ cfi_add_CFA_offset (unsigned regno, offsetT offset)
 {
   unsigned int abs_data_align;
 
-  assert (DWARF2_CIE_DATA_ALIGNMENT != 0);
+  gas_assert (DWARF2_CIE_DATA_ALIGNMENT != 0);
   cfi_add_CFA_insn_reg_offset (DW_CFA_offset, regno, offset);
 
   abs_data_align = (DWARF2_CIE_DATA_ALIGNMENT < 0
@@ -972,20 +973,20 @@ output_cfi_insn (struct cfi_insn_data *insn)
 
            if (scaled <= 0x3F)
              out_one (DW_CFA_advance_loc + scaled);
-           else if (delta <= 0xFF)
+           else if (scaled <= 0xFF)
              {
                out_one (DW_CFA_advance_loc1);
-               out_one (delta);
+               out_one (scaled);
              }
-           else if (delta <= 0xFFFF)
+           else if (scaled <= 0xFFFF)
              {
                out_one (DW_CFA_advance_loc2);
-               out_two (delta);
+               out_two (scaled);
              }
            else
              {
                out_one (DW_CFA_advance_loc4);
-               out_four (delta);
+               out_four (scaled);
              }
          }
        else
@@ -1001,7 +1002,7 @@ output_cfi_insn (struct cfi_insn_data *insn)
               is already allocated to the frag.  This comes from the way
               that it scans the .eh_frame section looking first for the
               .byte DW_CFA_advance_loc4.  */
-           frag_more (1);
+           *frag_more (1) = DW_CFA_advance_loc4;
 
            frag_var (rs_cfa, 4, 0, DWARF2_LINE_MIN_INSN_LENGTH << 3,
                      make_expr_symbol (&exp), frag_now_fix () - 1,
@@ -1496,6 +1497,10 @@ cfi_finish (void)
   subseg_set (cfi_seg, 0);
   record_alignment (cfi_seg, EH_FRAME_ALIGNMENT);
 
+#ifdef md_fix_up_eh_frame
+  md_fix_up_eh_frame (cfi_seg);
+#endif
+
   /* Make sure check_eh_frame doesn't do anything with our output.  */
   save_flag_traditional_format = flag_traditional_format;
   flag_traditional_format = 1;
This page took 0.024322 seconds and 4 git commands to generate.