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]);

Reply via email to