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 Allow an undefined instruction to use lr (r...



details:   https://anonhg.NetBSD.org/src/rev/b596671a4caa
branches:  trunk
changeset: 944152:b596671a4caa
user:      skrll <skrll%NetBSD.org@localhost>
date:      Mon Sep 21 10:35:12 2020 +0000

description:
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

diffstat:

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

diffs (27 lines):

diff -r e66946197489 -r b596671a4caa sys/arch/arm/arm/undefined.c
--- a/sys/arch/arm/arm/undefined.c      Mon Sep 21 08:46:07 2020 +0000
+++ b/sys/arch/arm/arm/undefined.c      Mon Sep 21 10:35:12 2020 +0000
@@ -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 @@
         * Don't overwrite sp, pc, etc.
         */
        const u_int regno = (insn >> 12) & 15;
-       if (regno > 12)
+       if (regno == 13 || regno == 15)
                return 1;
 
        /*



Home | Main Index | Thread Index | Old Index