From: Jakub Jelinek Date: Wed, 16 Mar 2011 13:00:10 +0000 (+0000) Subject: * dwarf.c (dw_TAG_name): Handle DW_TAG_GNU_call_site_parameter. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=629e7ca8ec7498a538a5a21e6689eedeb28207ca;p=binutils-gdb.git * dwarf.c (dw_TAG_name): Handle DW_TAG_GNU_call_site_parameter. (read_and_display_attr_value): Handle DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target and DW_AT_GNU_call_site_target_clobbered. (get_AT_name): Handle DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites and DW_AT_GNU_all_source_call_sites. (decode_location_expression) : Adjust handling. * dwarf.c (get_TAG_name): Handle DW_TAG_GNU_call_site. (decode_location_expression): Handle DW_OP_GNU_entry_value. (read_and_display_attr_value): Handle DW_AT_GNU_call_site_value. (get_AT_name): Likewise. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 894df92fd1c..e83935ab9be 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,23 @@ +2011-03-16 Jakub Jelinek + + * dwarf.c (dw_TAG_name): Handle DW_TAG_GNU_call_site_parameter. + (read_and_display_attr_value): Handle DW_AT_GNU_call_site_data_value, + DW_AT_GNU_call_site_target and DW_AT_GNU_call_site_target_clobbered. + (get_AT_name): Handle DW_AT_GNU_call_site_value, + DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, + DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, + DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites and + DW_AT_GNU_all_source_call_sites. + (decode_location_expression) : Adjust + handling. + +2011-03-16 Jan Kratochvil + + * dwarf.c (get_TAG_name): Handle DW_TAG_GNU_call_site. + (decode_location_expression): Handle DW_OP_GNU_entry_value. + (read_and_display_attr_value): Handle DW_AT_GNU_call_site_value. + (get_AT_name): Likewise. + 2011-03-14 Michael Snyder * objcopy.c (set_pe_subsystem): Free subsystem. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 36d4ac2db97..130a295e314 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -1,5 +1,5 @@ /* dwarf.c -- display DWARF contents of a BFD binary file - Copyright 2005, 2006, 2007, 2008, 2009, 2010 + Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -563,6 +563,9 @@ get_TAG_name (unsigned long tag) case DW_TAG_upc_shared_type: return "DW_TAG_upc_shared_type"; case DW_TAG_upc_strict_type: return "DW_TAG_upc_strict_type"; case DW_TAG_upc_relaxed_type: return "DW_TAG_upc_relaxed_type"; + /* GNU values. */ + case DW_TAG_GNU_call_site: return "DW_TAG_GNU_call_site"; + case DW_TAG_GNU_call_site_parameter:return "DW_TAG_GNU_call_site_parameter"; default: { static char buffer[100]; @@ -1004,6 +1007,17 @@ decode_location_expression (unsigned char * data, display_block (data, uvalue); data += uvalue; break; + case DW_OP_GNU_entry_value: + uvalue = read_leb128 (data, &bytes_read, 0); + data += bytes_read; + printf ("DW_OP_GNU_entry_value: ("); + if (decode_location_expression (data, pointer_size, offset_size, + dwarf_version, uvalue, + cu_offset, section)) + need_frame_base = 1; + putchar (')'); + data += uvalue; + break; /* GNU extensions. */ case DW_OP_GNU_push_tls_address: @@ -1343,6 +1357,10 @@ read_and_display_attr_value (unsigned long attribute, case DW_AT_segment: case DW_AT_static_link: case DW_AT_use_location: + case DW_AT_GNU_call_site_value: + case DW_AT_GNU_call_site_data_value: + case DW_AT_GNU_call_site_target: + case DW_AT_GNU_call_site_target_clobbered: if (form == DW_FORM_data4 || form == DW_FORM_data8 || form == DW_FORM_sec_offset) @@ -1587,6 +1605,10 @@ read_and_display_attr_value (unsigned long attribute, case DW_AT_segment: case DW_AT_static_link: case DW_AT_use_location: + case DW_AT_GNU_call_site_value: + case DW_AT_GNU_call_site_data_value: + case DW_AT_GNU_call_site_target: + case DW_AT_GNU_call_site_target_clobbered: if (form == DW_FORM_data4 || form == DW_FORM_data8 || form == DW_FORM_sec_offset) @@ -1805,6 +1827,14 @@ get_AT_name (unsigned long attribute) case DW_AT_GNU_odr_signature: return "DW_AT_GNU_odr_signature"; case DW_AT_use_GNAT_descriptive_type: return "DW_AT_use_GNAT_descriptive_type"; case DW_AT_GNAT_descriptive_type: return "DW_AT_GNAT_descriptive_type"; + case DW_AT_GNU_call_site_value: return "DW_AT_GNU_call_site_value"; + case DW_AT_GNU_call_site_data_value: return "DW_AT_GNU_call_site_data_value"; + case DW_AT_GNU_call_site_target: return "DW_AT_GNU_call_site_target"; + case DW_AT_GNU_call_site_target_clobbered: return "DW_AT_GNU_call_site_target_clobbered"; + case DW_AT_GNU_tail_call: return "DW_AT_GNU_tail_call"; + case DW_AT_GNU_all_tail_call_sites: return "DW_AT_GNU_all_tail_call_sites"; + case DW_AT_GNU_all_call_sites: return "DW_AT_GNU_all_call_sites"; + case DW_AT_GNU_all_source_call_sites: return "DW_AT_GNU_all_source_call_sites"; /* UPC extension. */ case DW_AT_upc_threads_scaled: return "DW_AT_upc_threads_scaled";