git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fd60754
)
KVM: x86 emulator: add group 7 decoding
author
Avi Kivity
<avi@qumranet.com>
Fri, 18 Jan 2008 11:36:50 +0000
(13:36 +0200)
committer
Avi Kivity
<avi@qumranet.com>
Sun, 27 Apr 2008 08:53:15 +0000
(11:53 +0300)
This adds group decoding for opcode 0x0f 0x01 (group 7).
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/x86_emulate.c
patch
|
blob
|
history
diff --git
a/arch/x86/kvm/x86_emulate.c
b/arch/x86/kvm/x86_emulate.c
index
7310368
..
ef6de16
100644
(file)
--- a/
arch/x86/kvm/x86_emulate.c
+++ b/
arch/x86/kvm/x86_emulate.c
@@
-70,7
+70,7
@@
#define GroupMask 0xff /* Group number stored in bits 0:7 */
enum {
#define GroupMask 0xff /* Group number stored in bits 0:7 */
enum {
- Group1A, Group3_Byte, Group3, Group4, Group5,
+ Group1A, Group3_Byte, Group3, Group4, Group5,
Group7,
};
static u16 opcode_table[256] = {
};
static u16 opcode_table[256] = {
@@
-179,7
+179,7
@@
static u16 opcode_table[256] = {
static u16 twobyte_table[256] = {
/* 0x00 - 0x0F */
static u16 twobyte_table[256] = {
/* 0x00 - 0x0F */
- 0,
SrcMem | ModRM | DstReg
, 0, 0, 0, 0, ImplicitOps, 0,
+ 0,
Group | GroupDual | Group7
, 0, 0, 0, 0, ImplicitOps, 0,
ImplicitOps, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0,
/* 0x10 - 0x1F */
0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 0, 0, 0, 0, 0,
ImplicitOps, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0,
/* 0x10 - 0x1F */
0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 0, 0, 0, 0, 0,
@@
-252,9
+252,14
@@
static u16 group_table[] = {
[Group5*8] =
DstMem | SrcNone | ModRM, DstMem | SrcNone | ModRM, 0, 0,
SrcMem | ModRM, 0, SrcMem | ModRM | Stack, 0,
[Group5*8] =
DstMem | SrcNone | ModRM, DstMem | SrcNone | ModRM, 0, 0,
SrcMem | ModRM, 0, SrcMem | ModRM | Stack, 0,
+ [Group7*8] =
+ 0, 0, ModRM | SrcMem, ModRM | SrcMem,
+ SrcNone | ModRM | DstMem, 0, SrcMem | ModRM, SrcMem | ModRM | ByteOp,
};
static u16 group2_table[] = {
};
static u16 group2_table[] = {
+ [Group7*8] =
+ SrcNone | ModRM, 0, 0, 0, SrcNone | ModRM | DstMem, 0, SrcMem | ModRM, 0,
};
/* EFLAGS bit definitions. */
};
/* EFLAGS bit definitions. */