diff options
author | Tim Northover <tnorthover@apple.com> | 2013-05-31 09:57:13 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2013-05-31 09:57:13 +0000 |
commit | 43887bf3e62daab1c8571be8a73741c9275f866a (patch) | |
tree | 2eda3f1064130d09963fff6d35c9671baeb3ff9c /lib/Target/X86/X86CodeEmitter.cpp | |
parent | 5434f123e9c3b31cc7783ab06be0358026212cd2 (diff) | |
download | llvm-43887bf3e62daab1c8571be8a73741c9275f866a.tar.gz llvm-43887bf3e62daab1c8571be8a73741c9275f866a.tar.bz2 llvm-43887bf3e62daab1c8571be8a73741c9275f866a.tar.xz |
X86: change MOV64ri64i32 into MOV32ri64
The MOV64ri64i32 instruction required hacky MCInst lowering because it was
allocated as setting a GR64, but the eventual instruction ("movl") only set a
GR32. This converts it into a so-called "MOV32ri64" which still accepts a
(appropriate) 64-bit immediate but defines a GR32. This is then converted to
the full GR64 by a SUBREG_TO_REG operation, thus keeping everyone happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182991 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86CodeEmitter.cpp')
-rw-r--r-- | lib/Target/X86/X86CodeEmitter.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp index 8fea6edc8d..c3734a2ee3 100644 --- a/lib/Target/X86/X86CodeEmitter.cpp +++ b/lib/Target/X86/X86CodeEmitter.cpp @@ -1270,7 +1270,7 @@ void Emitter<CodeEmitter>::emitInstruction(MachineInstr &MI, unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : (IsPIC ? X86::reloc_picrel_word : X86::reloc_absolute_word); - if (Opcode == X86::MOV64ri64i32) + if (Opcode == X86::MOV32ri64) rt = X86::reloc_absolute_word; // FIXME: add X86II flag? // This should not occur on Darwin for relocatable objects. if (Opcode == X86::MOV64ri) |