aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2015-02-06 09:11:09 +0100
committerJan Beulich <jbeulich@suse.com>2015-02-06 09:11:09 +0100
commit73e7610887dfd4313b66f33436bc18570d58b2ac (patch)
tree380aa9e1f0bfa07d574994794283837a0986d4fc
parente9fbd0432f8ab3983b166ae0b4d3e2ab6fbc8cf3 (diff)
downloadfsf-binutils-gdb-73e7610887dfd4313b66f33436bc18570d58b2ac.zip
fsf-binutils-gdb-73e7610887dfd4313b66f33436bc18570d58b2ac.tar.gz
fsf-binutils-gdb-73e7610887dfd4313b66f33436bc18570d58b2ac.tar.bz2
gas: fix a few omissions in .cfi_label handling
While actually starting to use that new directive, I noticed a few oversights of the original commit. gas/ 2015-02-06 Jan Beulich <jbeulich@suse.com> * dw2gencfi.c (select_cie_for_fde): Also bail on CFI_label. (cfi_change_reg_numbers): Also do nothing for CFI_label. (cfi_pseudo_table): Also handle .cfi_label when not supporting CFI directives.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/dw2gencfi.c6
2 files changed, 12 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f354c22..bff5d8e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2015-02-06 Jan Beulich <jbeulich@suse.com>
+
+ * dw2gencfi.c (select_cie_for_fde): Also bail on CFI_label.
+ (cfi_change_reg_numbers): Also do nothing for CFI_label.
+ (cfi_pseudo_table): Also handle .cfi_label when not supporting
+ CFI directives.
+
2015-02-05 Alan Modra <amodra@gmail.com>
* config/tc-msp430.c (md_assemble): Correct size passed to
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index 6a80d0b..ef97e18 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -1759,6 +1759,7 @@ select_cie_for_fde (struct fde_entry *fde, bfd_boolean eh_frame,
case CFI_escape:
case CFI_val_encoded_addr:
+ case CFI_label:
/* Don't bother matching these for now. */
goto fail;
@@ -1775,7 +1776,8 @@ select_cie_for_fde (struct fde_entry *fde, bfd_boolean eh_frame,
|| j->insn == DW_CFA_advance_loc
|| j->insn == DW_CFA_remember_state
|| j->insn == CFI_escape
- || j->insn == CFI_val_encoded_addr))
+ || j->insn == CFI_val_encoded_addr
+ || j->insn == CFI_label))
{
*pfirst = j;
return cie;
@@ -1827,6 +1829,7 @@ cfi_change_reg_numbers (struct cfi_insn_data *insn, segT ccseg)
case DW_CFA_restore_state:
case DW_CFA_GNU_window_save:
case CFI_escape:
+ case CFI_label:
break;
case DW_CFA_def_cfa:
@@ -2072,6 +2075,7 @@ const pseudo_typeS cfi_pseudo_table[] =
{ "cfi_personality", dot_cfi_dummy, 0 },
{ "cfi_lsda", dot_cfi_dummy, 0 },
{ "cfi_val_encoded_addr", dot_cfi_dummy, 0 },
+ { "cfi_label", dot_cfi_dummy, 0 },
{ NULL, NULL, 0 }
};