diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2014-05-26 17:31:18 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2014-05-26 17:31:18 +0000 |
commit | 5d82fb1fac0d849f96f797c75cf020658a089c5e (patch) | |
tree | 4ca55ced3760a0b6cf5bff974e98d4bbe6384f9d /sys | |
parent | a06c16c3687c905c143dc223104b49879597d366 (diff) |
Do not change the state of the carry bit in the psr when returning with
ERESTART or EJUSTRETURN, for we're not supposed to. (Actually, setting the
carry bit upon syscall failure doesn't make much sense on m88k, since this is
not how the syscall stubs check for failure)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/m88k/m88k/trap.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/arch/m88k/m88k/trap.c b/sys/arch/m88k/m88k/trap.c index 8054055b12c..5e95bb0c829 100644 --- a/sys/arch/m88k/m88k/trap.c +++ b/sys/arch/m88k/m88k/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.93 2014/05/11 00:12:44 guenther Exp $ */ +/* $OpenBSD: trap.c,v 1.94 2014/05/26 17:31:17 miod Exp $ */ /* * Copyright (c) 2004, Miodrag Vallat. * Copyright (c) 1998 Steve Murphree, Jr. @@ -1265,12 +1265,10 @@ m88100_syscall(register_t code, struct trapframe *tf) tf->tf_sfip = tf->tf_snip + 4; break; case ERESTART: - tf->tf_epsr &= ~PSR_C; tf->tf_sfip = tf->tf_snip & ~FIP_E; tf->tf_snip = tf->tf_sxip & ~NIP_E; break; case EJUSTRETURN: - tf->tf_epsr &= ~PSR_C; break; default: bad: @@ -1388,10 +1386,8 @@ m88110_syscall(register_t code, struct trapframe *tf) * exip is already at the trap instruction, so * there is nothing to do. */ - tf->tf_epsr &= ~PSR_C; break; case EJUSTRETURN: - tf->tf_epsr &= ~PSR_C; /* skip one instruction */ m88110_skip_insn(tf); break; |