Re: [PATCH -tip 3/6 V4.1] x86: instruction decorder API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux