Module Name:    src
Committed By:   martin
Date:           Tue Sep 22 18:41:48 UTC 2020

Modified Files:
        src/sys/arch/arm/arm [netbsd-9]: undefined.c

Log Message:
Pull up following revision(s) (requested by skrll in ticket #1092):

        sys/arch/arm/arm/undefined.c: revision 1.67

Allow an undefined instruction to use lr (r14) as Rt. New gcc emits this
with TPIDRURO read.

Not sure why the exception handler cares if sp or pc are used as Rt


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.65.4.1 src/sys/arch/arm/arm/undefined.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/arm/undefined.c
diff -u src/sys/arch/arm/arm/undefined.c:1.65 src/sys/arch/arm/arm/undefined.c:1.65.4.1
--- src/sys/arch/arm/arm/undefined.c:1.65	Sat Apr  6 03:06:24 2019
+++ src/sys/arch/arm/arm/undefined.c	Tue Sep 22 18:41:48 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: undefined.c,v 1.65 2019/04/06 03:06:24 thorpej Exp $	*/
+/*	$NetBSD: undefined.c,v 1.65.4.1 2020/09/22 18:41:48 martin Exp $	*/
 
 /*
  * Copyright (c) 2001 Ben Harris.
@@ -55,7 +55,7 @@
 #include <sys/kgdb.h>
 #endif
 
-__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.65 2019/04/06 03:06:24 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.65.4.1 2020/09/22 18:41:48 martin Exp $");
 
 #include <sys/kmem.h>
 #include <sys/queue.h>
@@ -137,7 +137,7 @@ cp15_trapper(u_int addr, u_int insn, str
 	 * Don't overwrite sp, pc, etc.
 	 */
 	const u_int regno = (insn >> 12) & 15;
-	if (regno > 12)
+	if (regno == 13 || regno == 15)
 		return 1;
 
 	/*

Reply via email to