{ RCR, "rcr%" },
{ RET, "ret" },
{ RETF, "retf" },
+ { RDMSR, "rdmsr" },
{ ROL, "rol%" },
{ ROR, "ror%" },
{ SAHF, "sahf" },
{ VERW, "verw" },
{ WAIT, "wait" },
{ WBINVD, "wbinvd" },
+ { WRMSR, "wrmsr" },
{ XADD, "xadd" },
{ XCHG, "xchg%" },
{ XLAT, "xlat" },
return;
}
}
+ if (a->opcode == RDMSR) {
+ ack_printf(".data1 0x0f, 0x32\n");
+ return;
+ }
+ if (a->opcode == WRMSR) {
+ ack_printf(".data1 0x0f, 0x30\n");
+ return;
+ }
/* we are translating from GNU */
if (a->args && a->args->operator == ','
/* don't swap ljmp prefixed with segment */
{ "rcrw", RCR, OWORD },
{ "ret", RET, JUMP },
{ "retf", RETF, JUMP },
+ { "rdmsr", RDMSR, WORD },
{ "rolb", ROL, BYTE },
{ "roll", ROL, WORD },
{ "rolw", ROL, OWORD },
{ "verw", VERW, WORD },
{ "wait", WAIT, WORD },
{ "wbinvd", WBINVD, WORD },
+ { "wrmsr", WRMSR, WORD },
{ "xadd", XADD, WORD },
{ "xchgb", XCHG, BYTE },
{ "xchgl", XCHG, WORD },