pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/emulators/tme Fix logic to determine whether destinati...
details: https://anonhg.NetBSD.org/pkgsrc/rev/76ceff26815b
branches: trunk
changeset: 413369:76ceff26815b
user: rin <rin%pkgsrc.org@localhost>
date: Thu Mar 19 02:27:21 2020 +0000
description:
Fix logic to determine whether destination EA for cas lies b/w page
boundary or not; casl was mistakenly treated as an illegal instruction
when destination is the highest long word in a page. This results in
kernel panic in supervisor mode.
Bump revision.
Now, NetBSD/sun3 boots multiuser again. Have fun!
diffstat:
emulators/tme/Makefile | 4 ++--
emulators/tme/distinfo | 4 ++--
emulators/tme/patches/patch-ic_m68k_m68k-misc.c | 22 +++++++++++++++++-----
3 files changed, 21 insertions(+), 9 deletions(-)
diffs (70 lines):
diff -r 5b98aee176ee -r 76ceff26815b emulators/tme/Makefile
--- a/emulators/tme/Makefile Wed Mar 18 23:04:21 2020 +0000
+++ b/emulators/tme/Makefile Thu Mar 19 02:27:21 2020 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.76 2020/03/10 22:09:48 wiz Exp $
+# $NetBSD: Makefile,v 1.77 2020/03/19 02:27:21 rin Exp $
#
DISTNAME= tme-0.8
-PKGREVISION= 43
+PKGREVISION= 44
CATEGORIES= emulators
MASTER_SITES= http://csail.mit.edu/~fredette/tme/
diff -r 5b98aee176ee -r 76ceff26815b emulators/tme/distinfo
--- a/emulators/tme/distinfo Wed Mar 18 23:04:21 2020 +0000
+++ b/emulators/tme/distinfo Thu Mar 19 02:27:21 2020 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.25 2020/03/05 14:55:16 thorpej Exp $
+$NetBSD: distinfo,v 1.26 2020/03/19 02:27:21 rin Exp $
SHA1 (tme-0.8.tar.gz) = dd4f3421c20ceed548c5328a21dbb26e80f46b9c
RMD160 (tme-0.8.tar.gz) = 6bd505c5fa7810d37f436883383c4ba655df2ded
@@ -18,7 +18,7 @@
SHA1 (patch-ic_m68k_m6888x.c) = fe42dce7bf5abc69e2c9e15967d5e862ef651a0e
SHA1 (patch-ic_m68k_m68k-insns-auto.sh) = c493b4c6b066135e093abd7482e0a1e99294848b
SHA1 (patch-ic_m68k_m68k-m68k-insns.c) = 1a9d8e3d4e11c5710d1f67b65954d6e3de68d99f
-SHA1 (patch-ic_m68k_m68k-misc.c) = 7aeef098631196fe60b9940600cf90c86d1be375
+SHA1 (patch-ic_m68k_m68k-misc.c) = a5d5f5dfdd0331d30b19815687ead49554a771f1
SHA1 (patch-ic_mm58167.c) = 1c35c599f56f6a13a9dfc85dc5154f094bd8c0d0
SHA1 (patch-libtme_memory-auto.sh) = f7d989831b2468d1288faabc10b6fc53ce5bd0f4
SHA1 (patch-machine_sun2_SUN2-MULTIBUS) = cf9f55fcc15e2d977823dd54b9a10c42b11a6666
diff -r 5b98aee176ee -r 76ceff26815b emulators/tme/patches/patch-ic_m68k_m68k-misc.c
--- a/emulators/tme/patches/patch-ic_m68k_m68k-misc.c Wed Mar 18 23:04:21 2020 +0000
+++ b/emulators/tme/patches/patch-ic_m68k_m68k-misc.c Thu Mar 19 02:27:21 2020 +0000
@@ -1,10 +1,13 @@
-$NetBSD: patch-ic_m68k_m68k-misc.c,v 1.1 2013/12/28 19:16:48 martin Exp $
+$NetBSD: patch-ic_m68k_m68k-misc.c,v 1.2 2020/03/19 02:27:21 rin Exp $
+
+- Fix from upstream CVS: fix sequencing and fault handling for
+ read-modify-write instructions.
-Fix from upstream CVS: fix sequencing and fault handling for read-modify-write
-instructions.
+- Fix logic to determine whether destination EA for cas lies b/w page
+ boundary or not.
---- ic/m68k/m68k-misc.c.orig 2009-08-29 21:47:52.000000000 +0200
-+++ ic/m68k/m68k-misc.c 2013-12-23 13:12:54.000000000 +0100
+--- ic/m68k/m68k-misc.c.orig 2009-08-30 04:47:52.000000000 +0900
++++ ic/m68k/m68k-misc.c 2020-03-18 23:15:56.877341698 +0900
@@ -1441,6 +1441,9 @@ tme_m68k_rmw_start(struct tme_m68k *ic,
tme_uint32_t *buffer_reg;
int supported;
@@ -15,6 +18,15 @@
/* if the user reran the cycle: */
if (TME_M68K_SEQUENCE_RESTARTING
&& (ic->_tme_m68k_group0_buffer_read_softrr > 0
+@@ -1690,7 +1693,7 @@ tme_m68k_rmw_start(struct tme_m68k *ic,
+ tlb = rmw->tme_m68k_rmw_tlbs[address_i];
+
+ /* if this TLB entry doesn't cover the entire operand: */
+- if ((((tme_bus_addr32_t) tlb->tme_m68k_tlb_linear_last) - address) < rmw->tme_m68k_rmw_size) {
++ if ((((tme_bus_addr32_t) tlb->tme_m68k_tlb_linear_last + 1) - address) < rmw->tme_m68k_rmw_size) {
+
+ /* we can't support this instruction on this memory, because
+ we can't split an atomic operation across TLB entries. on
@@ -1754,9 +1757,6 @@ tme_m68k_rmw_start(struct tme_m68k *ic,
tlbs_busy[!tlb_i] = FALSE;
}
Home |
Main Index |
Thread Index |
Old Index