diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2005-04-07 00:23:52 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2005-04-07 00:23:52 +0000 |
commit | 2070244d1c01bfe4d35e5cf2a958a26aaf133981 (patch) | |
tree | c0b4b72e91d224a7bd8be8f5c5e9323cdf049034 /sys/arch/hppa | |
parent | 65110b42ae728bade32d8323ea172c98450c3e82 (diff) |
dig lpa
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r-- | sys/arch/hppa/hppa/trap.c | 10 |
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 |