summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2004-06-15 17:31:35 +0000
committerderaadt <deraadt@openbsd.org>2004-06-15 17:31:35 +0000
commitc7b4676081692391eaefa3ad8b01a8f502166bb5 (patch)
tree51ce4ab3a2fce29992c07ef96c3e5269bc1bdf1e
parentCleanup last commit here: (diff)
downloadwireguard-openbsd-c7b4676081692391eaefa3ad8b01a8f502166bb5.tar.xz
wireguard-openbsd-c7b4676081692391eaefa3ad8b01a8f502166bb5.zip
grok upcoming VIA C3 Esther montmul, sha1, and sha256 instructions
-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;