summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2016-02-28 03:12:57 -0800
committerYuri Kunde Schlesner <yuriks@yuriks.net>2016-02-28 03:12:57 -0800
commitddcf2ef32a9728d7d0b934a0973d728f084c2d74 (patch)
treee79ac5759a2668bcaef375161c5a861e05ac47e7
parent2f56125f12ed2a9a18226f968b44d0e0a36bdd91 (diff)
parentf73c39d5730bb7f3403c4608250b92067f0c2f2f (diff)
Merge pull request #1427 from MerryMage/emit-lbit
x64 Emitter: Fix L bit in VEX prefix
-rw-r--r--src/common/x64/emitter.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/x64/emitter.cpp b/src/common/x64/emitter.cpp
index 939df210e..1dcf2416c 100644
--- a/src/common/x64/emitter.cpp
+++ b/src/common/x64/emitter.cpp
@@ -225,14 +225,14 @@ void OpArg::WriteVex(XEmitter* emit, X64Reg regOp1, X64Reg regOp2, int L, int pp
// do we need any VEX fields that only appear in the three-byte form?
if (X == 1 && B == 1 && W == 0 && mmmmm == 1)
{
- u8 RvvvvLpp = (R << 7) | (vvvv << 3) | (L << 1) | pp;
+ u8 RvvvvLpp = (R << 7) | (vvvv << 3) | (L << 2) | pp;
emit->Write8(0xC5);
emit->Write8(RvvvvLpp);
}
else
{
u8 RXBmmmmm = (R << 7) | (X << 6) | (B << 5) | mmmmm;
- u8 WvvvvLpp = (W << 7) | (vvvv << 3) | (L << 1) | pp;
+ u8 WvvvvLpp = (W << 7) | (vvvv << 3) | (L << 2) | pp;
emit->Write8(0xC4);
emit->Write8(RXBmmmmm);
emit->Write8(WvvvvLpp);