diff options
Diffstat (limited to 'src/common/x64/emitter.cpp')
| -rw-r--r-- | src/common/x64/emitter.cpp | 4 |
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 | |||
| 225 | // do we need any VEX fields that only appear in the three-byte form? | 225 | // do we need any VEX fields that only appear in the three-byte form? |
| 226 | if (X == 1 && B == 1 && W == 0 && mmmmm == 1) | 226 | if (X == 1 && B == 1 && W == 0 && mmmmm == 1) |
| 227 | { | 227 | { |
| 228 | u8 RvvvvLpp = (R << 7) | (vvvv << 3) | (L << 1) | pp; | 228 | u8 RvvvvLpp = (R << 7) | (vvvv << 3) | (L << 2) | pp; |
| 229 | emit->Write8(0xC5); | 229 | emit->Write8(0xC5); |
| 230 | emit->Write8(RvvvvLpp); | 230 | emit->Write8(RvvvvLpp); |
| 231 | } | 231 | } |
| 232 | else | 232 | else |
| 233 | { | 233 | { |
| 234 | u8 RXBmmmmm = (R << 7) | (X << 6) | (B << 5) | mmmmm; | 234 | u8 RXBmmmmm = (R << 7) | (X << 6) | (B << 5) | mmmmm; |
| 235 | u8 WvvvvLpp = (W << 7) | (vvvv << 3) | (L << 1) | pp; | 235 | u8 WvvvvLpp = (W << 7) | (vvvv << 3) | (L << 2) | pp; |
| 236 | emit->Write8(0xC4); | 236 | emit->Write8(0xC4); |
| 237 | emit->Write8(RXBmmmmm); | 237 | emit->Write8(RXBmmmmm); |
| 238 | emit->Write8(WvvvvLpp); | 238 | emit->Write8(WvvvvLpp); |