+2009-03-25 Pierre Muller <muller@ics.u-strasbg.fr>
+
+ * config/i386/nm-i386.h: Remove code within
+ I386_WATCHPOINTS_IN_TARGET_VECTOR conditional.
+ * config/i386/nm-cygwin.h: Remove I386_WATCHPOINTS_IN_TARGET_VECTOR
+ macro.
+ * config/i386/nm-cygwin64.h: Ditto.
+ * config/i386/nm-fbsd.h: Ditto.
+ * config/i386/nm-go32.h: Ditto.
+ * config/i386/nm-linux.h: Ditto.
+ * config/i386/nm-linux64.h: Ditto.
+
2009-03-25 Pierre Muller <muller@ics.u-strasbg.fr>
ARI fix: "xasprintf" rule.
/* Targets should define this to use the generic x86 watchpoint support. */
#ifdef I386_USE_GENERIC_WATCHPOINTS
-/* Add watchpoint methods to the provided target_ops. Targets which call
- this should also define I386_WATCHPOINTS_IN_TARGET_VECTOR. */
+/* Add watchpoint methods to the provided target_ops.
+ Targets which define I386_USE_GENERIC_WATCHPOINTS must
+ call this function. */
struct target_ops;
void i386_use_watchpoints (struct target_ops *);
extern int i386_stopped_by_watchpoint (void);
-#ifndef I386_WATCHPOINTS_IN_TARGET_VECTOR
-
-/* Returns the number of hardware watchpoints of type TYPE that we can
- set. Value is positive if we can set CNT watchpoints, zero if
- setting watchpoints of type TYPE is not supported, and negative if
- CNT is more than the maximum number of watchpoints of type TYPE
- that we can support. TYPE is one of bp_hardware_watchpoint,
- bp_read_watchpoint, bp_write_watchpoint, or bp_hardware_breakpoint.
- CNT is the number of such watchpoints used so far (including this
- one). OTHERTYPE is non-zero if other types of watchpoints are
- currently enabled.
-
- We always return 1 here because we don't have enough information
- about possible overlap of addresses that they want to watch. As an
- extreme example, consider the case where all the watchpoints watch
- the same address and the same region length: then we can handle a
- virtually unlimited number of watchpoints, due to debug register
- sharing implemented via reference counts in i386-nat.c. */
-
-#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) 1
-
-/* Returns non-zero if we can use hardware watchpoints to watch a
- region whose address is ADDR and whose length is LEN. */
-
-#define TARGET_REGION_OK_FOR_HW_WATCHPOINT(addr, len) \
- i386_region_ok_for_watchpoint (addr, len)
-
-/* After a watchpoint trap, the PC points to the instruction after the
- one that caused the trap. Therefore we don't need to step over it.
- But we do need to reset the status register to avoid another trap. */
-
-#define HAVE_CONTINUABLE_WATCHPOINT 1
-
-#define STOPPED_BY_WATCHPOINT(W) (i386_stopped_by_watchpoint () != 0)
-
-#define target_stopped_data_address(target, x) \
- i386_stopped_data_address(target, x)
-
-/* Use these macros for watchpoint insertion/removal. */
-
-#define target_insert_watchpoint(addr, len, type) \
- i386_insert_watchpoint (addr, len, type)
-
-#define target_remove_watchpoint(addr, len, type) \
- i386_remove_watchpoint (addr, len, type)
-
-#define target_insert_hw_breakpoint(bp_tgt) \
- i386_insert_hw_breakpoint (bp_tgt)
-
-#define target_remove_hw_breakpoint(bp_tgt) \
- i386_remove_hw_breakpoint (bp_tgt)
-
-#endif /* I386_WATCHPOINTS_IN_TARGET_VECTOR */
-
#endif /* I386_USE_GENERIC_WATCHPOINTS */
#endif /* NM_I386_H */