2006-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>

Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (expprint.o, parse.o, target.o): Update.
	* dwarf2loc.c (dwarf_expr_tls_address): Move body to
	target_translate_tls_address.  Call it.
	* eval.c (evaluate_subexp_standard): Handle UNOP_MEMVAL_TLS.
	* expprint.c (print_subexp_standard): Likewise.
	(op_name_standard, dump_subexp_body_standard): Likewise.
	* expression.h (enum exp_opcode): Add UNOP_MEMVAL_TLS.
	(union exp_element): Add objfile.
	* parse.c (write_exp_elt_objfile): New function.
	(msym_tls_symbol_type): New.
	(write_exp_msymbol): Handle TLS.
	(operator_length_standard): Handle UNOP_MEMVAL_TLS.
	(build_parse): Initialize msym_tls_symbol_type.
	* parser-defs.h (write_exp_elt_objfile): New prototype.
	* target.c (target_translate_tls_address): New.
	* target.h (target_translate_tls_address): Add prototype.

2006-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.threads/tls-nodebug.c, gdb.threads/tls-nodebug.exp: New test.
This commit is contained in:
Daniel Jacobowitz
2006-10-10 03:17:53 +00:00
parent a48251ed04
commit 9e35dae425
13 changed files with 267 additions and 82 deletions

View File

@@ -234,6 +234,13 @@ enum exp_opcode
following subexpression. */
UNOP_MEMVAL,
/* UNOP_MEMVAL_TLS is followed by a `struct objfile' pointer in the next
exp_element and a type pointer in the following exp_element.
With another UNOP_MEMVAL_TLS at the end, this makes four exp_elements.
It casts the contents of the word offsetted by the value of the
following subexpression from the TLS specified by `struct objfile'. */
UNOP_MEMVAL_TLS,
/* UNOP_... operate on one value from a following subexpression
and replace it with a result. They take no immediate arguments. */
@@ -360,6 +367,7 @@ union exp_element
struct type *type;
struct internalvar *internalvar;
struct block *block;
struct objfile *objfile;
};
struct expression