Module Name: src Committed By: matt Date: Tue Jan 3 03:32:23 UTC 2012
Modified Files: src/sys/arch/mips/mips [matt-nb5-mips64]: mipsX_subr.S Log Message: If MIPS64R2_XLP, just let MIPSX(exception) do the work on cache exceptions. (this might be generalized to all mipsNN with more testing). To generate a diff of this commit: cvs rdiff -u -r1.26.36.1.2.52 -r1.26.36.1.2.53 \ src/sys/arch/mips/mips/mipsX_subr.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/mips/mips/mipsX_subr.S diff -u src/sys/arch/mips/mips/mipsX_subr.S:1.26.36.1.2.52 src/sys/arch/mips/mips/mipsX_subr.S:1.26.36.1.2.53 --- src/sys/arch/mips/mips/mipsX_subr.S:1.26.36.1.2.52 Fri Dec 23 23:40:00 2011 +++ src/sys/arch/mips/mips/mipsX_subr.S Tue Jan 3 03:32:23 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: mipsX_subr.S,v 1.26.36.1.2.52 2011/12/23 23:40:00 matt Exp $ */ +/* $NetBSD: mipsX_subr.S,v 1.26.36.1.2.53 2012/01/03 03:32:23 matt Exp $ */ /* * Copyright 2002 Wasabi Systems, Inc. @@ -1535,6 +1535,11 @@ NESTED_NOPROFILE(MIPSX(cache_exception), eret nop #endif +#if (MIPS64R2_RMIXL) > 0 + PTR_LA k0, MIPSX(exception) # switches to KSEG0 + jr k0 # let common exception handle it + nop +#else PTR_LA k0, panic # return to panic PTR_LA a0, 9f # panicstr _MFC0 a1, MIPS_COP_0_ERROR_PC @@ -1548,16 +1553,6 @@ NESTED_NOPROFILE(MIPSX(cache_exception), #endif mfc0 a4, MIPS_COP_0_STATUS mfc0 a5, MIPS_COP_0_CAUSE -#elif (MIPS64R2_RMIXL) > 0 - li k1, 0x308 /* LSU_CERR_LOG0 */ - mfcr a3, k1 - li k1, 0x309 /* LSU_CERR_LOG1 */ - mfcr a2, k1 -#if defined(__mips_o32) -#error O32 not supported. -#endif - mfc0 a4, MIPS_COP_0_STATUS - mfc0 a5, MIPS_COP_0_CAUSE #else mfc0 a2, MIPS_COP_0_ECC mfc0 a3, MIPS_COP_0_CACHE_ERR @@ -1574,11 +1569,12 @@ NESTED_NOPROFILE(MIPSX(cache_exception), eret -#if (MIPS64_RMIXL + MIPS64R2_RMIXL) > 0 +#if (MIPS64_RMIXL) > 0 MSG("cache error @ EPC %#llx\nL1D_CACHE_ERROR_LOG %#llx\nL1D_CACHE_INTERRUPT %#lx\nstatus %#x, cause %#x"); #else MSG("cache error @ EPC 0x%x ErrCtl 0x%x CacheErr 0x%x"); #endif +#endif .set at END(MIPSX(cache_exception))