From: "Jan Beulich" <JBeulich@novell.com>
To: <linux-kernel@vger.kernel.org>
Subject: [PATCH 34/39] NLKD/x86 - Console Debug Agent
Date: Wed, 09 Nov 2005 15:28:11 +0100 [thread overview]
Message-ID: <4372158B.76F0.0078.0@novell.com> (raw)
In-Reply-To: 4372156A.76F0.0078.0@novell.com
[-- Attachment #1: Type: text/plain, Size: 152 bytes --]
The x86-dependent (32- and 64-bit) part of the Console Debug Agent of
NLKD.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
(actual patch attached)
[-- Attachment #2: nlkd-cda-x86.patch --]
[-- Type: application/octet-stream, Size: 70689 bytes --]
The x86-dependent (32- and 64-bit) part of the Console Debug Agent of
NLKD.
Signed-Off-By: Jan Beulich <jbeulich@novell.com>
Index: 2.6.14-nlkd/debug/nlkd/cda/x86_1.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.6.14-nlkd/debug/nlkd/cda/x86_1.c 2005-09-01 08:37:23.000000000 +0200
@@ -0,0 +1,535 @@
+/*****************************************************************************
+ *
+ * File Name: x86_1.c
+ * Created by: Jan Beulich
+ * Date created: 08Mar2001
+ *
+ * %version: 7 %
+ * %derived_by: jbeulich %
+ * %date_modified: Thu Sep 01 00:37:12 2005 %
+ *
+ *****************************************************************************/
+/*****************************************************************************
+ * *
+ * Copyright (c) 2001-2005 Novell, Inc. All Rights Reserved. *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of version 2 of the GNU General Public License *
+ * as published by the Free Software Foundation. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, contact Novell, Inc. *
+ * *
+ * To contact Novell about this file by physical or electronic mail, *
+ * you may find current contact information at www.novell.com. *
+ * *
+ *****************************************************************************/
+/*****************************************************************************
+ *
+ * File Description:
+ *
+ *****************************************************************************/
+
+NAME_TABLE(80_, "add", "or", "adc", "sbb", "and", "sub", "xor", "cmp");
+#define names_81_ names_80_
+#define names_82_ names_80_
+#define names_83_ names_80_
+NAME_TABLE(8F_, "pop", NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+NAME_TABLE(C0_, "rol", "ror", "rcl", "rcr", "shl", "shr", "sal", "sar");
+#define names_C1_ names_C0_
+NAME_TABLE(C6_, "mov", NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#define names_C7_ names_C6_
+#define names_D0_ names_C0_
+#define names_D1_ names_C0_
+#define names_D2_ names_C0_
+#define names_D3_ names_C0_
+NAME_TABLE(D8m, "fadd", "fmul", "fcom", "fcomp", "fsub", "fsubr", "fdiv", "fdivr");
+NAME_TABLE(D9r2, "fnop", NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+NAME_TABLE(D9r4, "fchs", "fabs", NULL, NULL, "ftst", "fxam", NULL, NULL);
+NAME_TABLE(D9r5, "fld1", "fldl2t", "fldl2e", "fldpi", "fldlg2", "fldln2", "fldz", NULL);
+NAME_TABLE(D9r6, "f2xm1", "fyl2x", "fptan", "fpatan", "fxtract", "fprem1", "fdecstp", "fincstp");
+NAME_TABLE(D9r7, "fprem", "fyl2xp1", "fsqrt", "fsincos", "frndint", "fscale", "fsin", "fcos");
+NAME_TABLE(DAm, "fiadd", "fimul", "ficom", "ficomp", "fisub", "fisubr", "fidiv", "fidivr");
+NAME_TABLE(DAr5, NULL, "fucompp", NULL, NULL, NULL, NULL, NULL, NULL);
+NAME_TABLE(DBr4, "fneni", "fndisi", "fnclex", "fninit", "fsetpm", "frstpm", NULL, NULL);
+#define names_DCm names_D8m
+NAME_TABLE(DCr, "fadd", "fmul", NULL, NULL, "fsubr", "fsub", "fdivr", "fdiv");
+NAME_TABLE(DEr3, NULL, "fcompp", NULL, NULL, NULL, NULL, NULL, NULL);
+#define names_DEm names_DAm
+NAME_TABLE(DFr4, "fnstsw", NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+NAME_TABLE(FE_, "inc", "dec", NULL, NULL, NULL, NULL, NULL, NULL);
+
+static const OpcodeInfo branch_00[8] = {
+ LEAF_NORMAL(00, "add", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(01, "add", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(02, "add", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(03, "add", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(04, "add", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(05, "add", accum, offset, imm, offset32, sflags, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(06, "push", reg, ptr, none, none, SP, none, none, none),
+ LEAF_NORMAL(07, "pop", reg, ptr, none, word, tos, none, none, none)},
+#else
+ LEAF_NORMAL(06, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(07, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_08[8] = {
+ LEAF_NORMAL(08, "or", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(09, "or", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0A, "or", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0B, "or", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0C, "or", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(0D, "or", accum, offset, imm, offset32, sflags, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(0E, "push", reg, ptr, none, none, SP, none, none, none),
+#else
+ LEAF_NORMAL(0E, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(0F, NULL, none, none, none, none, none, none, none, none)},
+branch_10[8] = {
+ LEAF_NORMAL(10, "adc", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(11, "adc", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(12, "adc", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(13, "adc", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(14, "adc", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(15, "adc", accum, offset, imm, offset32, sflags, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(16, "push", reg, ptr, none, none, SP, none, none, none),
+ LEAF_NORMAL(17, "pop", reg, ptr, none, word, tos, none, none, none)},
+#else
+ LEAF_NORMAL(16, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(17, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_18[8] = {
+ LEAF_NORMAL(18, "sbb", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(19, "sbb", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(1A, "sbb", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(1B, "sbb", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(1C, "sbb", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(1D, "sbb", accum, offset, imm, offset32, sflags, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(1E, "push", reg, ptr, none, none, SP, none, none, none),
+ LEAF_NORMAL(1F, "pop", reg, ptr, none, word, tos, none, none, none)},
+#else
+ LEAF_NORMAL(1E, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(1F, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_20[8] = {
+ LEAF_NORMAL(20, "and", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(21, "and", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(22, "and", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(23, "and", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(24, "and", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(25, "and", accum, offset, imm, offset32, sflags, none, none, none),
+ LEAF_NORMAL(26, NULL, none, none, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(27, "daa", none, none, none, none, AX, sflags, none, none)},
+#else
+ LEAF_NORMAL(27, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_28[8] = {
+ LEAF_NORMAL(28, "sub", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(29, "sub", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(2A, "sub", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(2B, "sub", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(2C, "sub", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(2D, "sub", accum, offset, imm, offset32, sflags, none, none, none),
+ LEAF_NORMAL(2E, NULL, none, none, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(2F, "das", none, none, none, none, AX, sflags, none, none)},
+#else
+ LEAF_NORMAL(2F, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_30[8] = {
+ LEAF_NORMAL(30, "xor", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(31, "xor", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(32, "xor", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(33, "xor", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(34, "xor", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(35, "xor", accum, offset, imm, offset32, sflags, none, none, none),
+ LEAF_NORMAL(36, NULL, none, none, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(37, "aaa", none, none, none, none, AX, sflags, none, none)},
+#else
+ LEAF_NORMAL(37, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_38[8] = {
+ LEAF_NORMAL(38, "cmp", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(39, "cmp", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(3A, "cmp", r_rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(3B, "cmp", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(3C, "cmp", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(3D, "cmp", accum, offset, imm, offset32, sflags, none, none, none),
+ LEAF_NORMAL(3E, NULL, none, none, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(3F, "aas", none, none, none, none, AX, sflags, none, none)},
+#else
+ LEAF_NORMAL(3F, NULL, none, none, none, none, none, none, none, none)},
+#endif
+branch_60[8] = {
+#ifndef X86_64
+ LEAF_NORMAL(60, "pusha", none, none, none, none, GRs, none, none, opsz),
+ LEAF_NORMAL(61, "popa", none, none, none, none, GRs, none, none, opsz),
+ LEAF_NORMAL(62, "bound", r, offset, mm, 2offsets, none, none, none, none),
+ LEAF_NORMAL(63, "arpl", rm_r, offset, none, none, none, none, none, none),
+#else
+ LEAF_NORMAL(60, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(61, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(62, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(63, "movsx", r, offset, rm, dword, none, none, none, none),
+#endif
+ LEAF_NORMAL(64, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(65, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(66, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(67, NULL, none, none, none, none, none, none, none, none)},
+branch_68[8] = {
+ LEAF_NORMAL(68, "push", imm, offset64, none, none, SP, none, none, none),
+ LEAF_NORMAL(69, "imul", r_rm, offset, imm, offset32, sflags, none, none, imul),
+ LEAF_NORMAL(6A, "push", simm, offset, none, none, SP, none, none, none),
+ LEAF_NORMAL(6B, "imul", r_rm, offset, simm, offset, sflags, none, none, imul),
+ LEAF_NORMAL(6C, "ins", str_d, byte, cl_dx, word, none, none, none, string),
+ LEAF_NORMAL(6D, "ins", str_d, offset32, cl_dx, word, none, none, none, string),
+ LEAF_NORMAL(6E, "outs", cl_dx, word, str_s, byte, none, none, none, string),
+ LEAF_NORMAL(6F, "outs", cl_dx, word, str_s, offset32, none, none, none, string)},
+branch_80[8] = {
+ NAME_NORMAL(80_, rm, byte, imm, byte, sflags, none, none),
+ NAME_NORMAL(81_, rm, offset, imm, offset32, sflags, none, none),
+ LEAF_NORMAL(82, NULL, none, none, none, none, none, none, none, none),
+ NAME_NORMAL(83_, rm, offset, simm, offset, sflags, none, none),
+ LEAF_NORMAL(84, "test", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(85, "test", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(86, "xchg", rm_r, byte, none, none, none, none, none, none),
+ LEAF_NORMAL(87, "xchg", rm_r, offset, none, none, none, none, none, none)},
+regmem_8C[2] = {
+ LEAF_NORMAL(8Cm, "mov", mm, word, r, ptr, none, none, nowidth, none),
+ LEAF_NORMAL(8Cr, "mov", rr, offset, r, ptr, none, none, none, none)},
+regmem_8E[2] = {
+ LEAF_NORMAL(8Em, "mov", r, ptr, mm, word, none, none, nowidth, none),
+ LEAF_NORMAL(8Er, "mov", r, ptr, rr, offset, none, none, none, none)},
+branch_88[8] = {
+ LEAF_NORMAL(88, "mov", rm_r, byte, none, none, none, none, none, none),
+ LEAF_NORMAL(89, "mov", rm_r, offset, none, none, none, none, none, none),
+ LEAF_NORMAL(8A, "mov", r_rm, byte, none, none, none, none, none, none),
+ LEAF_NORMAL(8B, "mov", r_rm, offset, none, none, none, none, none, none),
+ REGMEM_ENTRY(8C, normal),
+ LEAF_NORMAL(8D, "lea", r, offset, mm, none, none, none, none, none),
+ REGMEM_ENTRY(8E, normal),
+ NAME_NORMAL(8F_, rm, offset64, none, offset64, tos, none, none)},
+branch_90[8] = {
+ LEAF_NORMAL(90, "nop", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(91, "xchg", accum, offset, reg, offset, none, none, none, none),
+ LEAF_NORMAL(92, "xchg", accum, offset, reg, offset, none, none, none, none),
+ LEAF_NORMAL(93, "xchg", accum, offset, reg, offset, none, none, none, none),
+ LEAF_NORMAL(94, "xchg", accum, offset, reg, offset, none, none, none, none),
+ LEAF_NORMAL(95, "xchg", accum, offset, reg, offset, none, none, none, none),
+ LEAF_NORMAL(96, "xchg", accum, offset, reg, offset, none, none, none, none),
+ LEAF_NORMAL(97, "xchg", accum, offset, reg, offset, none, none, none, none)},
+branch_98[8] = {
+#ifndef X86_64
+ LEAF_NORMAL(98, "cbw", none, none, none, none, AX, none, none, none),
+ LEAF_NORMAL(99, "cwd", none, none, none, none, DX_AX, none, none, none),
+ LEAF_NORMAL(9A, "call", imm, ptr, none, none, SP, CS, none, none),
+#else
+ LEAF_NORMAL(98, "cwde", none, none, none, none, AX, none, none, none),
+ LEAF_NORMAL(99, "cdq", none, none, none, none, DX_AX, none, none, none),
+ LEAF_NORMAL(9A, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(9B, "wait", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(9C, "pushf", none, none, none, none, SP, flags, none, opsz),
+ LEAF_NORMAL(9D, "popf", none, none, none, offset64, tos, flags, none, opsz),
+ LEAF_NORMAL(9E, "sahf", none, none, none, none, AX, sflags, none, none),
+ LEAF_NORMAL(9F, "lahf", none, none, none, none, sflags, AX, none, none)},
+branch_A0[8] = {
+ LEAF_NORMAL(A0, "mov", accum, byte, mem, byte, none, none, none, none),
+ LEAF_NORMAL(A1, "mov", accum, offset, mem, offset, none, none, none, none),
+ LEAF_NORMAL(A2, "mov", mem, byte, accum, byte, none, none, none, none),
+ LEAF_NORMAL(A3, "mov", mem, offset, accum, offset, none, none, none, none),
+ LEAF_NORMAL(A4, "movs", str_d, byte, str_s, byte, none, none, none, string),
+ LEAF_NORMAL(A5, "movs", str_d, offset, str_s, offset, none, none, none, string),
+ LEAF_NORMAL(A6, "cmps", str_s, byte, str_d, byte, sflags, none, none, string),
+ LEAF_NORMAL(A7, "cmps", str_s, offset, str_d, offset, sflags, none, none, string)},
+branch_A8[8] = {
+ LEAF_NORMAL(A8, "test", accum, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(A9, "test", accum, offset, imm, offset32, sflags, none, none, none),
+ LEAF_NORMAL(AA, "stos", str_d, byte, none, none, none, none, none, string),
+ LEAF_NORMAL(AB, "stos", str_d, offset, none, none, none, none, none, string),
+ LEAF_NORMAL(AC, "lods", str_s, byte, none, none, none, none, none, string),
+ LEAF_NORMAL(AD, "lods", str_s, offset, none, none, none, none, none, string),
+ LEAF_NORMAL(AE, "scas", str_d, byte, none, none, sflags, none, none, string),
+ LEAF_NORMAL(AF, "scas", str_d, offset, none, none, sflags, none, none, string)},
+branch_C0[8] = {
+ NAME_NORMAL(C0_, rm, byte, imm, byte, sflags, none, none),
+ NAME_NORMAL(C1_, rm, offset, imm, byte, sflags, none, none),
+ LEAF_NORMAL(C2, "ret", imm, word, none, offset64, tos, none, none, none),
+ LEAF_NORMAL(C3, "ret", none, none, none, offset64, tos, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(C4, "les", r, offset, mm, ptr, ES, none, nowidth, none),
+ LEAF_NORMAL(C5, "lds", r, offset, mm, ptr, DS, none, nowidth, none),
+#else
+ LEAF_NORMAL(C4, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(C5, NULL, none, none, none, none, none, none, none, none),
+#endif
+ NAME_NORMAL(C6_, rm, byte, imm, byte, none, none, none),
+ NAME_NORMAL(C7_, rm, offset, imm, offset32, none, none, none)},
+branch_C8[8] = {
+ LEAF_NORMAL(C8, "enter", imm, word, imm, byte, BP, SP, none, opsz),
+ LEAF_NORMAL(C9, "leave", none, none, none, none, SP, BP, none, opsz),
+ LEAF_NORMAL(CA, "retf", imm, word, none, ptr, tos, CS, none, none),
+ LEAF_NORMAL(CB, "retf", none, none, none, ptr, tos, CS, none, none),
+ LEAF_NORMAL(CC, "int3", none, none, none, none, SP, int, none, none),
+ LEAF_NORMAL(CD, "int", imm, byte, none, none, SP, int, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(CE, "into", none, none, none, none, SP, int, none, none),
+#else
+ LEAF_NORMAL(CE, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(CF, "iret", none, none, none, ptr, tos, int, none, opsz)},
+branch_D0[8] = {
+ NAME_NORMAL(D0_, rm, byte, imm, none, sflags, none, none),
+ NAME_NORMAL(D1_, rm, offset, imm, none, sflags, none, none),
+ NAME_NORMAL(D2_, rm, byte, cl_dx, byte, sflags, none, none),
+ NAME_NORMAL(D3_, rm, offset, cl_dx, byte, sflags, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(D4, "aam", imm, byte, none, none, AX, sflags, none, none),
+ LEAF_NORMAL(D5, "aad", imm, byte, none, none, AX, sflags, none, none),
+ LEAF_NORMAL(D6, "salc", none, none, none, none, AX, sflags, none, none),
+#else
+ LEAF_NORMAL(D4, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(D5, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(D6, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(D7, "xlat", str_s, byte, none, none, AX, none, none, string)},
+branch_D9m[8] = {
+ LEAF_NORMAL(D9m0, "fld", mm, real4, none, none, ST0, none, none, none),
+ LEAF_NORMAL(D9m1, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(D9m2, "fst", mm, real4, none, none, ST0, none, none, none),
+ LEAF_NORMAL(D9m3, "fstp", mm, real4, none, none, ST0, none, none, none),
+ LEAF_NORMAL(D9m4, "fldenv", mm, none, none, none, none, none, none, none),
+ LEAF_NORMAL(D9m5, "fldcw", mm, word, none, none, fcw, none, nowidth, none),
+ LEAF_NORMAL(D9m6, "fnstenv", mm, none, none, none, none, none, none, wait),
+ LEAF_NORMAL(D9m7, "fnstcw", mm, word, none, none, fcw, none, nowidth, wait)},
+branch_DBm[8] = {
+ LEAF_NORMAL(DBm0, "fild", mm, dword, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DBm1, "fisttp", mm, dword, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DBm2, "fist", mm, dword, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DBm3, "fistp", mm, dword, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DBm4, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DBm5, "fld", mm, real10, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DBm6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DBm7, "fstp", mm, real10, none, none, ST0, none, none, none)},
+branch_DDm[8] = {
+ LEAF_NORMAL(DDm0, "fld", mm, real8, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DDm1, "fisttp", mm, qword, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DDm2, "fst", mm, real8, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DDm3, "fstp", mm, real8, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DDm4, "frstor", mm, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DDm5, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DDm6, "fnsave", mm, none, none, none, none, none, none, wait),
+ LEAF_NORMAL(DDm7, "fnstsw", mm, word, none, none, fsw, none, nowidth, wait)},
+branch_DFm[8] = {
+ LEAF_NORMAL(DFm0, "fild", mm, word, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm1, "fisttp", mm, word, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm2, "fist", mm, word, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm3, "fistp", mm, word, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm4, "fbld", mm, bcd, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm5, "fild", mm, qword, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm6, "fbstp", mm, bcd, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFm7, "fistp", mm, qword, none, none, ST0, none, none, none)},
+branch_D8_m[8] = {
+ NAME_NORMAL(D8m, mm, real4, none, none, ST0, none, none),
+ BRANCH_ENTRY(D9m),
+ NAME_NORMAL(DAm, mm, dword, none, none, ST0, none, none),
+ BRANCH_ENTRY(DBm),
+ NAME_NORMAL(DCm, mm, real8, none, none, ST0, none, none),
+ BRANCH_ENTRY(DDm),
+ NAME_NORMAL(DEm, mm, word, none, none, ST0, none, none),
+ BRANCH_ENTRY(DFm)},
+branch_D8r[8] = {
+ LEAF_NORMAL(D8r0, "fadd", accum, real10, rr, real10, fsw, none, none, none),
+ LEAF_NORMAL(D8r1, "fmul", accum, real10, rr, real10, fsw, none, none, none),
+ LEAF_NORMAL(D8r2, "fcom", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(D8r3, "fcomp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(D8r4, "fsub", accum, real10, rr, real10, fsw, none, none, none),
+ LEAF_NORMAL(D8r5, "fsubr", accum, real10, rr, real10, fsw, none, none, none),
+ LEAF_NORMAL(D8r6, "fdiv", accum, real10, rr, real10, fsw, none, none, none),
+ LEAF_NORMAL(D8r7, "fdivr", accum, real10, rr, real10, fsw, none, none, none)},
+branch_D9r[8] = {
+ LEAF_NORMAL(D9r0, "fld", rr, real10, none, none, ST0, none, none, none),
+ LEAF_NORMAL(D9r1, "fxch", rr, real10, none, none, ST0, none, none, st1),
+ NAME_NORMAL(D9r2, none, none, none, none, fsw, none, none),
+ LEAF_NORMAL(D9r3, NULL, none, none, none, none, none, none, none, none),
+ NAME_NORMAL(D9r4, none, none, none, none, ST0, none, none),
+ NAME_NORMAL(D9r5, none, none, none, none, ST0, none, none),
+ NAME_NORMAL(D9r6, none, none, none, none, ST0, none, none),
+ NAME_NORMAL(D9r7, none, none, none, none, ST0, none, none)},
+branch_DAr[8] = {
+ LEAF_COND(DAr0, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_COND(DAr1, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_COND(DAr2, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_COND(DAr3, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_NORMAL(DAr4, NULL, none, none, none, none, none, none, none, none),
+ NAME_NORMAL(DAr5, none, none, none, none, ST0_ST1, none, none),
+ LEAF_NORMAL(DAr6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DAr7, NULL, none, none, none, none, none, none, none, none)},
+branch_DBr[8] = {
+ LEAF_COND(DBr0, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_COND(DBr1, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_COND(DBr2, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ LEAF_COND(DBr3, "fcmov", accum, real10, rr, real10, sflags, ST0, fpu, none),
+ NAME_NORMAL(DBr4, none, none, none, none, none, none, wait),
+ LEAF_NORMAL(DBr5, "fucomi", accum, real10, rr, real10, sflags, none, none, none),
+ LEAF_NORMAL(DBr6, "fcomi", accum, real10, rr, real10, sflags, none, none, none),
+ LEAF_NORMAL(DBr7, NULL, none, none, none, none, none, none, none, none)},
+branch_DDr[8] = {
+ LEAF_NORMAL(DDr0, "ffree", rr, real10, none, none, none, none, none, none),
+ LEAF_NORMAL(DDr1, "fxch4", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DDr2, "fst", rr, real10, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DDr3, "fstp", rr, real10, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DDr4, "fucom", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DDr5, "fucomp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DDr6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DDr7, NULL, none, none, none, none, none, none, none, none)},
+branch_DEr[8] = {
+ LEAF_NORMAL(DEr0, "faddp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DEr1, "fmulp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DEr2, NULL, none, none, none, none, none, none, none, none),
+ NAME_NORMAL(DEr3, none, none, none, none, ST0_ST1, none, none),
+ LEAF_NORMAL(DEr4, "fsubrp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DEr5, "fsubp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DEr6, "fdivrp", rr, real10, none, none, ST0, none, none, st1),
+ LEAF_NORMAL(DEr7, "fdivp", rr, real10, none, none, ST0, none, none, st1)},
+branch_DFr[8] = {
+ LEAF_NORMAL(DFr0, "ffreep", rr, real10, none, none, ST0, none, none, none),
+ LEAF_NORMAL(DFr1, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DFr2, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(DFr3, NULL, none, none, none, none, none, none, none, none),
+ NAME_NORMAL(DFr4, accum, word, none, none, fsw, none, wait),
+ LEAF_NORMAL(DFr5, "fucomip", accum, real10, rr, real10, sflags, none, none, none),
+ LEAF_NORMAL(DFr6, "fcomip", accum, real10, rr, real10, sflags, none, none, none),
+ LEAF_NORMAL(DFr7, NULL, none, none, none, none, none, none, none, none)},
+branch_D8_r[8] = {
+ BRANCH_ENTRY(D8r),
+ BRANCH_ENTRY(D9r),
+ BRANCH_ENTRY(DAr),
+ BRANCH_ENTRY(DBr),
+ NAME_NORMAL(DCr, rr, real10, accum, real10, fsw, none, none),
+ BRANCH_ENTRY(DDr),
+ BRANCH_ENTRY(DEr),
+ BRANCH_ENTRY(DFr)},
+regmem_D8[2] = {
+ BRANCH_ENTRY(D8_m),
+ BRANCH_ENTRY(D8_r)},
+branch_E0[8] = {
+ LEAF_COND(E0, "loop", disp, byte, none, none, CX, sflags, loop, adsz),
+ LEAF_COND(E1, "loop", disp, byte, none, none, CX, sflags, loop, adsz),
+ LEAF_COND(E2, "loop", disp, byte, none, none, CX, none, loop, adsz),
+#ifndef X86_64
+ LEAF_COND(E3, "jcxz", disp, byte, none, none, CX, none, loop, none),
+#else
+ LEAF_COND(E3, "jrcxz", disp, byte, none, none, CX, none, loop, none),
+#endif
+ LEAF_NORMAL(E4, "in", accum, byte, imm, byte, none, none, none, none),
+ LEAF_NORMAL(E5, "in", accum, offset32, imm, byte, none, none, none, none),
+ LEAF_NORMAL(E6, "out", imm, byte, accum, byte, none, none, none, none),
+ LEAF_NORMAL(E7, "out", imm, byte, accum, offset32, none, none, none, none)},
+branch_E8[8] = {
+ LEAF_NORMAL(E8, "call", disp, offset, none, none, SP, none, none, none),
+ LEAF_NORMAL(E9, "jmp", disp, offset, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(EA, "jmp", imm, ptr, none, none, CS, none, none, none),
+#else
+ LEAF_NORMAL(9A, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(EB, "jmp", disp, byte, none, none, none, none, none, none),
+ LEAF_NORMAL(EC, "in", accum, byte, cl_dx, word, none, none, none, none),
+ LEAF_NORMAL(ED, "in", accum, offset32, cl_dx, word, none, none, none, none),
+ LEAF_NORMAL(EE, "out", cl_dx, word, accum, byte, none, none, none, none),
+ LEAF_NORMAL(EF, "out", cl_dx, word, accum, offset32, none, none, none, none)},
+branch_F6_[8] = {
+ LEAF_NORMAL(F6_0, "test", rm, byte, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(F6_1, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(F6_2, "not", rm, byte, none, none, none, none, none, none),
+ LEAF_NORMAL(F6_3, "neg", rm, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(F6_4, "mul", rm, byte, none, none, DX_AX, sflags, none, none),
+ LEAF_NORMAL(F6_5, "imul", rm, byte, none, none, DX_AX, sflags, none, none),
+ LEAF_NORMAL(F6_6, "div", rm, byte, none, none, DX_AX, sflags, none, none),
+ LEAF_NORMAL(F6_7, "idiv", rm, byte, none, none, DX_AX, sflags, none, none)},
+branch_F7_[8] = {
+ LEAF_NORMAL(F7_0, "test", rm, offset, imm, offset32, sflags, none, none, none),
+ LEAF_NORMAL(F7_1, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(F7_2, "not", rm, offset, none, none, none, none, none, none),
+ LEAF_NORMAL(F7_3, "neg", rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(F7_4, "mul", rm, offset, none, none, DX_AX, sflags, none, none),
+ LEAF_NORMAL(F7_5, "imul", rm, offset, none, none, DX_AX, sflags, none, none),
+ LEAF_NORMAL(F7_6, "div", rm, offset, none, none, DX_AX, sflags, none, none),
+ LEAF_NORMAL(F7_7, "idiv", rm, offset, none, none, DX_AX, sflags, none, none)},
+branch_F0[8] = {
+ LEAF_NORMAL(F0, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(F1, "icebp", none, none, none, none, sflags, none, none, none),
+ LEAF_NORMAL(F2, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(F3, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(F4, "hlt", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(F5, "cmc", none, none, none, none, sflags, none, none, none),
+ BRANCH_ENTRY(F6_),
+ BRANCH_ENTRY(F7_)},
+branch_FF_[8] = {
+ LEAF_NORMAL(FF_0, "inc", rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(FF_1, "dec", rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(FF_2, "call", rm, offset64, none, none, SP, none, none, none),
+ LEAF_NORMAL(FF_3, "call", mm, ptr32, none, none, SP, CS, none, none),
+ LEAF_NORMAL(FF_4, "jmp", rm, offset64, none, none, none, none, none, none),
+ LEAF_NORMAL(FF_5, "jmp", mm, ptr32, none, none, CS, none, none, none),
+ LEAF_NORMAL(FF_6, "push", rm, offset64, none, none, SP, none, none, none),
+ LEAF_NORMAL(FF_7, NULL, none, none, none, none, none, none, none, none)},
+branch_F8[8] = {
+ LEAF_NORMAL(F8, "clc", none, none, none, none, sflags, none, none, none),
+ LEAF_NORMAL(F9, "stc", none, none, none, none, sflags, none, none, none),
+ LEAF_NORMAL(FA, "cli", none, none, none, none, flags, none, none, none),
+ LEAF_NORMAL(FB, "sti", none, none, none, none, flags, none, none, none),
+ LEAF_NORMAL(FC, "cld", none, none, none, none, flags, none, none, none),
+ LEAF_NORMAL(FD, "std", none, none, none, none, flags, none, none, none),
+ NAME_NORMAL(FE_, rm, byte, none, none, sflags, none, none),
+ BRANCH_ENTRY(FF_)},
+oneByteTable[256 >> 3] = {
+ BRANCH_ENTRY(00),
+ BRANCH_ENTRY(08),
+ BRANCH_ENTRY(10),
+ BRANCH_ENTRY(18),
+ BRANCH_ENTRY(20),
+ BRANCH_ENTRY(28),
+ BRANCH_ENTRY(30),
+ BRANCH_ENTRY(38),
+#ifndef X86_64
+ LEAF_NORMAL(40, "inc", reg, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(48, "dec", reg, offset, none, none, sflags, none, none, none),
+#else
+ LEAF_NORMAL(40, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(48, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(50, "push", reg, offset64, none, none, SP, none, none, none),
+ LEAF_NORMAL(58, "pop", reg, offset64, none, offset, tos, none, none, none),
+ BRANCH_ENTRY(60),
+ BRANCH_ENTRY(68),
+ LEAF_COND(70, "j", disp, byte, none, none, sflags, none, normal, none),
+ LEAF_COND(78, "j", disp, byte, none, none, sflags, none, normal, none),
+ BRANCH_ENTRY(80),
+ BRANCH_ENTRY(88),
+ BRANCH_ENTRY(90),
+ BRANCH_ENTRY(98),
+ BRANCH_ENTRY(A0),
+ BRANCH_ENTRY(A8),
+ LEAF_NORMAL(B0, "mov", reg, byte, imm, byte, none, none, none, none),
+ LEAF_NORMAL(B8, "mov", reg, offset, imm, offset, none, none, none, none),
+ BRANCH_ENTRY(C0),
+ BRANCH_ENTRY(C8),
+ BRANCH_ENTRY(D0),
+ REGMEM_ENTRY(D8, normal),
+ BRANCH_ENTRY(E0),
+ BRANCH_ENTRY(E8),
+ BRANCH_ENTRY(F0),
+ BRANCH_ENTRY(F8)};
Index: 2.6.14-nlkd/debug/nlkd/cda/x86_2.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.6.14-nlkd/debug/nlkd/cda/x86_2.c 2005-09-01 08:37:51.000000000 +0200
@@ -0,0 +1,453 @@
+/*****************************************************************************
+ *
+ * File Name: x86_2.c
+ * Created by: Jan Beulich
+ * Date created: 08Mar2001
+ *
+ * %version: 8 %
+ * %derived_by: jbeulich %
+ * %date_modified: Thu Sep 01 00:37:38 2005 %
+ *
+ *****************************************************************************/
+/*****************************************************************************
+ * *
+ * Copyright (c) 2001-2005 Novell, Inc. All Rights Reserved. *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of version 2 of the GNU General Public License *
+ * as published by the Free Software Foundation. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, contact Novell, Inc. *
+ * *
+ * To contact Novell about this file by physical or electronic mail, *
+ * you may find current contact information at www.novell.com. *
+ * *
+ *****************************************************************************/
+/*****************************************************************************
+ *
+ * File Description:
+ *
+ *****************************************************************************/
+
+#ifndef X86_64
+NAME_TABLE(0F00r, "sldt", "str", "lldt", "ltr", "verr", "verw", "jmpe", NULL);
+#else
+NAME_TABLE(0F00r, "sldt", "str", "lldt", "ltr", "verr", "verw", NULL, NULL);
+#endif
+NAME_TABLE(0F71_, NULL, NULL, "psrl", NULL, "psra", NULL, "psll", NULL);
+#define names_0F72_ names_0F71_
+NAME_TABLE(0F73_, NULL, NULL, "psrl", "psrl", NULL, NULL, "psll", "psll");
+NAME_TABLE(0F90, "set", NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#define names_0F91 names_0F90
+#define names_0F92 names_0F90
+#define names_0F93 names_0F90
+#define names_0F94 names_0F90
+#define names_0F95 names_0F90
+#define names_0F96 names_0F90
+#define names_0F97 names_0F90
+#define names_0F98 names_0F90
+#define names_0F99 names_0F90
+#define names_0F9A names_0F90
+#define names_0F9B names_0F90
+#define names_0F9C names_0F90
+#define names_0F9D names_0F90
+#define names_0F9E names_0F90
+#define names_0F9F names_0F90
+NAME_TABLE(0FBA_, NULL, NULL, NULL, NULL, "bt", "bts", "btr", "btc");
+
+static const OpcodeInfo
+branch_0F00m[8] = {
+ LEAF_NORMAL(0F00m0, "sldt", mm, word, none, none, none, none, nowidth, none),
+ LEAF_NORMAL(0F00m1, "str", mm, word, none, none, none, none, nowidth, none),
+ LEAF_NORMAL(0F00m2, "lldt", mm, word, none, none, none, none, nowidth, none),
+ LEAF_NORMAL(0F00m3, "ltr", mm, word, none, none, none, none, nowidth, none),
+ LEAF_NORMAL(0F00m4, "verr", mm, word, none, none, none, none, nowidth, none),
+ LEAF_NORMAL(0F00m5, "verw", mm, word, none, none, none, none, nowidth, none),
+#ifndef X86_64
+ LEAF_NORMAL(0F00m6, "jmpe", mm, offset, none, none, none, none, none, none),
+#else
+ LEAF_NORMAL(0F00m6, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(0F00m7, NULL, none, none, none, none, none, none, none, none)},
+regmem_0F00[2] = {
+ BRANCH_ENTRY(0F00m),
+ NAME_NORMAL(0F00r, rr, offset, none, none, none, none, none)},
+branch_0F01_1r[8] = {
+ LEAF_NORMAL(0F01_1r0, "monitor", none, none, none, none, DS_AX, DX_CX, none, none),
+ LEAF_NORMAL(0F01_1r1, "mwait", none, none, none, none, CX, AX, none, none),
+ LEAF_NORMAL(0F01_1r2, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_1r3, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_1r4, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_1r5, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_1r6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_1r7, NULL, none, none, none, none, none, none, none, none)},
+regmem_0F01_1[2] = {
+ LEAF_NORMAL(0F01_1m, "sidt", mm, pword, none, none, none, none, none, opsz),
+ BRANCH_ENTRY(0F01_1r)},
+branch_0F01_3r[8] = {
+ LEAF_NORMAL(0F01_3r0, "vmrun", none, none, none, none, AX, none, none, none),
+ LEAF_NORMAL(0F01_3r1, "vmmcall", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_3r2, "vmload", none, none, none, none, AX, none, none, none),
+ LEAF_NORMAL(0F01_3r3, "vmsave", none, none, none, none, AX, none, none, none),
+ LEAF_NORMAL(0F01_3r4, "stgi", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_3r5, "clgi", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_3r6, "skinit", none, none, none, none, AX, none, none, none),
+ LEAF_NORMAL(0F01_3r7, "invlpga", none, none, none, none, AX, CX, none, none)},
+regmem_0F01_3[2] = {
+ LEAF_NORMAL(0F01_3m, "lidt", mm, pword, none, none, none, none, none, opsz),
+ BRANCH_ENTRY(0F01_3r)},
+regmem_0F01_4[2] = {
+ LEAF_NORMAL(0F01_4m, "smsw", mm, word, none, none, none, none, nowidth, none),
+ LEAF_NORMAL(0F01_4r, "smsw", rr, offset, none, none, none, none, none, none)},
+branch_0F01_7r[8] = {
+#ifndef X86_64
+ LEAF_NORMAL(0F01_7r0, NULL, none, none, none, none, none, none, none, none),
+#else
+ LEAF_NORMAL(0F01_7r0, "swapgs", none, none, none, none, GS, none, none, none),
+#endif
+ LEAF_NORMAL(0F01_7r1, "rdtscp", none, none, none, none, DX_AX, CX, none, none),
+ LEAF_NORMAL(0F01_7r2, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_7r3, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_7r4, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_7r5, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_7r6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_7r7, NULL, none, none, none, none, none, none, none, none)},
+regmem_0F01_7[2] = {
+ LEAF_NORMAL(0F01_7m, "invlpg", mm, none, none, none, none, none, none, none),
+ BRANCH_ENTRY(0F01_7r)},
+branch_0F01_[8] = {
+ LEAF_NORMAL(0F01_0, "sgdt", mm, pword, none, none, none, none, none, opsz),
+ REGMEM_ENTRY(0F01_1, normal),
+ LEAF_NORMAL(0F01_2, "lgdt", mm, pword, none, none, none, none, none, opsz),
+ REGMEM_ENTRY(0F01_3, normal),
+ REGMEM_ENTRY(0F01_4, normal),
+ LEAF_NORMAL(0F01_5, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F01_6, "lmsw", rm, word, none, none, none, none, nowidth, none),
+ REGMEM_ENTRY(0F01_7, normal)},
+branch_0F00[8] = {
+ REGMEM_ENTRY(0F00, normal),
+ BRANCH_ENTRY(0F01_),
+ LEAF_NORMAL(0F02, "lar", r_rm, offset32, none, none, none, none, none, none),
+ LEAF_NORMAL(0F03, "lsl", r_rm, offset32, none, none, none, none, none, none),
+ LEAF_NORMAL(0F04, NULL, none, none, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(0F05, "syscall", none, none, none, none, CX, int, none, none),
+#else
+ LEAF_NORMAL(0F05, "syscall", none, none, none, none, CX_R11, int, none, none),
+#endif
+ LEAF_NORMAL(0F06, "clts", none, none, none, none, none, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(0F07, "sysret", none, none, none, none, CX, int, none, none)},
+#else
+ LEAF_NORMAL(0F07, "sysret", none, none, none, none, CX_R11, int, none, none)},
+#endif
+branch_0F08[8] = {
+ LEAF_NORMAL(0F08, "invd", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F09, "wbinvd", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F0A, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F0B, "ud2", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F0C, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F0D, "prefetch", mm, none, none, none, none, none, access, none), // 3DNow!
+ LEAF_MMX(0F0E, "femms", none, none, none, none, none, none, none), // 3DNow!
+ LEAF_MMX(0F0F, NULL, r_rm, mmx, none, none, none, 3dnow, none)}, // 3DNow!
+regmem_0F12[8] = {
+ LEAF_XMM(0F12mPS, "movl", r, xmm, mm, xmm, none, half, none),
+ LEAF_XMM(0F12rPS, "movhl", r, xmm, rr, xmm, none, packed, none),
+ LEAF_XMM(0F12mSS, "movsldup", r, xmm, rm, xmm, none, none, none),
+ LEAF_XMM(0F12rSS, "movsldup", r, xmm, rm, xmm, none, none, none),
+ LEAF_XMM(0F12mPD, "movl", r, xmm, mm, xmm, none, half, none),
+ LEAF_XMM(0F12rPD, NULL, none, none, none, none, none, none, none),
+ LEAF_XMM(0F12mSD, "movddup", r, xmm, rm, xmm, none, none, none),
+ LEAF_XMM(0F12rSD, "movddup", r, xmm, rm, xmm, none, none, none)},
+regmem_0F16[8] = {
+ LEAF_XMM(0F16mPS, "movh", r, xmm, mm, xmm, none, half, none),
+ LEAF_XMM(0F16rPS, "movlh", r, xmm, rr, xmm, none, packed, none),
+ LEAF_XMM(0F16mSS, "movshdup", r, xmm, rm, xmm, none, none, none),
+ LEAF_XMM(0F16rSS, "movshdup", r, xmm, rm, xmm, none, none, none),
+ LEAF_XMM(0F16mPD, "movh", r, xmm, mm, xmm, none, half, none),
+ LEAF_XMM(0F16rPD, NULL, none, none, none, none, none, none, none),
+ LEAF_XMM(0F16mSD, NULL, none, none, none, none, none, none, none),
+ LEAF_XMM(0F16rSD, NULL, none, none, none, none, none, none, none)},
+branch_0F10[8] = {
+ LEAF_XMM(0F10, "mov", r_rm, xmm, none, none, none, mode, none), // note: ps form is movups
+ LEAF_XMM(0F11, "mov", rm_r, xmm, none, none, none, mode, none), // note: ps form is movups
+ REGMEM_ENTRY(0F12, xmm),
+ LEAF_XMM(0F13, "movl", mm, xmm, r, xmm, none, half, none),
+ LEAF_XMM(0F14, "unpckl", r_rm, xmm, none, none, none, packed, none),
+ LEAF_XMM(0F15, "unpckh", r_rm, xmm, none, none, none, packed, none),
+ REGMEM_ENTRY(0F16, xmm),
+ LEAF_XMM(0F17, "movh", mm, xmm, r, xmm, none, half, none)},
+branch_0F18[8] = {
+ LEAF_NORMAL(0F18, "prefetch", mm, none, none, none, none, none, loc, none),
+ LEAF_NORMAL(0F19, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F1A, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F1B, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F1C, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F1D, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F1E, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F1F, NULL, none, none, none, none, none, none, none, none)},
+branch_0F20[8] = {
+ LEAF_NORMAL(0F20, "mov", rr, reg, cdt, reg, none, none, none, none),
+ LEAF_NORMAL(0F21, "mov", rr, reg, cdt, reg, none, none, none, none),
+ LEAF_NORMAL(0F22, "mov", cdt, reg, rr, reg, none, none, none, none),
+ LEAF_NORMAL(0F23, "mov", cdt, reg, rr, reg, none, none, none, none),
+ LEAF_NORMAL(0F24, "mov", rr, reg, cdt, reg, none, none, none, none),
+ LEAF_NORMAL(0F25, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F26, "mov", cdt, reg, rr, reg, none, none, none, none),
+ LEAF_NORMAL(0F27, NULL, none, none, none, none, none, none, none, none)},
+branch_0F28[8] = {
+ LEAF_XMM(0F28, "mova", r_rm, xmm, none, none, none, packed, none),
+ LEAF_XMM(0F29, "mova", rm_r, xmm, none, none, none, packed, none),
+ LEAF_XMM(0F2A, "cvt", r, xmm, rm, mmx, mxcsr, convert, none),
+ LEAF_XMM(0F2B, "movnt", mm, xmm, r, xmm, none, packed, none),
+ LEAF_XMM(0F2C, "cvt", r, mmx, rm, xmm, mxcsr, convert, none),
+ LEAF_XMM(0F2D, "cvt", r, mmx, rm, xmm, mxcsr, convert, none),
+ LEAF_XMM(0F2E, "ucomi", r_rm, xmm, none, none, sflags, scalar, none),
+ LEAF_XMM(0F2F, "comi", r_rm, xmm, none, none, sflags, scalar, none)},
+branch_0F30[8] = {
+ LEAF_NORMAL(0F30, "wrmsr", none, none, none, none, CX, DX_AX, none, none),
+ LEAF_NORMAL(0F31, "rdtsc", none, none, none, none, DX_AX, none, none, none),
+ LEAF_NORMAL(0F32, "rdmsr", none, none, none, none, CX, DX_AX, none, none),
+ LEAF_NORMAL(0F33, "rdpmc", none, none, none, none, DX_AX, none, none, none),
+#ifndef X86_64
+ LEAF_NORMAL(0F34, "sysenter", none, none, none, none, int, none, none, none),
+#else
+ LEAF_NORMAL(0F34, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(0F35, "sysexit", none, none, none, none, DX_CX, int, none, none),
+ LEAF_NORMAL(0F36, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0F37, NULL, none, none, none, none, none, none, none, none)},
+branch_0F50[8] = {
+ LEAF_XMM(0F50, "movmsk", r, dword, rr, xmm, none, packed, none),
+ LEAF_XMM(0F51, "sqrt", r_rm, xmm, none, none, mxcsr, mode, none),
+ LEAF_XMM(0F52, "rsqrt", r_rm, xmm, none, none, mxcsr, single, none),
+ LEAF_XMM(0F53, "rcp", r_rm, xmm, none, none, mxcsr, single, none),
+ LEAF_XMM(0F54, "and", r_rm, xmm, none, none, none, packed, none),
+ LEAF_XMM(0F55, "andn", r_rm, xmm, none, none, none, packed, none),
+ LEAF_XMM(0F56, "or", r_rm, xmm, none, none, none, packed, none),
+ LEAF_XMM(0F57, "xor", r_rm, xmm, none, none, none, packed, none)},
+branch_0F58[8] = {
+ LEAF_XMM(0F58, "add", r_rm, xmm, none, none, mxcsr, mode, none),
+ LEAF_XMM(0F59, "mul", r_rm, xmm, none, none, mxcsr, mode, none),
+ LEAF_XMM(0F5A, "cvt", r, xmm, rm, xmm, mxcsr, convert, none),
+ LEAF_XMM(0F5B, "cvt", r, xmm, rm, xmm, mxcsr, convert, none),
+ LEAF_XMM(0F5C, "sub", r_rm, xmm, none, none, mxcsr, mode, none),
+ LEAF_XMM(0F5D, "min", r_rm, xmm, none, none, mxcsr, mode, none),
+ LEAF_XMM(0F5E, "div", r_rm, xmm, none, none, mxcsr, mode, none),
+ LEAF_XMM(0F5F, "max", r_rm, xmm, none, none, mxcsr, mode, none)},
+branch_0F60[8] = {
+ LEAF_MMX(0F60, "punpckl", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F61, "punpckl", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F62, "punpckl", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F63, "pack", r_rm, mmx_xmm, none, none, none, shrink, none),
+ LEAF_MMX(0F64, "pcmpgt", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0F65, "pcmpgt", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0F66, "pcmpgt", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0F67, "pack", r_rm, mmx_xmm, none, none, none, shrink, none)},
+branch_0F68[8] = {
+ LEAF_MMX(0F68, "punpckh", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F69, "punpckh", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F6A, "punpckh", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F6B, "pack", r_rm, mmx_xmm, none, none, none, shrink, none),
+ LEAF_MMX(0F6C, "punpckl", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F6D, "punpckh", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0F6E, "mov", r, mmx_xmm, rm, dword, none, normal, none),
+ LEAF_MMX(0F6F, "mov", r_rm, mmx_xmm, none, none, none, normal, none)},
+branch_0F70[8] = {
+ LEAF_MMX(0F70, "pshuf", r_rm, mmx_xmm, imm, byte, none, word, none),
+ NAME_MMX(0F71_, rr, mmx_xmm, imm, byte, normal, none),
+ NAME_MMX(0F72_, rr, mmx_xmm, imm, byte, normal, none),
+ NAME_MMX(0F73_, rr, mmx_xmm, imm, byte, normal, none),
+ LEAF_MMX(0F74, "pcmpeq", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0F75, "pcmpeq", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0F76, "pcmpeq", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0F77, "emms", none, none, none, none, none, none, none)},
+branch_0F78[8] = {
+ LEAF_MMX(0F78, NULL, none, none, none, none, none, none, none),
+ LEAF_MMX(0F79, NULL, none, none, none, none, none, none, none),
+ LEAF_MMX(0F7A, NULL, none, none, none, none, none, none, none),
+ LEAF_MMX(0F7B, NULL, none, none, none, none, none, none, none),
+ LEAF_XMM(0F7C, "hadd", r_rm, xmm, none, none, mxcsr, sse3, none),
+ LEAF_XMM(0F7D, "hsub", r_rm, xmm, none, none, mxcsr, sse3, none),
+ LEAF_MMX(0F7E, "mov", rm, dword, r, mmx_xmm, none, normal, none),
+ LEAF_MMX(0F7F, "mov", rm_r, mmx_xmm, none, none, none, normal, none)},
+branch_0F90[8] = {
+ NAME_COND(0F90, rm, byte, none, none, normal, none),
+ NAME_COND(0F91, rm, byte, none, none, normal, none),
+ NAME_COND(0F92, rm, byte, none, none, normal, none),
+ NAME_COND(0F93, rm, byte, none, none, normal, none),
+ NAME_COND(0F94, rm, byte, none, none, normal, none),
+ NAME_COND(0F95, rm, byte, none, none, normal, none),
+ NAME_COND(0F96, rm, byte, none, none, normal, none),
+ NAME_COND(0F97, rm, byte, none, none, normal, none)},
+#define branch_0F98 branch_0F90
+branch_0FA0[8] = {
+ LEAF_NORMAL(0FA0, "push", reg, ptr, none, none, SP, none, none, none),
+ LEAF_NORMAL(0FA1, "pop", reg, ptr, none, word, tos, none, none, none),
+ LEAF_NORMAL(0FA2, "cpuid", none, none, none, none, DX_AX, CX_BX, none, none),
+ LEAF_NORMAL(0FA3, "bt", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0FA4, "shld", rm_r, offset, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(0FA5, "shld", rm_r, offset, cl_dx, byte, sflags, none, none, none),
+ LEAF_NORMAL(0FA6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FA7, NULL, none, none, none, none, none, none, none, none)},
+regmem_0FAE_5[2] = {
+ LEAF_NORMAL(0FAE_5m, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FAE_5r, "lfence", none, none, none, none, none, none, none, none)},
+regmem_0FAE_6[2] = {
+ LEAF_NORMAL(0FAE_6m, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FAE_6r, "mfence", none, none, none, none, none, none, none, none)},
+regmem_0FAE_7[2] = {
+ LEAF_NORMAL(0FAE_7m, "clflush", mm, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FAE_7r, "sfence", none, none, none, none, none, none, none, none)},
+branch_0FAE_[8] = {
+ LEAF_NORMAL(0FAE_0, "fxsave", mm, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FAE_1, "fxrstor", mm, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FAE_2, "ldmxcsr", mm, dword, none, none, mxcsr, none, nowidth, none),
+ LEAF_NORMAL(0FAE_3, "stmxcsr", mm, dword, none, none, mxcsr, none, nowidth, none),
+ LEAF_NORMAL(0FAE_4, NULL, none, none, none, none, none, none, none, none),
+ REGMEM_ENTRY(0FAE_5, normal),
+ REGMEM_ENTRY(0FAE_6, normal),
+ REGMEM_ENTRY(0FAE_7, normal)},
+branch_0FA8[8] = {
+ LEAF_NORMAL(0FA8, "push", reg, ptr, none, none, SP, none, none, none),
+ LEAF_NORMAL(0FA9, "pop", reg, ptr, none, word, tos, none, none, none),
+ LEAF_NORMAL(0FAA, "rsm", none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FAB, "bts", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0FAC, "shrd", rm_r, offset, imm, byte, sflags, none, none, none),
+ LEAF_NORMAL(0FAD, "shrd", rm_r, offset, cl_dx, byte, sflags, none, none, none),
+ BRANCH_ENTRY(0FAE_),
+ LEAF_NORMAL(0FAF, "imul", r_rm, offset, none, none, sflags, none, none, none)},
+branch_0FB0[8] = {
+ LEAF_NORMAL(0FB0, "cmpxchg", mm, byte, r, byte, AX, none, nowidth, none),
+ LEAF_NORMAL(0FB1, "cmpxchg", mm, offset, r, offset, AX, none, nowidth, none),
+ LEAF_NORMAL(0FB2, "lss", r, offset, mm, ptr32, SS, none, nowidth, none),
+ LEAF_NORMAL(0FB3, "btr", rm_r, offset, none, none, none, none, none, none),
+ LEAF_NORMAL(0FB4, "lfs", r, offset, mm, ptr32, FS, none, nowidth, none),
+ LEAF_NORMAL(0FB5, "lgs", r, offset, mm, ptr32, GS, none, nowidth, none),
+ LEAF_NORMAL(0FB6, "movzx", r, offset, rm, byte, none, none, none, none),
+ LEAF_NORMAL(0FB7, "movzx", r, offset, rm, word, none, none, none, none)},
+branch_0FB8[8] = {
+#ifndef X86_64
+ LEAF_NORMAL(0FB8, "jmpe", imm, offset, none, none, none, none, none, none),
+#else
+ LEAF_NORMAL(0FB8, NULL, none, none, none, none, none, none, none, none),
+#endif
+ LEAF_NORMAL(0FB9, "ud2", none, none, none, none, none, none, none, none),
+ NAME_NORMAL(0FBA_, rm, offset, imm, byte, sflags, none, none),
+ LEAF_NORMAL(0FBB, "btc", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0FBC, "bsf", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0FBD, "bsr", r_rm, offset, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0FBE, "movsx", r, offset, rm, byte, none, none, none, none),
+ LEAF_NORMAL(0FBF, "movsx", r, offset, rm, word, none, none, none, none)},
+branch_0FC7_[8] = {
+ LEAF_NORMAL(0FC7_0, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FC7_1, "cmpxchg", mm, qword, none, none, DX_AX, CX_BX, nowidth, none),
+ LEAF_NORMAL(0FC7_2, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FC7_3, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FC7_4, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FC7_5, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FC7_6, NULL, none, none, none, none, none, none, none, none),
+ LEAF_NORMAL(0FC7_7, NULL, none, none, none, none, none, none, none, none)},
+branch_0FC0[8] = {
+ LEAF_NORMAL(0FC0, "xadd", rm_r, byte, none, none, sflags, none, none, none),
+ LEAF_NORMAL(0FC1, "xadd", rm_r, offset, none, none, sflags, none, none, none),
+ LEAF_XMM(0FC2, "cmp", r_rm, xmm, imm, byte, mxcsr, mode, none),
+ LEAF_NORMAL(0FC3, "movnti", mm, dword, r, dword, none, none, nowidth, none),
+ LEAF_MMX(0FC4, "pinsr", mmxie, word, imm, byte, none, word, none),
+ LEAF_MMX(0FC5, "pextr", mmxie, mmx_xmm, imm, byte, none, word, none),
+ LEAF_XMM(0FC6, "shuf", r_rm, xmm, imm, byte, mxcsr, packed, none),
+ BRANCH_ENTRY(0FC7_)},
+branch_0FD0[8] = {
+ LEAF_XMM(0FD0, "addsub", r_rm, xmm, none, none, mxcsr, sse3, none),
+ LEAF_MMX(0FD1, "psrl", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FD2, "psrl", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FD3, "psrl", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FD4, "padd", r_rm, mmx_xmm, none, none, none, quad, none),
+ LEAF_MMX(0FD5, "pmull", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_XMM(0FD6, "mov", r, xmm, rm, xmm, none, convert, none),
+ LEAF_MMX(0FD7, "pmovmsk", r, dword, rr, mmx_xmm, none, byte, none)},
+branch_0FD8[8] = {
+ LEAF_MMX(0FD8, "psub", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FD9, "psub", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FDA, "pmin", r_rm, mmx_xmm, none, none, none, us_bw, none),
+ LEAF_MMX(0FDB, "pand", r_rm, mmx_xmm, none, none, none, none, none),
+ LEAF_MMX(0FDC, "padd", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FDD, "padd", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FDE, "pmax", r_rm, mmx_xmm, none, none, none, us_bw, none),
+ LEAF_MMX(0FDF, "pandn", r_rm, mmx_xmm, none, none, none, none, none)},
+branch_0FE0[8] = {
+ LEAF_MMX(0FE0, "pavg", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FE1, "psra", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FE2, "psra", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FE3, "pavg", r_rm, mmx_xmm, none, none, none, word, none),
+ LEAF_MMX(0FE4, "pmulhu", r_rm, mmx_xmm, none, none, none, word, none),
+ LEAF_MMX(0FE5, "pmulh", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_XMM(0FE6, "cvt", r, xmm, rm, xmm, mxcsr, convert, none),
+ LEAF_MMX(0FE7, "movnt", mm, mmx_xmm, r, mmx_xmm, none, normal, none)},
+branch_0FE8[8] = {
+ LEAF_MMX(0FE8, "psub", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FE9, "psub", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FEA, "pmin", r_rm, mmx_xmm, none, none, none, us_bw, none),
+ LEAF_MMX(0FEB, "por", r_rm, mmx_xmm, none, none, none, none, none),
+ LEAF_MMX(0FEC, "padd", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FED, "padd", r_rm, mmx_xmm, none, none, none, saturate, none),
+ LEAF_MMX(0FEE, "pmax", r_rm, mmx_xmm, none, none, none, us_bw, none),
+ LEAF_MMX(0FEF, "pxor", r_rm, mmx_xmm, none, none, none, none, none)},
+branch_0FF0[8] = {
+ LEAF_XMM(0FF0, "lddqu", r, xmm, mm, xmm, none, none, none),
+ LEAF_MMX(0FF1, "psll", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FF2, "psll", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FF3, "psll", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FF4, "pmuludq", r_rm, mmx_xmm, none, none, none, none, none),
+ LEAF_MMX(0FF5, "pmadd", r_rm, mmx_xmm, none, none, none, expand, none),
+ LEAF_MMX(0FF6, "psad", r_rm, mmx_xmm, none, none, none, bw, none),
+ LEAF_MMX(0FF7, "maskmov", r, mmx_xmm, rr, mmx_xmm, DS_DI, normal, none)},
+branch_0FF8[8] = {
+ LEAF_MMX(0FF8, "psub", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FF9, "psub", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FFA, "psub", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FFB, "psub", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FFC, "padd", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FFD, "padd", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FFE, "padd", r_rm, mmx_xmm, none, none, none, normal, none),
+ LEAF_MMX(0FFF, NULL, none, none, none, none, none, none, none)},
+twoByteTable[256 >> 3] = {
+ BRANCH_ENTRY(0F00),
+ BRANCH_ENTRY(0F08),
+ BRANCH_ENTRY(0F10),
+ BRANCH_ENTRY(0F18),
+ BRANCH_ENTRY(0F20),
+ BRANCH_ENTRY(0F28),
+ BRANCH_ENTRY(0F30),
+ LEAF_NORMAL(0F38, NULL, none, none, none, none, none, none, none, none),
+ LEAF_COND(0F40, "cmov", r_rm, offset, none, none, sflags, none, normal, none),
+ LEAF_COND(0F48, "cmov", r_rm, offset, none, none, sflags, none, normal, none),
+ BRANCH_ENTRY(0F50),
+ BRANCH_ENTRY(0F58),
+ BRANCH_ENTRY(0F60),
+ BRANCH_ENTRY(0F68),
+ BRANCH_ENTRY(0F70),
+ BRANCH_ENTRY(0F78),
+ LEAF_COND(0F80, "j", disp, offset, none, none, sflags, none, normal, none),
+ LEAF_COND(0F88, "j", disp, offset, none, none, sflags, none, normal, none),
+ BRANCH_ENTRY(0F90),
+ BRANCH_ENTRY(0F98),
+ BRANCH_ENTRY(0FA0),
+ BRANCH_ENTRY(0FA8),
+ BRANCH_ENTRY(0FB0),
+ BRANCH_ENTRY(0FB8),
+ BRANCH_ENTRY(0FC0),
+ LEAF_NORMAL(0FC8, "bswap", reg, offset, none, none, none, none, none, none),
+ BRANCH_ENTRY(0FD0),
+ BRANCH_ENTRY(0FD8),
+ BRANCH_ENTRY(0FE0),
+ BRANCH_ENTRY(0FE8),
+ BRANCH_ENTRY(0FF0),
+ BRANCH_ENTRY(0FF8)
+};
Index: 2.6.14-nlkd/debug/nlkd/cda/x86_3.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.6.14-nlkd/debug/nlkd/cda/x86_3.c 2005-06-27 11:40:57.000000000 +0200
@@ -0,0 +1,159 @@
+/*****************************************************************************
+ *
+ * File Name: x86_3.c
+ * Created by: Jan Beulich
+ * Date created: 08Mar2001
+ *
+ * %version: 3 %
+ * %derived_by: jbeulich %
+ * %date_modified: Mon Jun 27 03:40:43 2005 %
+ *
+ *****************************************************************************/
+/*****************************************************************************
+ * *
+ * Copyright (c) 2001-2005 Novell, Inc. All Rights Reserved. *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of version 2 of the GNU General Public License *
+ * as published by the Free Software Foundation. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, contact Novell, Inc. *
+ * *
+ * To contact Novell about this file by physical or electronic mail, *
+ * you may find current contact information at www.novell.com. *
+ * *
+ *****************************************************************************/
+/*****************************************************************************
+ *
+ * File Description:
+ *
+ *****************************************************************************/
+
+#define LEAF_3DNOW(oc, m) LEAF_MMX(oc, m, r_rm, mmx, none, none, none, 3dnow, none)
+static const OpcodeInfo k3d0x[16] = {
+ LEAF_3DNOW(k3d00, NULL),
+ LEAF_3DNOW(k3d01, NULL),
+ LEAF_3DNOW(k3d02, NULL),
+ LEAF_3DNOW(k3d03, NULL),
+ LEAF_3DNOW(k3d04, NULL),
+ LEAF_3DNOW(k3d05, NULL),
+ LEAF_3DNOW(k3d06, NULL),
+ LEAF_3DNOW(k3d07, NULL),
+ LEAF_3DNOW(k3d08, NULL),
+ LEAF_3DNOW(k3d09, NULL),
+ LEAF_3DNOW(k3d0A, NULL),
+ LEAF_3DNOW(k3d0B, NULL),
+ LEAF_3DNOW(k3d0C, "pi2fw"),
+ LEAF_3DNOW(k3d0D, "pi2fd"),
+ LEAF_3DNOW(k3d0E, NULL),
+ LEAF_3DNOW(k3d0F, NULL)},
+k3d1x[16] = {
+ LEAF_3DNOW(k3d10, NULL),
+ LEAF_3DNOW(k3d11, NULL),
+ LEAF_3DNOW(k3d12, NULL),
+ LEAF_3DNOW(k3d13, NULL),
+ LEAF_3DNOW(k3d14, NULL),
+ LEAF_3DNOW(k3d15, NULL),
+ LEAF_3DNOW(k3d16, NULL),
+ LEAF_3DNOW(k3d17, NULL),
+ LEAF_3DNOW(k3d18, NULL),
+ LEAF_3DNOW(k3d19, NULL),
+ LEAF_3DNOW(k3d1A, NULL),
+ LEAF_3DNOW(k3d1B, NULL),
+ LEAF_3DNOW(k3d1C, "pf2iw"),
+ LEAF_3DNOW(k3d1D, "pf2id"),
+ LEAF_3DNOW(k3d1E, NULL),
+ LEAF_3DNOW(k3d1F, NULL)},
+k3d8x[16] = {
+ LEAF_3DNOW(k3d80, NULL),
+ LEAF_3DNOW(k3d81, NULL),
+ LEAF_3DNOW(k3d82, NULL),
+ LEAF_3DNOW(k3d83, NULL),
+ LEAF_3DNOW(k3d84, NULL),
+ LEAF_3DNOW(k3d85, NULL),
+ LEAF_3DNOW(k3d86, NULL),
+ LEAF_3DNOW(k3d87, NULL),
+ LEAF_3DNOW(k3d88, NULL),
+ LEAF_3DNOW(k3d89, NULL),
+ LEAF_3DNOW(k3d8A, "pfnacc"),
+ LEAF_3DNOW(k3d8B, NULL),
+ LEAF_3DNOW(k3d8C, NULL),
+ LEAF_3DNOW(k3d8D, NULL),
+ LEAF_3DNOW(k3d8E, "pfpnacc"),
+ LEAF_3DNOW(k3d8F, NULL)},
+k3d9x[16] = {
+ LEAF_3DNOW(k3d90, "pfcmpge"),
+ LEAF_3DNOW(k3d91, NULL),
+ LEAF_3DNOW(k3d92, NULL),
+ LEAF_3DNOW(k3d93, NULL),
+ LEAF_3DNOW(k3d94, "pfmin"),
+ LEAF_3DNOW(k3d95, NULL),
+ LEAF_3DNOW(k3d96, "pfrcp"),
+ LEAF_3DNOW(k3d97, "pfrsqrt"),
+ LEAF_3DNOW(k3d98, NULL),
+ LEAF_3DNOW(k3d99, NULL),
+ LEAF_3DNOW(k3d9A, "pfsub"),
+ LEAF_3DNOW(k3d9B, NULL),
+ LEAF_3DNOW(k3d9C, NULL),
+ LEAF_3DNOW(k3d9D, NULL),
+ LEAF_3DNOW(k3d9E, "pfadd"),
+ LEAF_3DNOW(k3d9F, NULL)},
+k3dAx[16] = {
+ LEAF_3DNOW(k3dA0, "pfcmpgt"),
+ LEAF_3DNOW(k3dA1, NULL),
+ LEAF_3DNOW(k3dA2, NULL),
+ LEAF_3DNOW(k3dA3, NULL),
+ LEAF_3DNOW(k3dA4, "pfmax"),
+ LEAF_3DNOW(k3dA5, NULL),
+ LEAF_3DNOW(k3dA6, "pfrcpit1"),
+ LEAF_3DNOW(k3dA7, "pfrsqit1"),
+ LEAF_3DNOW(k3dA8, NULL),
+ LEAF_3DNOW(k3dA9, NULL),
+ LEAF_3DNOW(k3dAA, "pfsubr"),
+ LEAF_3DNOW(k3dAB, NULL),
+ LEAF_3DNOW(k3dAC, NULL),
+ LEAF_3DNOW(k3dAD, NULL),
+ LEAF_3DNOW(k3dAE, "pfacc"),
+ LEAF_3DNOW(k3dAF, NULL)},
+k3dBx[16] = {
+ LEAF_3DNOW(k3dB0, "pfcmpeq"),
+ LEAF_3DNOW(k3dB1, NULL),
+ LEAF_3DNOW(k3dB2, NULL),
+ LEAF_3DNOW(k3dB3, NULL),
+ LEAF_3DNOW(k3dB4, "pfmul"),
+ LEAF_3DNOW(k3dB5, NULL),
+ LEAF_3DNOW(k3dB6, "pfrcpit2"),
+ LEAF_MMX(k3dB7, "pmulhr", r_rm, mmx, none, none, none, word, none),
+ LEAF_3DNOW(k3dB8, NULL),
+ LEAF_3DNOW(k3dB9, NULL),
+ LEAF_3DNOW(k3dBA, NULL),
+ LEAF_3DNOW(k3dBB, "pswapd"),
+ LEAF_3DNOW(k3dBC, NULL),
+ LEAF_3DNOW(k3dBD, NULL),
+ LEAF_3DNOW(k3dBE, NULL),
+ LEAF_MMX(k3dBF, "pavgus", r_rm, mmx, none, none, none, byte, none)},
+#undef LEAF_3DNOW
+*const k3dTable[16] = {
+ k3d0x,
+ k3d1x,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ k3d8x,
+ k3d9x,
+ k3dAx,
+ k3dBx,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
Index: 2.6.14-nlkd/debug/nlkd/cda/x86_op.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ 2.6.14-nlkd/debug/nlkd/cda/x86_op.c 2005-06-27 11:41:25.000000000 +0200
@@ -0,0 +1,136 @@
+/*****************************************************************************
+ *
+ * File Name: x86_op.c
+ * Created by: Jan Beulich
+ * Date created: 08Mar2001
+ *
+ * %version: 5 %
+ * %derived_by: jbeulich %
+ * %date_modified: Mon Jun 27 03:41:13 2005 %
+ *
+ *****************************************************************************/
+/*****************************************************************************
+ * *
+ * Copyright (c) 2001-2005 Novell, Inc. All Rights Reserved *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of version 2 of the GNU General Public License *
+ * as published by the Free Software Foundation. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, contact Novell, Inc. *
+ * *
+ * To contact Novell about this file by physical or electronic mail, *
+ * you may find current contact information at www.novell.com. *
+ * *
+ *****************************************************************************/
+/*****************************************************************************
+ *
+ * File Description:
+ *
+ *****************************************************************************/
+
+#if defined(OPERAND)
+
+OPERAND_NEW(_, imm),
+OPERAND(simm),
+OPERAND(accum),
+OPERAND(cl_dx),
+OPERAND(mem),
+OPERAND(reg),
+OPERAND(str_s),
+OPERAND(str_d),
+OPERAND(r),
+OPERAND(rm),
+OPERAND(rr),
+OPERAND(mm),
+OPERAND(cdt),
+OPERAND_END(_)
+// below those that can only occur in position 1
+OPERAND_NEW(1_, disp),
+OPERAND(r_rm),
+OPERAND(rm_r),
+OPERAND(mmxie),
+OPERAND_END(1_)
+
+#elif defined(HIDDEN_OPERAND)
+
+# ifndef X86_64
+HIDDEN_OPERAND(tos, general, reg_esp, none),
+HIDDEN_OPERAND(AX, general, reg_eax, none),
+HIDDEN_OPERAND(CX, general, reg_ecx, none),
+HIDDEN_OPERAND(SP, general, reg_esp, none),
+HIDDEN_OPERAND(BP, general, reg_ebp, none),
+HIDDEN_OPERAND(DX_AX, general, reg_eax, DX),
+HIDDEN_OPERAND(DX_CX, general, reg_ecx, DX),
+HIDDEN_OPERAND(CX_BX, general, reg_ebx, CX),
+HIDDEN_OPERAND(GRs, general, reg_esp, GRs1),
+# undef CS /* colliding with include/asm/ptrace.h */
+HIDDEN_OPERAND(CS, selector, sreg_cs, none),
+# undef DS
+HIDDEN_OPERAND(DS, selector, sreg_ds, none),
+# undef ES
+HIDDEN_OPERAND(ES, selector, sreg_es, none),
+# undef FS
+HIDDEN_OPERAND(FS, selector, sreg_fs, none),
+# undef GS
+HIDDEN_OPERAND(GS, selector, sreg_gs, none),
+# undef SS
+HIDDEN_OPERAND(SS, selector, sreg_ss, none),
+HIDDEN_OPERAND(flags, eflags, 0, none),
+HIDDEN_OPERAND(sflags, flags, 0, none),
+HIDDEN_OPERAND(ST0, floating, st0, none),
+HIDDEN_OPERAND(ST0_ST1, floating, st1, ST0),
+HIDDEN_OPERAND(fsw, fsw, 0, none),
+HIDDEN_OPERAND(fcw, fcw, 0, none),
+HIDDEN_OPERAND(mxcsr, mxcsr, 0, none),
+HIDDEN_OPERAND(DS_AX, general, reg_eax, DS),
+HIDDEN_OPERAND(DS_DI, general, reg_edi, DS),
+HIDDEN_OPERAND(int, selector, sreg_cs, flags),
+HIDDEN_EXTRA(CNT, none, 0, none),
+// below those that can only be referenced from above, but not from x86_?.c
+HIDDEN_EXTRA(DX, general, reg_edx, none),
+HIDDEN_EXTRA(GRs1, general, reg_eax, GRs2),
+HIDDEN_EXTRA(GRs2, general, reg_ecx, GRs3),
+HIDDEN_EXTRA(GRs3, general, reg_edx, GRs4),
+HIDDEN_EXTRA(GRs4, general, reg_ebx, GRs5),
+HIDDEN_EXTRA(GRs5, general, reg_ebp, GRs6),
+HIDDEN_EXTRA(GRs6, general, reg_esi, GRs7),
+HIDDEN_EXTRA(GRs7, general, reg_edi, none)
+# else
+HIDDEN_OPERAND(tos, general, reg_rsp, none),
+HIDDEN_OPERAND(AX, general, reg_rax, none),
+HIDDEN_OPERAND(CX, general, reg_rcx, none),
+HIDDEN_OPERAND(SP, general, reg_rsp, none),
+HIDDEN_OPERAND(BP, general, reg_rbp, none),
+HIDDEN_OPERAND(DI, general, reg_rdi, none),
+HIDDEN_OPERAND(DX_AX, general, reg_rax, DX),
+HIDDEN_OPERAND(DX_CX, general, reg_rcx, DX),
+HIDDEN_OPERAND(CX_BX, general, reg_rbx, CX),
+HIDDEN_OPERAND(CX_R11, general, reg_rcx, R11),
+HIDDEN_OPERAND(CS, selector, sreg_cs, none),
+HIDDEN_OPERAND(FS, selector, sreg_fs, none),
+HIDDEN_OPERAND(GS, selector, sreg_gs, none),
+HIDDEN_OPERAND(SS, selector, sreg_ss, none),
+HIDDEN_OPERAND(flags, rflags, 0, none),
+HIDDEN_OPERAND(sflags, flags, 0, none),
+HIDDEN_OPERAND(ST0, floating, st0, none),
+HIDDEN_OPERAND(ST0_ST1, floating, st1, ST0),
+HIDDEN_OPERAND(fsw, fsw, 0, none),
+HIDDEN_OPERAND(fcw, fcw, 0, none),
+HIDDEN_OPERAND(mxcsr, mxcsr, 0, none),
+# define hidop_DS_AX hidop_AX
+# define hidop_DS_DI hidop_DI
+HIDDEN_OPERAND(int, selector, sreg_cs, flags),
+HIDDEN_EXTRA(CNT, none, 0, none),
+// below those that can only be referenced from above, but not from x86_?.c
+HIDDEN_EXTRA(DX, general, reg_rdx, none),
+HIDDEN_EXTRA(R11, general, reg_r11, none)
+# endif
+
+#endif
next prev parent reply other threads:[~2005-11-09 14:27 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-09 13:54 [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jan Beulich
2005-11-09 13:56 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Jan Beulich
2005-11-09 13:57 ` [PATCH 2/39] NLKD - an alternative early ioremap approach Jan Beulich
2005-11-09 13:58 ` [PATCH 3/39] NLKD - early/late CPU up/down notification Jan Beulich
2005-11-09 13:59 ` [PATCH 4/39] NLKD/i386 " Jan Beulich
2005-11-09 14:01 ` [PATCH 5/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:10 ` Andi Kleen
2005-11-14 8:04 ` [discuss] " Jan Beulich
2005-11-14 12:37 ` Andi Kleen
2005-11-09 14:01 ` [PATCH 6/39] NLKD - early panic notification Jan Beulich
2005-11-09 14:02 ` [PATCH 7/39] NLKD - task create/destroy notification Jan Beulich
2005-11-09 14:03 ` [PATCH 8/39] NLKD - rmmod notification Jan Beulich
2005-11-09 14:04 ` [PATCH 9/39] NLKD - hotkey notification Jan Beulich
2005-11-09 14:05 ` [PATCH 10/39] NLKD - console layout change notification Jan Beulich
2005-11-09 14:06 ` [PATCH 11/39] NLKD - time adjustment Jan Beulich
2005-11-09 14:06 ` [PATCH 12/39] NLKD/i386 " Jan Beulich
2005-11-09 19:10 ` George Anzinger
2005-11-10 8:12 ` Jan Beulich
2005-11-11 0:17 ` George Anzinger
2005-11-09 14:08 ` [PATCH 13/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:13 ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Jan Beulich
2005-11-09 14:14 ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Jan Beulich
2005-11-09 14:15 ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Jan Beulich
2005-11-09 14:16 ` [PATCH 21/39] NLKD/x86-64 - core adjustments Jan Beulich
2005-11-10 13:24 ` [PATCH 20/39] NLKD/x86-64 - switch_to() floating point adjustment Andi Kleen
2005-11-10 14:07 ` Jan Beulich
2005-11-10 13:23 ` [PATCH 19/39] NLKD/x86-64 - stack-pointer-invalid markers Andi Kleen
2005-11-10 14:25 ` Jan Beulich
2005-11-10 13:21 ` [PATCH 18/39] NLKD/x86-64 - INT1/INT3 handling changes Andi Kleen
2005-11-10 14:07 ` Jan Beulich
2005-11-10 14:25 ` Andi Kleen
2005-11-10 15:00 ` Jan Beulich
2005-11-11 3:39 ` [discuss] " Andi Kleen
2005-11-10 13:19 ` [PATCH 13/39] NLKD/x86-64 - time adjustment Andi Kleen
2005-11-10 14:23 ` Jan Beulich
2005-11-11 2:12 ` Andi Kleen
2005-11-12 9:22 ` Vojtech Pavlik
2005-11-12 17:21 ` Andi Kleen
2005-11-12 20:44 ` Vojtech Pavlik
2005-11-15 0:38 ` George Anzinger
2005-11-15 1:05 ` [discuss] " Andi Kleen
2005-11-15 7:50 ` Vojtech Pavlik
2005-11-15 8:24 ` Jan Beulich
2005-11-10 14:43 ` Vojtech Pavlik
2005-11-09 14:09 ` [PATCH 14/39] NLKD - kernel trace buffer access Jan Beulich
2005-11-09 14:09 ` [PATCH 15/39] NLKD - early pseudo-fs Jan Beulich
2005-11-09 14:11 ` [PATCH 16/39] NLKD - core adjustments Jan Beulich
2005-11-09 14:11 ` [PATCH 17/39] NLKD/i386 " Jan Beulich
2005-11-09 19:00 ` Adrian Bunk
2005-11-10 8:04 ` Jan Beulich
2005-11-10 10:29 ` Adrian Bunk
2005-11-10 11:52 ` Jan Beulich
2005-11-10 12:36 ` Lars Marowsky-Bree
2005-11-09 14:18 ` [PATCH 22/39] NLKD - core Jan Beulich
2005-11-09 14:19 ` [PATCH 23/39] NLKD/x86 " Jan Beulich
2005-11-09 14:20 ` [PATCH 24/39] NLKD/i386 " Jan Beulich
2005-11-09 14:21 ` [PATCH 25/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:30 ` Andi Kleen
2005-11-09 14:22 ` [PATCH 26/39] NLKD - run time library Jan Beulich
2005-11-09 14:23 ` [PATCH 27/39] NLKD/i386 " Jan Beulich
2005-11-09 14:23 ` [PATCH 28/39] NLKD/x86-64 " Jan Beulich
2005-11-10 13:32 ` Andi Kleen
[not found] ` <437214B7.76F0.0078.0@novell.com>
[not found] ` <4372156A.76F0.0078.0@novell.com>
2005-11-09 14:28 ` Jan Beulich [this message]
[not found] ` <43721600.76F0.0078.0@novell.com>
2005-11-09 14:30 ` [PATCH 38/39] NLKD/i386 - Remote Debug Agent Jan Beulich
2005-11-09 14:31 ` [PATCH 39/39] NLKD/x86-64 " Jan Beulich
2005-11-09 14:29 ` [PATCH 15/39] NLKD - early pseudo-fs Al Viro
2005-11-09 14:37 ` Jan Beulich
2005-11-09 15:00 ` Al Viro
2005-11-09 16:00 ` Jan Beulich
2005-11-10 5:44 ` [PATCH 14/39] NLKD - kernel trace buffer access Keith Owens
2005-11-10 8:02 ` Jan Beulich
2005-11-09 18:51 ` [PATCH 11/39] NLKD - time adjustment George Anzinger
2005-11-09 16:50 ` [PATCH 6/39] NLKD - early panic notification Greg KH
2005-11-09 16:45 ` [PATCH 3/39] NLKD - early/late CPU up/down notification Greg KH
2005-11-09 17:09 ` Jan Beulich
2005-11-09 17:19 ` Greg KH
2005-11-10 7:41 ` Jan Beulich
2005-11-10 20:59 ` Sam Ravnborg
2005-11-11 7:52 ` Jan Beulich
2005-11-12 20:52 ` Randy.Dunlap
2005-11-10 23:01 ` Greg KH
2005-11-11 10:06 ` [PATCH 2/39] NLKD - an alternative early ioremap approach Pavel Machek
2005-11-11 10:19 ` Jan Beulich
2005-11-09 16:50 ` [PATCH 1/39] NLKD - an alternative kallsyms approach Randy.Dunlap
2005-11-09 16:57 ` Greg KH
2005-11-09 17:20 ` Jan Beulich
2005-11-09 16:59 ` [PATCH 0/39] NLKD - Novell Linux Kernel Debugger Jeff Garzik
2005-11-09 17:06 ` Randy.Dunlap
2005-11-09 17:14 ` Jan Beulich
2005-11-09 17:56 ` Alan Cox
2005-11-09 18:05 ` Greg KH
2005-11-09 18:54 ` Paul Jackson
2005-11-10 12:41 ` Christoph Hellwig
2005-11-13 1:09 ` Andi Kleen
2005-11-13 2:53 ` jmerkey
2005-11-13 3:44 ` Andi Kleen
2005-11-13 3:26 ` Jeff V. Merkey
2005-11-13 3:32 ` Jeff V. Merkey
2005-11-09 17:53 ` Alan Cox
2005-11-09 16:25 ` Jeffrey V. Merkey
2005-11-10 14:48 ` Mark Lord
2005-11-10 15:28 ` Tom Rini
2005-11-10 16:37 ` Alan Cox
2005-11-13 1:11 ` Andi Kleen
[not found] ` <437214E4.76F0.0078.0@novell.com>
[not found] ` <4372153C.76F0.0078.0@novell.com>
2005-11-10 13:33 ` [PATCH 32/39] NLKD/x86-64 - Core Debug Engine Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4372158B.76F0.0078.0@novell.com \
--to=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.