summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2005-04-07 00:23:52 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2005-04-07 00:23:52 +0000
commit2070244d1c01bfe4d35e5cf2a958a26aaf133981 (patch)
treec0b4b72e91d224a7bd8be8f5c5e9323cdf049034 /sys/arch/hppa
parent65110b42ae728bade32d8323ea172c98450c3e82 (diff)
dig lpa
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/hppa/trap.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c
index 0765f83e0f4..7dfd2065336 100644
--- a/sys/arch/hppa/hppa/trap.c
+++ b/sys/arch/hppa/hppa/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.84 2005/01/17 20:47:40 mickey Exp $ */
+/* $OpenBSD: trap.c,v 1.85 2005/04/07 00:23:51 mickey Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -373,10 +373,14 @@ trap(type, frame)
map = &vm->vm_map;
}
- /* dig probe[rw]i? insns */
- if ((opcode & 0xfc001f80) == 0x04001180) {
+ if ((opcode & 0xfc003fc0) == 0x04001340) {
+ /* lpa failure case */
+ frame_regmap(frame, opcode & 0x1f) = 0;
+ frame->tf_ipsw |= PSL_N;
+ } else if ((opcode & 0xfc001f80) == 0x04001180) {
int pl;
+ /* dig probe[rw]i? insns */
if (opcode & 0x2000)
pl = (opcode >> 16) & 3;
else