2010-07-07 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
authorThiago Jung Bauermann <bauerman@br.ibm.com>
Wed, 7 Jul 2010 16:15:18 +0000 (16:15 +0000)
committerThiago Jung Bauermann <bauerman@br.ibm.com>
Wed, 7 Jul 2010 16:15:18 +0000 (16:15 +0000)
commit0cf6dd1543299e30c82397ef49d00b32af911a63
treeae3f26f11acc891e1092331af2f955cc80b05896
parent6bd31874685a739404578403651d7b1ad5d20a3e
2010-07-07  Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>
    Thiago Jung Bauermann  <bauerman@br.ibm.com>

Support for hw accelerated condition watchpoints in booke powerpc.

* breakpoint.c (fetch_watchpoint_value): Rename to fetch_subexp_value
and move to eval.c.  Change callers.
(insert_bp_location): Pass watchpoint condition in
target_insert_watchpoint.
(remove_breakpoint_1) Pass watchpoint condition in
target_remove_watchpoint.
(watchpoint_locations_match): Call
target_can_accel_watchpoint_condition.
* eval.c: Include wrapper.h.
(fetch_subexp_value): Moved from breakpoint.c.
* ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint):
Formatting fix.
(can_use_watchpoint_cond_accel): New function.
(calculate_dvc): Likewise.
(num_memory_accesses): Likewise.
(check_condition): Likewise.
(ppc_linux_can_accel_watchpoint_condition): Likewise
(ppc_linux_insert_watchpoint): Call can_use_watchpoint_cond_accel,
check_condition and calculate_dvc.
(ppc_linux_remove_watchpoint): Likewise.
(_initialize_ppc_linux_nat): Set to_can_accel_watchpoint_condition to
ppc_linux_can_accel_watchpoint_condition
* target.c (debug_to_insert_watchpoint): Add argument for watchpoint
condition.
(debug_to_remove_watchpoint): Likewise.
(debug_to_can_accel_watchpoint_condition): New function.
(update_current_target): Set to_can_accel_watchpoint_condition.
(setup_target_debug): Set to_can_accel_watchpoint_condition.
* target.h: Add opaque declaration for struct expression.
(struct target_ops) <to_insert_watchpoint>,
<to_remove_watchpoint>: Add new arguments to pass the watchpoint
<to_can_accel_watchpoint_condition>: New member.
condition.  Update all callers and implementations.
(target_can_accel_watchpoint_condition): New macro.
* value.c (free_value_chain): New function.
* value.h (fetch_subexp_value): New prototype.
(free_value_chain): Likewise.
18 files changed:
gdb/ChangeLog
gdb/breakpoint.c
gdb/eval.c
gdb/i386-nat.c
gdb/ia64-linux-nat.c
gdb/inf-ttrace.c
gdb/mips-linux-nat.c
gdb/nto-procfs.c
gdb/ppc-linux-nat.c
gdb/procfs.c
gdb/remote-m32r-sdi.c
gdb/remote-mips.c
gdb/remote.c
gdb/s390-nat.c
gdb/target.c
gdb/target.h
gdb/value.c
gdb/value.h