summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2002-07-24 20:17:04 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2002-07-24 20:17:04 +0000
commita22d6790d93e03fb7840f45ba4bd5fe5ef0d0aea (patch)
treedb21737e1389075f4477bb060fa7a00d7260d537
parentc8728cedbc3415a2585869d33c442f8264c775aa (diff)
if it appears we are disassembling insn at the pc do not cause an extra memory fetch (and possibly a fault loop) get one from the iir in the frame
-rw-r--r--sys/arch/hppa/hppa/db_disasm.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/arch/hppa/hppa/db_disasm.c b/sys/arch/hppa/hppa/db_disasm.c
index fc6aae613df..19daf6441df 100644
--- a/sys/arch/hppa/hppa/db_disasm.c
+++ b/sys/arch/hppa/hppa/db_disasm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_disasm.c,v 1.12 2002/05/16 13:01:41 art Exp $ */
+/* $OpenBSD: db_disasm.c,v 1.13 2002/07/24 20:17:03 mickey Exp $ */
/*
* Copyright (c) 1999 Michael Shalayeff
@@ -2335,8 +2335,9 @@ db_disasm(loc, flag)
OFS ofs = 0;
iExInit();
-
- if (USERMODE(loc)) {
+ if (loc == ddb_regs.tf_iioq_head)
+ instruct = ddb_regs.tf_iir;
+ else if (USERMODE(loc)) {
if (copyin((caddr_t)(loc &~ HPPA_PC_PRIV_MASK),
&instruct, sizeof(instruct)))
instruct = 0;