diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2010-01-13 08:01:32 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2010-01-13 08:01:32 +0000 |
| commit | ceb5a4e8f653e72f08c0fe9f8a875c0780078e05 (patch) | |
| tree | bccfeddd557c5e41f7a5fd6d8864cdecc37cd8bd /llvm/lib | |
| parent | 957b8beaaa1af39b91e123e7796d5d013df4520e (diff) | |
| download | bcm5719-llvm-ceb5a4e8f653e72f08c0fe9f8a875c0780078e05.tar.gz bcm5719-llvm-ceb5a4e8f653e72f08c0fe9f8a875c0780078e05.zip | |
For now, avoid issuing extract_subreg to reuse lower 8-bit, it's not safe in 32-bit.
llvm-svn: 93307
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index a1bacbf0e64..7b39fb311cb 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -724,6 +724,10 @@ X86InstrInfo::isCoalescableExtInstr(const MachineInstr &MI, case X86::MOVZX32rr8: case X86::MOVSX64rr8: case X86::MOVZX64rr8: + if (!TM.getSubtarget<X86Subtarget>().is64Bit()) + // It's not always legal to reference the low 8-bit of the larger + // register in 32-bit mode. + return false; case X86::MOVSX32rr16: case X86::MOVZX32rr16: case X86::MOVSX64rr16: |

