Module Name: src
Committed By: isaki
Date: Sat Apr 29 03:17:30 UTC 2023
Modified Files:
src/sys/arch/m68k/m68k: busaddrerr.s
Log Message:
m68k: Support TT(Transparent Translation) for 020/030 buserror handler.
This avoids a panic when trying badaddr() against to an address where
bus error occurs in the TT region. Only luna68k and news68k use TT.
Discussed on port-m68k.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/m68k/m68k/busaddrerr.s
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/m68k/m68k/busaddrerr.s
diff -u src/sys/arch/m68k/m68k/busaddrerr.s:1.1 src/sys/arch/m68k/m68k/busaddrerr.s:1.2
--- src/sys/arch/m68k/m68k/busaddrerr.s:1.1 Sat Mar 15 09:22:36 2014
+++ src/sys/arch/m68k/m68k/busaddrerr.s Sat Apr 29 03:17:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: busaddrerr.s,v 1.1 2014/03/15 09:22:36 tsutsui Exp $ */
+/* $NetBSD: busaddrerr.s,v 1.2 2023/04/29 03:17:30 isaki Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -219,7 +219,12 @@ Lbe10:
jeq Lbe10a | if no, done
movql #5,%d0 | else supervisor program access
Lbe10a:
- ptestr %d0,%a0@,#7 | do a table search
+ ptestr %d0,%a0@,#0 | only PTEST #0 can detect transparent
+ pmove %psr,%sp@ | translation (TT0 or TT1).
+ movw %sp@,%d1
+ btst #6,%d1 | transparent (TT0 or TT1)?
+ jne Lisberr1 | yes -> bus error
+ ptestr %d0,%a0@,#7 | no, do a table search
pmove %psr,%sp@ | save result
movb %sp@,%d1
btst #2,%d1 | invalid (incl. limit viol. and berr)?