Module Name: src Committed By: skrll Date: Mon Sep 21 10:35:12 UTC 2020
Modified Files: src/sys/arch/arm/arm: undefined.c Log Message: 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.66 -r1.67 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.66 src/sys/arch/arm/arm/undefined.c:1.67 --- src/sys/arch/arm/arm/undefined.c:1.66 Tue Oct 1 18:00:07 2019 +++ src/sys/arch/arm/arm/undefined.c Mon Sep 21 10:35:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: undefined.c,v 1.66 2019/10/01 18:00:07 chs Exp $ */ +/* $NetBSD: undefined.c,v 1.67 2020/09/21 10:35:12 skrll Exp $ */ /* * Copyright (c) 2001 Ben Harris. @@ -55,7 +55,7 @@ #include <sys/kgdb.h> #endif -__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.66 2019/10/01 18:00:07 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.67 2020/09/21 10:35:12 skrll Exp $"); #include <sys/kmem.h> #include <sys/queue.h> @@ -136,7 +136,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; /*