summaryrefslogtreecommitdiff
path: root/distrib/sets/lists/base/md.macppc
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2002-05-16 07:37:45 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2002-05-16 07:37:45 +0000
commit09a74b063a5e7e41d98144e1733220dfa3c98a2a (patch)
tree851840662a255ff227aea7a906d19f4721bb7938 /distrib/sets/lists/base/md.macppc
parente6e8fb6cb88169c8a66b3a8cc5e2102460c6faf8 (diff)
Fix a long standing problem on vax: on "arithmetic fault" exceptions,
we schedule a SIGFPE signal delivery to the faulting process. However, arithmetic faults come in two flavors: "traps" that are "regular" exceptions, and "faults" that are restartable exceptions. In the "fault" case, the frame pc points to the faulting instruction, instead of the next instruction, in case we could save the world by tweaking memory and make the instruction not fault again when restarted. In practice, this led to processes blocked in a SIGFPE loop madness. To avoid this, add a skip_opcode() routine to compute the address of the next opcode, effectively skipping the offending instruction ; this routine is a very stripped-down db_disasm(). While there, enhance the ddb disassembler to correctly recognize and disassemble two-byte opcodes. ok hugh@, deraadt@
Diffstat (limited to 'distrib/sets/lists/base/md.macppc')
0 files changed, 0 insertions, 0 deletions