Sat Jan 16 16:49:36 2021 UTC ()
Provide the correct ASID and VA for the unaligned exception.  This patch
has been applied upstream.

Bump PKGREVISION


(skrll)
diff -r1.69 -r1.70 pkgsrc/emulators/gxemul/Makefile
diff -r1.61 -r1.62 pkgsrc/emulators/gxemul/distinfo
diff -r0 -r1.1 pkgsrc/emulators/gxemul/patches/patch-src_cpus_cpu__mips__instr__loadstore.cc

cvs diff -r1.69 -r1.70 pkgsrc/emulators/gxemul/Makefile (expand / switch to unified diff)

--- pkgsrc/emulators/gxemul/Makefile 2020/10/07 13:25:20 1.69
+++ pkgsrc/emulators/gxemul/Makefile 2021/01/16 16:49:36 1.70
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.69 2020/10/07 13:25:20 ryoon Exp $ 1# $NetBSD: Makefile,v 1.70 2021/01/16 16:49:36 skrll Exp $
2 2
3DISTNAME= gxemul-0.6.2 3DISTNAME= gxemul-0.6.2
4PKGREVISION= 1 4PKGREVISION= 2
5CATEGORIES= emulators 5CATEGORIES= emulators
6MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=gxemul/} 6MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=gxemul/}
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= http://gavare.se/gxemul/ 9HOMEPAGE= http://gavare.se/gxemul/
10COMMENT= Framework for full-system computer architecture emulation 10COMMENT= Framework for full-system computer architecture emulation
11LICENSE= modified-bsd 11LICENSE= modified-bsd
12 12
13USE_TOOLS+= pax 13USE_TOOLS+= pax
14 14
15USE_LANGUAGES= c c++ 15USE_LANGUAGES= c c++
16HAS_CONFIGURE= yes 16HAS_CONFIGURE= yes
17BUILD_TARGET= build 17BUILD_TARGET= build

cvs diff -r1.61 -r1.62 pkgsrc/emulators/gxemul/distinfo (expand / switch to unified diff)

--- pkgsrc/emulators/gxemul/distinfo 2020/10/07 00:43:04 1.61
+++ pkgsrc/emulators/gxemul/distinfo 2021/01/16 16:49:36 1.62
@@ -1,20 +1,21 @@ @@ -1,20 +1,21 @@
1$NetBSD: distinfo,v 1.61 2020/10/07 00:43:04 thorpej Exp $ 1$NetBSD: distinfo,v 1.62 2021/01/16 16:49:36 skrll Exp $
2 2
3SHA1 (gxemul-0.6.2.tar.gz) = aabaeba783e70be952ab0056bf84d0f2b70c2155 3SHA1 (gxemul-0.6.2.tar.gz) = aabaeba783e70be952ab0056bf84d0f2b70c2155
4RMD160 (gxemul-0.6.2.tar.gz) = ccac73d82446f89792b1fc803bee623813f3aab2 4RMD160 (gxemul-0.6.2.tar.gz) = ccac73d82446f89792b1fc803bee623813f3aab2
5SHA512 (gxemul-0.6.2.tar.gz) = 4f389c509f9ecf39603ceed50e899e2bee285d3fefac9b3214076115ee71b5a7a68d1d92690b6debc8de5cf5f0303da83b3cc921a5c0b5eb4c7ad89baa730b59 5SHA512 (gxemul-0.6.2.tar.gz) = 4f389c509f9ecf39603ceed50e899e2bee285d3fefac9b3214076115ee71b5a7a68d1d92690b6debc8de5cf5f0303da83b3cc921a5c0b5eb4c7ad89baa730b59
6Size (gxemul-0.6.2.tar.gz) = 5897883 bytes 6Size (gxemul-0.6.2.tar.gz) = 5897883 bytes
7SHA1 (patch-doc_networking.html) = dd7a1519a678196fd5a835317a32ba483630ece8 7SHA1 (patch-doc_networking.html) = dd7a1519a678196fd5a835317a32ba483630ece8
 8SHA1 (patch-src_cpus_cpu__mips__instr__loadstore.cc) = 378c514ddf3b93279b2c479f21b77447d83d5afd
