summaryrefslogtreecommitdiff
path: root/sys/arch/i386
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2004-06-15 17:31:36 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2004-06-15 17:31:36 +0000
commit0d99ffd6d44ac98036b8eaabb0f33507b96963fb (patch)
tree365a63e9bd3236f47f4eba1ab6facecd286fc6dd /sys/arch/i386
parentc8c1f30cad287f33c34490748cc874ca8ff16c11 (diff)
grok upcoming VIA C3 Esther montmul, sha1, and sha256 instructions
Diffstat (limited to 'sys/arch/i386')
-rw-r--r--sys/arch/i386/i386/db_disasm.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/arch/i386/i386/db_disasm.c b/sys/arch/i386/i386/db_disasm.c
index 0b7b83e61bf..0414870f05a 100644
--- a/sys/arch/i386/i386/db_disasm.c
+++ b/sys/arch/i386/i386/db_disasm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_disasm.c,v 1.10 2004/02/01 19:13:44 deraadt Exp $ */
+/* $OpenBSD: db_disasm.c,v 1.11 2004/06/15 17:31:35 deraadt Exp $ */
/* $NetBSD: db_disasm.c,v 1.11 1996/05/03 19:41:58 christos Exp $ */
/*
@@ -140,10 +140,15 @@ char * db_GrpA[] = {
};
char * db_GrpB[] = {
- "xstore-rng", "xcrypt-ecb", "xcrypt-cbc", "",
+ "xstore-rng", "xcrypt-ecb", "xcrypt-cbc", "xcrypt-ctr",
"xcrypt-cfb", "xcrypt-ofb", "", ""
};
+char * db_GrpC[] = {
+ "montmul", "xsha1", "xsha256", "",
+ "", "", "", ""
+};
+
struct inst db_inst_0f0x[] = {
/*00*/ { "", TRUE, NONE, op1(Ew), db_Grp6 },
/*01*/ { "", TRUE, NONE, op1(Ew), db_Grp7 },
@@ -251,7 +256,7 @@ struct inst db_inst_0fax[] = {
/*a3*/ { "bt", TRUE, LONG, op2(R,E), 0 },
/*a4*/ { "shld", TRUE, LONG, op3(Ib,R,E), 0 },
/*a5*/ { "shld", TRUE, LONG, op3(CL,R,E), 0 },
-/*a6*/ { "", FALSE, NONE, 0, 0 },
+/*a6*/ { "", TRUE, NONE, 0, db_GrpC },
/*a7*/ { "", TRUE, NONE, 0, db_GrpB },
/*a8*/ { "push", FALSE, NONE, op1(Si), 0 },
@@ -1179,7 +1184,8 @@ db_disasm(loc, altfmt)
if (ip->i_extra == db_Grp1 || ip->i_extra == db_Grp2 ||
ip->i_extra == db_Grp6 || ip->i_extra == db_Grp7 ||
ip->i_extra == db_Grp8 || ip->i_extra == db_Grp9 ||
- ip->i_extra == db_GrpA || ip->i_extra == db_GrpB) {
+ ip->i_extra == db_GrpA || ip->i_extra == db_GrpB ||
+ ip->i_extra == db_GrpC) {
i_name = ((char **)ip->i_extra)[f_reg(regmodrm)];
} else if (ip->i_extra == db_Grp3) {
ip = (struct inst *)ip->i_extra;