gdb
authorTom Tromey <tromey@redhat.com>
Fri, 11 Sep 2009 18:38:39 +0000 (18:38 +0000)
committerTom Tromey <tromey@redhat.com>
Fri, 11 Sep 2009 18:38:39 +0000 (18:38 +0000)
commitcec03d703f8c80f4a3f98fe0e3e35dde7e9b1835
tree2faf4cf446d7c4f9eedfb9f15c4cfe890722b62d
parenta05e8785c75bf89c90799f675f126782aabbb20e
gdb
* dwarf2loc.c (struct piece_closure) <arch>: New field.
(dwarf2_evaluate_loc_desc): Update.
(dwarf2_loc_desc_needs_frame): Likewise.
(allocate_piece_closure): Initialize new field.
(read_pieced_value): Update.
(write_pieced_value): Update.
(copy_pieced_value_closure): Update.
* dwarf2expr.h (enum dwarf_value_location): New.
(struct dwarf_expr_context) <in_reg>: Remove.
<location, len, data>: New fields.
(struct dwarf_expr_piece) <in_reg, value>: Remove.
<location, v>: New fields.
* dwarf2expr.c (add_piece): Remove in_reg, value arguments.
Update.
(require_composition): New function.
(execute_stack_op): Update.
<DW_OP_implicit_value, DW_OP_stack_value>: New cases.
<DW_OP_reg0>: Set location, not in_reg.
<DW_OP_regx>: Likewise.  Use require_composition.
<DW_OP_fbreg>: Update.
<DW_OP_piece>: Likewise.
* dwarf2-frame.c (execute_stack_op): Update.
gdb/testsuite
* gdb.dwarf2/valop.S: New file.
* gdb.dwarf2/valop.exp: New file.
gdb/ChangeLog
gdb/dwarf2-frame.c
gdb/dwarf2expr.c
gdb/dwarf2expr.h
gdb/dwarf2loc.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/valop.S [new file with mode: 0644]
gdb/testsuite/gdb.dwarf2/valop.exp [new file with mode: 0644]