This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH -tip 3/6 V4.1] x86: instruction decorder API
- From: Masami Hiramatsu <mhiramat at redhat dot com>
- To: Jim Keniston <jkenisto at us dot ibm dot com>
- Cc: "H. Peter Anvin" <hpa at zytor dot com>, Ingo Molnar <mingo at elte dot hu>, Ananth N Mavinakayanahalli <ananth at in dot ibm dot com>, Andi Kleen <andi at firstfloor dot org>, kvm at vger dot kernel dot org, Steven Rostedt <rostedt at goodmis dot org>, Frederic Weisbecker <fweisbec at gmail dot com>, Andrew Morton <akpm at linux-foundation dot org>, Arnaldo Carvalho de Melo <acme at redhat dot com>, systemtap-ml <systemtap at sources dot redhat dot com>, LKML <linux-kernel at vger dot kernel dot org>, Vegard Nossum <vegard dot nossum at gmail dot com>, Avi Kivity <avi at redhat dot com>, Roland McGrath <roland at redhat dot com>
- Date: Thu, 23 Apr 2009 23:53:28 -0400
- Subject: Re: [PATCH -tip 3/6 V4.1] x86: instruction decorder API
- References: <49D4F4E6.6060401@redhat.com> <49D69BCA.8060506@redhat.com> <49D69F39.4010101@zytor.com> <49D6ABD1.7040704@redhat.com> <1239058135.5212.43.camel@localhost.localdomain> <49DA8857.8030607@zytor.com> <49E7BFDC.8040305@redhat.com> <1239926776.5883.17.camel@dyn9047018094.beaverton.ibm.com> <49E7C87E.8000202@zytor.com> <49EE6235.20706@redhat.com> <1240447635.3713.21.camel@dyn9047018094.beaverton.ibm.com> <49F0A570.8000908@redhat.com> <1240525367.3461.10.camel@dyn9047018094.beaverton.ibm.com>
Jim Keniston wrote:
> On Thu, 2009-04-23 at 13:29 -0400, Masami Hiramatsu wrote:
> ...
>> Hmm, maybe, parser can handle "(extra_info)" as a solid keyword.
>> so let's define actual format.
>>
>> <opcode maps>
>> Table: table-name
>> Referrer: escamed-name
>> opcode: mnemonic|Grp [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
This should be:
opcode: mnemonic|GrpXXX ...
>> opcode: ESC # escaped-name
This should be
opcode: escape # escaped-name
because distinguishing from x87 ESC ops.
>>
>> <group maps>
>> reg: mnemonic ...
>
> For some instruction groups -- e.g., Groups 12, 13, 14 -- the
> instruction prefix (66, f2, f3) and the reg field both affect the
> instruction type. And for some x87 instructions, the value of the modrm
> byte's rm field also affects the instruction type. (For others, rm just
> selects among the st(0)..st(7) registers, as one might expect.)
Sure, I updated the format. There are some special cases,
(1) instructions which are switched by 64bit mode
40: INC eAX (i64) | REX (o64)
(2) instructions which are switched by the last prefix
13: movlps Mq,Vq | movlpd Mq,Vq (66)
(3) group instructions which are switched by modr/m
0: SGDT Ms | VMCALL (11B),(001) | VMLAUNCH (11B),(010) | VMRESUME (11B),(011) | VMXOFF (11B),(100)
>
> Of course, that's all about floating-point instructions, which are of
> more interest to uprobes than kprobes.
Hmm, x87 instructions may need to have some special format...
Thank you,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com