Module Name: src Committed By: cliff Date: Tue Jan 26 04:37:38 UTC 2010
Modified Files: src/sys/arch/mips/mips [matt-nb5-mips64]: db_interface.c Log Message: fix macros used for printing cp0 regs To generate a diff of this commit: cvs rdiff -u -r1.64.16.14 -r1.64.16.15 src/sys/arch/mips/mips/db_interface.c 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/db_interface.c diff -u src/sys/arch/mips/mips/db_interface.c:1.64.16.14 src/sys/arch/mips/mips/db_interface.c:1.64.16.15 --- src/sys/arch/mips/mips/db_interface.c:1.64.16.14 Wed Jan 20 09:04:35 2010 +++ src/sys/arch/mips/mips/db_interface.c Tue Jan 26 04:37:38 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: db_interface.c,v 1.64.16.14 2010/01/20 09:04:35 matt Exp $ */ +/* $NetBSD: db_interface.c,v 1.64.16.15 2010/01/26 04:37:38 cliff Exp $ */ /* * Mach Operating System @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.64.16.14 2010/01/20 09:04:35 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.64.16.15 2010/01/26 04:37:38 cliff Exp $"); #include "opt_cputype.h" /* which mips CPUs do we support? */ #include "opt_ddb.h" @@ -405,54 +405,36 @@ "", __val); \ } while (0) -/* XXX not 64-bit ABI safe! */ -#define SHOW64(reg, name) \ -do { \ - uint64_t __val; \ - \ - __asm volatile( \ - ".set push \n\t" \ - ".set mips3 \n\t" \ - ".set noat \n\t" \ - "dmfc0 %0,$" ___STRING(reg) " \n\t" \ - "dsll %L0,%0,32 \n\t" \ - "dsrl %L0,%L0,32 \n\t" \ - "dsrl %M0,%0,32 \n\t" \ - ".set pop" \ - : "=r"(__val)); \ - printf(" %s:%*s %#"PRIx64"\n", name, FLDWIDTH - (int) strlen(name), \ - "", __val); \ -} while (0) +#define SHOW64(reg, name) MIPS64_SHOW64(reg, 0, name) -#define MIPS64_SHOW32(num, sel, name) \ +#define MIPS64_SHOW32(num, sel, name) \ do { \ uint32_t __val; \ \ + KASSERT (CPUIS64BITS); \ __asm volatile( \ ".set push \n\t" \ ".set mips64 \n\t" \ - "mfc0 %0,$" ___STRING(num) "," ___STRING(sel) "\n\t" \ + "mfc0 %0,$%1,%2 \n\t" \ ".set pop \n\t" \ - : "=r"(__val)); \ + : "=r"(__val) : "n"(num), "n"(sel)); \ printf(" %s:%*s %#x\n", name, FLDWIDTH - (int) strlen(name), \ "", __val); \ } while (0) /* XXX not 64-bit ABI safe! */ -#define MIPS64_SHOW64(num, sel, name) \ +#define MIPS64_SHOW64(num, sel, name) \ do { \ uint64_t __val; \ \ + KASSERT (CPUIS64BITS); \ __asm volatile( \ ".set push \n\t" \ ".set mips64 \n\t" \ ".set noat \n\t" \ - "dmfc0 %0,$" ___STRING(num) "," ___STRING(sel) "\n\t" \ - "dsll %L0,%0,32 \n\t" \ - "dsrl %L0,%L0,32 \n\t" \ - "dsrl %M0,%0,32 \n\t" \ + "dmfc0 %0,$%1,%2 \n\t" \ ".set pop" \ - : "=r"(__val)); \ + : "=r"(__val) : "n"(num), "n"(sel)); \ printf(" %s:%*s %#"PRIx64"\n", name, FLDWIDTH - (int) strlen(name), \ "", __val); \ } while (0)