summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-03-21 01:41:29 +0000
committermarcel <marcel@FreeBSD.org>2004-03-21 01:41:29 +0000
commit51e25854554afb1f8b8ac4612f655e4549758b94 (patch)
treebe1076034d3d67296197e82ce3cca51520cf92e8
parent52b4c49f116bb3369b5497e0c01cc38cf3637968 (diff)
downloadFreeBSD-src-51e25854554afb1f8b8ac4612f655e4549758b94.zip
FreeBSD-src-51e25854554afb1f8b8ac4612f655e4549758b94.tar.gz
In breakpoint(), use a different immediate to make sure we can
distinguish between debugger inserted breakpoints and fixed breakpoints. While here, make sure the break instruction never ends up in the last slot of a bundle by forcing it to be an M-unit instruction. This makes it easier for use to skip over it.
-rw-r--r--sys/ia64/include/cpufunc.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/ia64/include/cpufunc.h b/sys/ia64/include/cpufunc.h
index 55a238a..ca48e0b 100644
--- a/sys/ia64/include/cpufunc.h
+++ b/sys/ia64/include/cpufunc.h
@@ -37,15 +37,16 @@
struct thread;
+#define IA64_FIXED_BREAK 0x84B5D
+
#ifdef __GNUC__
static __inline void
breakpoint(void)
{
- __asm __volatile("break 0x80100"); /* XXX use linux value */
+ __asm __volatile("break.m %0" :: "i"(IA64_FIXED_BREAK));
}
-
#define HAVE_INLINE_FFS
static __inline int
OpenPOWER on IntegriCloud