Implement the xgetbv opcode.

This solves a FIXME in core.cpuid.
This commit is contained in:
kai
2012-09-14 21:10:39 +02:00
parent ebf5d8b92e
commit 7d1ec52c68
3 changed files with 7 additions and 1 deletions

View File

@@ -277,6 +277,7 @@ namespace AsmParserx8632
Op_scasX,
Op_stos,
Op_stosX,
Op_xgetbv,
Op_xlat,
N_AsmOpInfo,
Op_Align,
@@ -522,6 +523,7 @@ namespace AsmParserx8632
/* Op_scasX */ { 0, 0, 0, 0, Clb_DI|Clb_Flags },
/* Op_stos */ { mem, 0, 0, 1, Clb_DI },
/* Op_stosX */ { 0, 0, 0, 0, Clb_DI },
/* Op_xgetbv */ { 0, 0, 0, 0, Clb_SizeDXAX },
/* Op_xlat */ { mem, 0, 0, 0, Clb_SizeAX }
/// * Op_arpl */ { D|mr, reg }, // 16 only -> DstSrc
@@ -1144,6 +1146,7 @@ namespace AsmParserx8632
{ "wrmsr", Op_0 },
{ "xadd", Op_UpdUpdF },
{ "xchg", Op_UpdUpd },
{ "xgetbv", Op_xgetbv },
{ "xlat", Op_xlat },
{ "xlatb", Op_0_AX },
{ "xor", Op_DstSrcF },

View File

@@ -354,6 +354,7 @@ namespace AsmParserx8664
Op_scasX,
Op_stos,
Op_stosX,
Op_xgetbv,
Op_xlat,
N_AsmOpInfo,
Op_Align,
@@ -605,6 +606,7 @@ namespace AsmParserx8664
/* Op_scasX */ { 0, 0, 0, 0, Clb_DI|Clb_Flags },
/* Op_stos */ { mem, 0, 0, 1, Clb_DI },
/* Op_stosX */ { 0, 0, 0, 0, Clb_DI },
/* Op_xgetbv */ { 0, 0, 0, 0, Clb_SizeRDXRAX },
/* Op_xlat */ { mem, 0, 0, 0, Clb_SizeAX }
/// * Op_arpl */ { D|mr, reg }, // 16 only -> DstSrc
@@ -1256,6 +1258,7 @@ namespace AsmParserx8664
{ "wrmsr", Op_0 },
{ "xadd", Op_UpdUpdF },
{ "xchg", Op_UpdUpd },
{ "xgetbv", Op_xgetbv },
{ "xlat", Op_xlat },
{ "xlatb", Op_0_AX },
{ "xor", Op_DstSrcF },