Module Name: src Committed By: matt Date: Fri Apr 29 22:06:12 UTC 2011
Modified Files: src/sys/arch/mips/mips: db_disasm.c Log Message: add cop2 instructions To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/mips/mips/db_disasm.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_disasm.c diff -u src/sys/arch/mips/mips/db_disasm.c:1.21 src/sys/arch/mips/mips/db_disasm.c:1.22 --- src/sys/arch/mips/mips/db_disasm.c:1.21 Mon Dec 14 00:46:06 2009 +++ src/sys/arch/mips/mips/db_disasm.c Fri Apr 29 22:06:12 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: db_disasm.c,v 1.21 2009/12/14 00:46:06 matt Exp $ */ +/* $NetBSD: db_disasm.c,v 1.22 2011/04/29 22:06:12 matt Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.21 2009/12/14 00:46:06 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.22 2011/04/29 22:06:12 matt Exp $"); #include <sys/types.h> #include <sys/systm.h> @@ -134,11 +134,11 @@ static const char * const c0_reg[32] = { "index", "random", "tlblo0", "tlblo1", - "context", "pagemask", "wired", "cp0r7", + "context", "pagemask", "wired", "hwrena", "badvaddr", "count", "tlbhi", "compare", "status", "cause", "epc", "prid", "config", "lladdr", "watchlo", "watchhi", - "xcontext", "cp0r21", "cp0r22", "debug", + "xcontext", "cp0r21", "osscratch", "debug", "depc", "perfcnt", "ecc", "cacheerr", "taglo", "taghi", "errepc", "desave" }; @@ -429,6 +429,70 @@ } break; + case OP_COP2: + switch (i.RType.rs) { + case OP_BCx: + case OP_BCy: + db_printf("bc2%c\t", + "ft"[i.RType.rt & COPz_BC_TF_MASK]); + goto pr_displ; + + case OP_MT: + db_printf("mtc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_MF: + db_printf("mfc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_CT: + db_printf("ctc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_CF: + db_printf("cfc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_DMT: + db_printf("dmtc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_DMF: + db_printf("dmfc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_MTH: + db_printf("mthc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + case OP_MFH: + db_printf("mfhc2\t%s,f%d", + reg_name[i.RType.rt], + i.RType.rd); + break; + + default: + db_printf("%s\t%s,%s,%d", op_name[i.IType.op], + reg_name[i.IType.rt], + reg_name[i.IType.rs], + (short)i.IType.imm); + } + break; + case OP_J: case OP_JAL: db_printf("%s\t", op_name[i.JType.op]);