* dwarf2expr.c (execute_stack_op): Support DW_OP_GNU_parameter_ref.
	* dwarf2loc.c (call_site_parameter_matches): Support
	CALL_SITE_PARAMETER_PARAM_OFFSET.
	(needs_dwarf_reg_entry_value): Push stub value.
	* dwarf2read.c (read_call_site_scope): New variable origin.  Support
	CALL_SITE_PARAMETER_PARAM_OFFSET and its DW_AT_abstract_origin.
	* gdbtypes.h (enum call_site_parameter_kind): New item
	CALL_SITE_PARAMETER_PARAM_OFFSET.
	(struct call_site.parameter.u): New field param_offset.

gdb/testsuite/
	* gdb.arch/amd64-entry-value-param.S: New file.
	* gdb.arch/amd64-entry-value-param.c: New file.
	* gdb.arch/amd64-entry-value-param.exp: New file.
This commit is contained in:
Jan Kratochvil
2012-06-17 19:53:52 +00:00
parent 24c5c679cb
commit 1788b2d3be
9 changed files with 764 additions and 5 deletions

View File

@@ -924,7 +924,10 @@ enum call_site_parameter_kind
CALL_SITE_PARAMETER_DWARF_REG,
/* Use field call_site_parameter.u.fb_offset. */
CALL_SITE_PARAMETER_FB_OFFSET
CALL_SITE_PARAMETER_FB_OFFSET,
/* Use field call_site_parameter.u.param_offset. */
CALL_SITE_PARAMETER_PARAM_OFFSET
};
/* A place where a function gets called from, represented by
@@ -971,6 +974,11 @@ struct call_site
/* Offset from the callee's frame base, for stack passed parameters.
This equals offset from the caller's stack pointer. */
CORE_ADDR fb_offset;
/* Offset relative to the start of this PER_CU to
DW_TAG_formal_parameter which is referenced by both caller and
the callee. */
cu_offset param_offset;
}
u;