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 },