8SHA1 (patch-src_devices_dev_dec21143.cc) = 52f36741038c76a2dbafc7da6737e816aed5c9f9 9SHA1 (patch-src_devices_dev_dec21143.cc) = 52f36741038c76a2dbafc7da6737e816aed5c9f9
9SHA1 (patch-src_devices_dev_ether.cc) = 00221e09530743e81faedcc75ee951fa853d0e2c 10SHA1 (patch-src_devices_dev_ether.cc) = 00221e09530743e81faedcc75ee951fa853d0e2c
10SHA1 (patch-src_devices_dev_le.cc) = a728e8008a7a9f33aaf95811a33ebac2cb86e80e 11SHA1 (patch-src_devices_dev_le.cc) = a728e8008a7a9f33aaf95811a33ebac2cb86e80e
11SHA1 (patch-src_devices_dev_rtl8139c.cc) = ee6dbba7c7c9c62c50493c476297ee5ac89d2b83 12SHA1 (patch-src_devices_dev_rtl8139c.cc) = ee6dbba7c7c9c62c50493c476297ee5ac89d2b83
12SHA1 (patch-src_devices_dev_sgi_mec.cc) = 24b1259350faf60265df7958f0f680302f475e8e 13SHA1 (patch-src_devices_dev_sgi_mec.cc) = 24b1259350faf60265df7958f0f680302f475e8e
13SHA1 (patch-src_devices_dev_sn.cc) = e939521be1630f51e7ddc67abe90980de38e8837 14SHA1 (patch-src_devices_dev_sn.cc) = e939521be1630f51e7ddc67abe90980de38e8837
14SHA1 (patch-src_include_net.h) = 4d31fcefe384fcc9d68255825240c89b45acc92e 15SHA1 (patch-src_include_net.h) = 4d31fcefe384fcc9d68255825240c89b45acc92e
15SHA1 (patch-src_net_Makefile.skel) = 4738229a928b9cb5a2531dfc357297f91e9fdc09 16SHA1 (patch-src_net_Makefile.skel) = 4738229a928b9cb5a2531dfc357297f91e9fdc09
16SHA1 (patch-src_net_net.cc) = 57397c9a8197ee25e7faa8c0733273014e3e0670 17SHA1 (patch-src_net_net.cc) = 57397c9a8197ee25e7faa8c0733273014e3e0670
17SHA1 (patch-src_net_net_ether.cc) = ef7464dbb0812a9cb8d5be806db07cc19853fc1e 18SHA1 (patch-src_net_net_ether.cc) = ef7464dbb0812a9cb8d5be806db07cc19853fc1e
18SHA1 (patch-src_net_net_ip.cc) = f5615f3b347e9bdcd256fa4b5b1594473fd2e5e4 19SHA1 (patch-src_net_net_ip.cc) = f5615f3b347e9bdcd256fa4b5b1594473fd2e5e4
19SHA1 (patch-src_net_net_tap.cc) = f913b3efb51bc4a8080420988d5fc845e8a38f73 20SHA1 (patch-src_net_net_tap.cc) = f913b3efb51bc4a8080420988d5fc845e8a38f73
20SHA1 (patch-src_old_main_emul.cc) = 0b1106745e7c5d320e93f9f7775d8ced6109c089 21SHA1 (patch-src_old_main_emul.cc) = 0b1106745e7c5d320e93f9f7775d8ced6109c089

File Added: pkgsrc/emulators/gxemul/patches/Attic/patch-src_cpus_cpu__mips__instr__loadstore.cc
$NetBSD: patch-src_cpus_cpu__mips__instr__loadstore.cc,v 1.1 2021/01/16 16:49:36 skrll Exp $

--- src/cpus/cpu_mips_instr_loadstore.cc.orig	2021-01-16 16:33:52.314709654 +0000
+++ src/cpus/cpu_mips_instr_loadstore.cc
@@ -58,6 +58,30 @@ void LS_GENERIC_N(struct cpu *cpu, struc
 	/*  Check alignment:  */
 	if (addr & (LS_SIZE - 1)) {
 #if 1
+		uint64_t vaddr_vpn2=0, vaddr_asid=0;
+
+		int exc_model = cpu->cd.mips.cpu_type.exc_model;
+		struct mips_coproc *cp0 = cpu->cd.mips.coproc[0];
+
+		if (exc_model == EXC3K) {
+			vaddr_asid = (cp0->reg[COP0_ENTRYHI] &
+			    R2K3K_ENTRYHI_ASID_MASK) >>
+			    R2K3K_ENTRYHI_ASID_SHIFT;
+			vaddr_vpn2 = (addr & R2K3K_ENTRYHI_VPN_MASK) >>
+			    R2K3K_ENTRYHI_VPN_SHIFT;
+		} else {
+			vaddr_asid = cp0->reg[COP0_ENTRYHI] & ENTRYHI_ASID;
+
+			if (cpu->cd.mips.cpu_type.mmu_model == MMU10K) {
+				vaddr_vpn2 = (addr &
+				    ENTRYHI_VPN2_MASK_R10K) >>
+				    ENTRYHI_VPN2_SHIFT;
+			} else {
+				vaddr_vpn2 = (addr & ENTRYHI_VPN2_MASK) >>
+				    ENTRYHI_VPN2_SHIFT;
+			}
+		}
+
 		/*  Cause an address alignment exception:  */
 		mips_cpu_exception(cpu,
 #ifdef LS_LOAD
@@ -65,7 +89,7 @@ void LS_GENERIC_N(struct cpu *cpu, struc
 #else
 		    EXCEPTION_ADES,
 #endif
-		    0, addr, 0, 0, 0, 0);
+		    0, addr, 0, vaddr_vpn2, vaddr_asid, 0);
 #else
 		fatal("{ mips dyntrans alignment exception, size = %i,"
 		    " addr = %016"PRIx64", pc = %016"PRIx64" }\n", LS_SIZE,