diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86CodeEmitter.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86CodeEmitter.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86CodeEmitter.cpp b/llvm/lib/Target/X86/X86CodeEmitter.cpp index a28d0ee86db..f9de6febb7f 100644 --- a/llvm/lib/Target/X86/X86CodeEmitter.cpp +++ b/llvm/lib/Target/X86/X86CodeEmitter.cpp @@ -574,8 +574,9 @@ void Emitter::emitInstruction(MachineInstr &MI) { case X86II::MRMSrcMem: MCE.emitByte(BaseOpcode); - emitMemModRMByte(MI, MI.getNumOperands()-4, - getX86RegNum(MI.getOperand(0).getReg())); + emitMemModRMByte(MI, 1, getX86RegNum(MI.getOperand(0).getReg())); + if (MI.getNumOperands() == 2+4) + emitConstant(MI.getOperand(5).getImmedValue(), sizeOfPtr(Desc)); break; case X86II::MRMS0r: case X86II::MRMS1r: |

