diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-01 03:27:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-01 03:27:19 +0000 |
commit | 35c28eca627cd9dc2dd3ee3393074080103be456 (patch) | |
tree | b8cb01c6d6a6d2e72c3b35ee4a00cca6bd929236 /lib/Target/X86/X86InstrBuilder.h | |
parent | 2578ba26e72e36dde64be0f52a2788480aad3378 (diff) | |
download | llvm-35c28eca627cd9dc2dd3ee3393074080103be456.tar.gz llvm-35c28eca627cd9dc2dd3ee3393074080103be456.tar.bz2 llvm-35c28eca627cd9dc2dd3ee3393074080103be456.tar.xz |
Fix some fast-isel problems selecting global variable addressing in
pic mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74582 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrBuilder.h')
-rw-r--r-- | lib/Target/X86/X86InstrBuilder.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Target/X86/X86InstrBuilder.h b/lib/Target/X86/X86InstrBuilder.h index b50dd65a29..6359542819 100644 --- a/lib/Target/X86/X86InstrBuilder.h +++ b/lib/Target/X86/X86InstrBuilder.h @@ -49,8 +49,10 @@ struct X86AddressMode { unsigned IndexReg; unsigned Disp; GlobalValue *GV; + unsigned GVOpFlags; - X86AddressMode() : BaseType(RegBase), Scale(1), IndexReg(0), Disp(0), GV(0) { + X86AddressMode() + : BaseType(RegBase), Scale(1), IndexReg(0), Disp(0), GV(0), GVOpFlags(0) { Base.Reg = 0; } }; @@ -113,7 +115,7 @@ inline const MachineInstrBuilder &addLeaAddress(const MachineInstrBuilder &MIB, assert (0); MIB.addImm(AM.Scale).addReg(AM.IndexReg); if (AM.GV) - return MIB.addGlobalAddress(AM.GV, AM.Disp); + return MIB.addGlobalAddress(AM.GV, AM.Disp, AM.GVOpFlags); else return MIB.addImm(AM.Disp); } |