Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/arm Make sure to advance past the instruction w...



details:   https://anonhg.NetBSD.org/src/rev/207e81322da2
branches:  trunk
changeset: 771235:207e81322da2
user:      matt <matt%NetBSD.org@localhost>
date:      Tue Nov 15 19:01:54 2011 +0000

description:
Make sure to advance past the instruction we just emulated.

diffstat:

 sys/arch/arm/arm/undefined.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (34 lines):

diff -r aecec3c70813 -r 207e81322da2 sys/arch/arm/arm/undefined.c
--- a/sys/arch/arm/arm/undefined.c      Tue Nov 15 16:50:43 2011 +0000
+++ b/sys/arch/arm/arm/undefined.c      Tue Nov 15 19:01:54 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: undefined.c,v 1.41 2011/04/07 11:02:24 matt Exp $      */
+/*     $NetBSD: undefined.c,v 1.42 2011/11/15 19:01:54 matt Exp $      */
 
 /*
  * Copyright (c) 2001 Ben Harris.
@@ -54,7 +54,7 @@
 #include <sys/kgdb.h>
 #endif
 
-__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.41 2011/04/07 11:02:24 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.42 2011/11/15 19:01:54 matt Exp $");
 
 #include <sys/malloc.h>
 #include <sys/queue.h>
@@ -151,6 +151,7 @@
         */
        if ((insn & 0xffff0fff) == 0xee1d0f70) {
                *regp = (uintptr_t)l->l_private;
+               frame->tf_pc += INSN_SIZE
                return 0;
        }
 
@@ -163,6 +164,7 @@
                        *regp = pcb->pcb_user_pid_rw;
                else
                        pcb->pcb_user_pid_rw = *regp;
+               frame->tf_pc += INSN_SIZE
                return 0;
        }
 



Home | Main Index | Thread Index | Old Index