summaryrefslogtreecommitdiff
path: root/sys/arch/hppa64
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2011-08-07 15:49:35 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2011-08-07 15:49:35 +0000
commit9e4f82c84e899ab6779339bb8d4404fa8e4ff457 (patch)
treef2d6c5f8ec6ea9f2f678bc8e76b0d1c89ff0ea86 /sys/arch/hppa64
parent1d558391dcfbc79a4bef603ff605edfacc81ab95 (diff)
Recognize 64-bit store instructions.
Diffstat (limited to 'sys/arch/hppa64')
-rw-r--r--sys/arch/hppa64/hppa64/trap.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/sys/arch/hppa64/hppa64/trap.c b/sys/arch/hppa64/hppa64/trap.c
index 8c429a43093..f79e3228dee 100644
--- a/sys/arch/hppa64/hppa64/trap.c
+++ b/sys/arch/hppa64/hppa64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.21 2011/07/09 02:12:16 kettenis Exp $ */
+/* $OpenBSD: trap.c,v 1.22 2011/08/07 15:49:34 kettenis Exp $ */
/*
* Copyright (c) 2005 Michael Shalayeff
@@ -45,10 +45,16 @@
#endif
static __inline int inst_store(u_int ins) {
- return (ins & 0xf0000000) == 0x60000000 || /* st */
- (ins & 0xf4000200) == 0x24000200 || /* fst/cst */
- (ins & 0xfc000200) == 0x0c000200 || /* stby */
- (ins & 0xfc0003c0) == 0x0c0001c0; /* ldcw */
+ return (ins & 0xf0000000) == 0x60000000 || /* stb/sth/stw */
+ (ins & 0xfc000000) == 0x70000000 || /* std/fstd */
+ (ins & 0xfc000000) == 0x78000000 || /* fstw */
+ (ins & 0xfc000000) == 0x7c000000 || /* stw/fstw */
+ (ins & 0xfc000200) == 0x24000200 || /* cstw */
+ (ins & 0xfc000200) == 0x2c000200 || /* cstd */
+ (ins & 0xfc001300) == 0x0c001200 || /* stb/sth/stw/std */
+ (ins & 0xfc001380) == 0x0c001300 || /* stby/stdby */
+ (ins & 0xfc0003c0) == 0x0c0001c0 || /* ldcw */
+ (ins & 0xfc0003c0) == 0x0c000140; /* ldcd */
}
const char *trap_type[] = {