fix fastisel to handle GS and FS relative pointers. Patch by

Nelson Elhage!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106031 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-06-15 19:08:40 +00:00
parent 827b2106fe
commit 868ee9460c
2 changed files with 11 additions and 0 deletions

View File

@ -349,6 +349,11 @@ bool X86FastISel::X86SelectAddress(const Value *V, X86AddressMode &AM) {
U = C;
}
if (const PointerType *Ty = dyn_cast<PointerType>(V->getType()))
if (Ty->getAddressSpace() > 255)
// Fast instruction selection doesn't support pointers through %fs or %gs
return false;
switch (Opcode) {
default: break;
case Instruction::BitCast:

View File

@ -0,0 +1,6 @@
; RUN: llc -fast-isel -march=x86 < %s | grep %fs:
define i32 @test1(i32 addrspace(257)* %arg) nounwind {
%tmp = load i32 addrspace(257)* %arg
ret i32 %tmp
}