diff options
author | David Woodhouse <dwmw2@infradead.org> | 2014-01-22 15:08:21 +0000 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2014-01-22 15:08:21 +0000 |
commit | b33c2ef215707b5a2d58146933d1b0ddefc185b9 (patch) | |
tree | b23ba9e6ee6cca8e91782e368c78901813f12aa5 /llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp | |
parent | 2ef8d9c05cb4133383fda0c8b85f1443b873a758 (diff) | |
download | bcm5719-llvm-b33c2ef215707b5a2d58146933d1b0ddefc185b9.tar.gz bcm5719-llvm-b33c2ef215707b5a2d58146933d1b0ddefc185b9.zip |
[x86] Allow address-size overrides for STOS[BWLQ] (PR9385)
llvm-svn: 199804
Diffstat (limited to 'llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp index ac72fce032f..0f1ab6d473a 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp @@ -1330,6 +1330,16 @@ EncodeInstruction(const MCInst &MI, raw_ostream &OS, EmitByte(BaseOpcode, CurByte, OS); break; } + case X86II::RawFrmDst: { + unsigned siReg = MI.getOperand(0).getReg(); + // Emit OpSize prefix as needed. + if ((!is32BitMode() && siReg == X86::EDI) || + (is32BitMode() && siReg == X86::DI)) + EmitByte(0x67, CurByte, OS); + ++CurOp; // Consume operand. + EmitByte(BaseOpcode, CurByte, OS); + break; + } case X86II::RawFrm: EmitByte(BaseOpcode, CurByte, OS); break; |