diff options
author | Derek Schuff <dschuff@chromium.org> | 2012-11-13 18:04:43 -0800 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2012-11-13 18:04:43 -0800 |
commit | 5bf33de8c8e5cb8dff4f29919f434f3b453007af (patch) | |
tree | 2025e3de9ff733f328d0e539f56ddb5e42c5f2c5 /lib/Target/ARM/ARMFastISel.cpp | |
parent | c58bc8e4e567fa86383d3e5da8613f49e39104b6 (diff) | |
parent | be02a90de17f857ba65bbd8a11653ca1bad30adc (diff) |
Merge commit 'be02a90de17f857ba65bbd8a11653ca1bad30adc'
Conflicts:
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrFormats.td
Diffstat (limited to 'lib/Target/ARM/ARMFastISel.cpp')
-rw-r--r-- | lib/Target/ARM/ARMFastISel.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index 848e1ab761..033540ae7d 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -619,7 +619,10 @@ unsigned ARMFastISel::ARMMaterializeGV(const GlobalValue *GV, EVT VT) { Reloc::Model RelocM = TM.getRelocationModel(); bool IsIndirect = Subtarget->GVIsIndirectSymbol(GV, RelocM); - unsigned DestReg = createResultReg(TLI.getRegClassFor(VT)); + const TargetRegisterClass *RC = isThumb2 ? + (const TargetRegisterClass*)&ARM::rGPRRegClass : + (const TargetRegisterClass*)&ARM::GPRRegClass; + unsigned DestReg = createResultReg(RC); // Use movw+movt when possible, it avoids constant pool entries. // Darwin targets don't support movt with Reloc::Static, see |