diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-02-07 08:53:49 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-02-07 08:53:49 +0000 |
commit | a20a7736541049c60fa4509d91f3a8539f62ba9c (patch) | |
tree | 99f5562a5fbef0ba270965972960be431d582ded /llvm/lib/Target/X86/X86Subtarget.cpp | |
parent | 1bc1cae318d59735d3af99515d502f26bb3000f2 (diff) | |
download | bcm5719-llvm-a20a7736541049c60fa4509d91f3a8539f62ba9c.tar.gz bcm5719-llvm-a20a7736541049c60fa4509d91f3a8539f62ba9c.zip |
Fix a x86-64 codegen deficiency. Allow gv + offset when using rip addressing mode.
Before:
_main:
subq $8, %rsp
leaq _X(%rip), %rax
movsd 8(%rax), %xmm1
movss _X(%rip), %xmm0
call _t
xorl %ecx, %ecx
movl %ecx, %eax
addq $8, %rsp
ret
Now:
_main:
subq $8, %rsp
movsd _X+8(%rip), %xmm1
movss _X(%rip), %xmm0
call _t
xorl %ecx, %ecx
movl %ecx, %eax
addq $8, %rsp
ret
Notice there is another idiotic codegen issue that needs to be fixed asap:
xorl %ecx, %ecx
movl %ecx, %eax
llvm-svn: 46850
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.cpp | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp index 35a83e4ef78..abd756c45c4 100644 --- a/llvm/lib/Target/X86/X86Subtarget.cpp +++ b/llvm/lib/Target/X86/X86Subtarget.cpp @@ -228,7 +228,6 @@ X86Subtarget::X86Subtarget(const Module &M, const std::string &FS, bool is64Bit) // FIXME: this is a known good value for Yonah. How about others? , MaxInlineSizeThreshold(128) , Is64Bit(is64Bit) - , HasLow4GUserAddress(true) , TargetType(isELF) { // Default to ELF unless otherwise specified. // Determine default and user specified characteristics @@ -300,9 +299,6 @@ X86Subtarget::X86Subtarget(const Module &M, const std::string &FS, bool is64Bit) ? X86Subtarget::Intel : X86Subtarget::ATT; } - if (TargetType == isDarwin && Is64Bit) - HasLow4GUserAddress = false; - if (TargetType == isDarwin || TargetType == isCygwin || TargetType == isMingw || |