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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox