Module Name: src
Committed By: msaitoh
Date: Thu Oct 9 18:34:24 UTC 2014
Modified Files:
src/sys/arch/amd64/amd64: db_disasm.c
src/sys/arch/i386/i386: db_disasm.c
Log Message:
Fix bugs:
- aaa and daa were reversed. Same as *BSDs.
- fix operand order of shld and shrd. Same as *BSDs.
To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/amd64/amd64/db_disasm.c
cvs rdiff -u -r1.42 -r1.43 src/sys/arch/i386/i386/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/amd64/amd64/db_disasm.c
diff -u src/sys/arch/amd64/amd64/db_disasm.c:1.18 src/sys/arch/amd64/amd64/db_disasm.c:1.19
--- src/sys/arch/amd64/amd64/db_disasm.c:1.18 Tue Oct 7 15:34:05 2014
+++ src/sys/arch/amd64/amd64/db_disasm.c Thu Oct 9 18:34:24 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: db_disasm.c,v 1.18 2014/10/07 15:34:05 msaitoh Exp $ */
+/* $NetBSD: db_disasm.c,v 1.19 2014/10/09 18:34:24 msaitoh Exp $ */
/*
* Mach Operating System
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.18 2014/10/07 15:34:05 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.19 2014/10/09 18:34:24 msaitoh Exp $");
#ifndef _KERNEL
#include <sys/types.h>
@@ -295,8 +295,8 @@ const struct inst db_inst_0fax[] = {
/*a1*/ { "pop", false, NONE, op1(Si), 0 },
/*a2*/ { "cpuid", false, NONE, 0, 0 },
/*a3*/ { "bt", true, LONG, op2(R,E), 0 },
-/*a4*/ { "shld", true, LONG, op3(Ib,E,R), 0 },
-/*a5*/ { "shld", true, LONG, op3(CL,E,R), 0 },
+/*a4*/ { "shld", true, LONG, op3(Ib,R,E), 0 },
+/*a5*/ { "shld", true, LONG, op3(CL,R,E), 0 },
/*a6*/ { "", false, NONE, 0, 0 },
/*a7*/ { "", false, NONE, 0, 0 },
@@ -304,8 +304,8 @@ const struct inst db_inst_0fax[] = {
/*a9*/ { "pop", false, NONE, op1(Si), 0 },
/*aa*/ { "rsm", false, NONE, 0, 0 },
/*ab*/ { "bts", true, LONG, op2(R,E), 0 },
-/*ac*/ { "shrd", true, LONG, op3(Ib,E,R), 0 },
-/*ad*/ { "shrd", true, LONG, op3(CL,E,R), 0 },
+/*ac*/ { "shrd", true, LONG, op3(Ib,R,E), 0 },
+/*ad*/ { "shrd", true, LONG, op3(CL,R,E), 0 },
/*ae*/ { "fxsave",true, LONG, 0, 0 },
/*af*/ { "imul", true, LONG, op2(E,R), 0 },
};
@@ -339,6 +339,7 @@ const struct inst db_inst_0fcx[] = {
/*c5*/ { "", false, NONE, 0, 0 },
/*c6*/ { "", false, NONE, 0, 0 },
/*c7*/ { "", true, NONE, op1(E), db_Grp9 },
+
/*c8*/ { "bswap", false, LONG, op1(Ri), 0 },
/*c9*/ { "bswap", false, LONG, op1(Ri), 0 },
/*ca*/ { "bswap", false, LONG, op1(Ri), 0 },
@@ -596,7 +597,7 @@ const struct inst db_inst_table[256] = {
/*24*/ { "and", false, BYTE, op2(I, A), 0 },
/*25*/ { "and", false, LONG, op2(I, A), 0 },
/*26*/ { "", false, NONE, 0, 0 },
-/*27*/ { "aaa", false, NONE, 0, 0 },
+/*27*/ { "daa", false, NONE, 0, 0 },
/*28*/ { "sub", true, BYTE, op2(R, E), 0 },
/*29*/ { "sub", true, LONG, op2(R, E), 0 },
@@ -614,7 +615,7 @@ const struct inst db_inst_table[256] = {
/*34*/ { "xor", false, BYTE, op2(I, A), 0 },
/*35*/ { "xor", false, LONG, op2(I, A), 0 },
/*36*/ { "", false, NONE, 0, 0 },
-/*37*/ { "daa", false, NONE, 0, 0 },
+/*37*/ { "aaa", false, NONE, 0, 0 },
/*38*/ { "cmp", true, BYTE, op2(R, E), 0 },
/*39*/ { "cmp", true, LONG, op2(R, E), 0 },
Index: src/sys/arch/i386/i386/db_disasm.c
diff -u src/sys/arch/i386/i386/db_disasm.c:1.42 src/sys/arch/i386/i386/db_disasm.c:1.43
--- src/sys/arch/i386/i386/db_disasm.c:1.42 Tue Oct 7 15:34:05 2014
+++ src/sys/arch/i386/i386/db_disasm.c Thu Oct 9 18:34:24 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: db_disasm.c,v 1.42 2014/10/07 15:34:05 msaitoh Exp $ */
+/* $NetBSD: db_disasm.c,v 1.43 2014/10/09 18:34:24 msaitoh Exp $ */
/*
* Mach Operating System
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.42 2014/10/07 15:34:05 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.43 2014/10/09 18:34:24 msaitoh Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -228,6 +228,7 @@ const struct inst db_inst_0f4x[] = {
/*45*/ { "cmovnz", true, LONG, op2(E,R), 0 },
/*46*/ { "cmovbe", true, LONG, op2(E,R), 0 },
/*47*/ { "cmovmbe",true, LONG, op2(E,R), 0 },
+
/*48*/ { "cmovs", true, LONG, op2(E,R), 0 },
/*49*/ { "cmovns", true, LONG, op2(E,R), 0 },
/*4a*/ { "cmovp", true, LONG, op2(E,R), 0 },
@@ -283,8 +284,8 @@ const struct inst db_inst_0fax[] = {
/*a1*/ { "pop", false, NONE, op1(Si), 0 },
/*a2*/ { "cpuid", false, NONE, 0, 0 },
/*a3*/ { "bt", true, LONG, op2(R,E), 0 },
-/*a4*/ { "shld", true, LONG, op3(Ib,E,R), 0 },
-/*a5*/ { "shld", true, LONG, op3(CL,E,R), 0 },
+/*a4*/ { "shld", true, LONG, op3(Ib,R,E), 0 },
+/*a5*/ { "shld", true, LONG, op3(CL,R,E), 0 },
/*a6*/ { "", false, NONE, 0, 0 },
/*a7*/ { "", false, NONE, 0, 0 },
@@ -292,8 +293,8 @@ const struct inst db_inst_0fax[] = {
/*a9*/ { "pop", false, NONE, op1(Si), 0 },
/*aa*/ { "rsm", false, NONE, 0, 0 },
/*ab*/ { "bts", true, LONG, op2(R,E), 0 },
-/*ac*/ { "shrd", true, LONG, op3(Ib,E,R), 0 },
-/*ad*/ { "shrd", true, LONG, op3(CL,E,R), 0 },
+/*ac*/ { "shrd", true, LONG, op3(Ib,R,E), 0 },
+/*ad*/ { "shrd", true, LONG, op3(CL,R,E), 0 },
/*ae*/ { "fxsave",true, LONG, 0, 0 },
/*af*/ { "imul", true, LONG, op2(E,R), 0 },
};
@@ -327,6 +328,7 @@ const struct inst db_inst_0fcx[] = {
/*c5*/ { "", false, NONE, 0, 0 },
/*c6*/ { "", false, NONE, 0, 0 },
/*c7*/ { "", true, NONE, op1(E), db_Grp9 },
+
/*c8*/ { "bswap", false, LONG, op1(Ri), 0 },
/*c9*/ { "bswap", false, LONG, op1(Ri), 0 },
/*ca*/ { "bswap", false, LONG, op1(Ri), 0 },
@@ -584,7 +586,7 @@ const struct inst db_inst_table[256] = {
/*24*/ { "and", false, BYTE, op2(I, A), 0 },
/*25*/ { "and", false, LONG, op2(I, A), 0 },
/*26*/ { "", false, NONE, 0, 0 },
-/*27*/ { "aaa", false, NONE, 0, 0 },
+/*27*/ { "daa", false, NONE, 0, 0 },
/*28*/ { "sub", true, BYTE, op2(R, E), 0 },
/*29*/ { "sub", true, LONG, op2(R, E), 0 },
@@ -602,7 +604,7 @@ const struct inst db_inst_table[256] = {
/*34*/ { "xor", false, BYTE, op2(I, A), 0 },
/*35*/ { "xor", false, LONG, op2(I, A), 0 },
/*36*/ { "", false, NONE, 0, 0 },
-/*37*/ { "daa", false, NONE, 0, 0 },
+/*37*/ { "aaa", false, NONE, 0, 0 },
/*38*/ { "cmp", true, BYTE, op2(R, E), 0 },
/*39*/ { "cmp", true, LONG, op2(R, E), 0 },