From 0b79cfee1518b67f1da5cb95a44bb01fa4fad6c6 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 22 Sep 2010 00:11:31 +0000 Subject: [PATCH] revert r114386 now that address modes work correctly, we get a nice call through gs-relative memory now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114510 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86ISelDAGToDAG.cpp | 4 ---- test/CodeGen/X86/movgs.ll | 8 +++----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp index de1f014d83e..5c133f12e44 100644 --- a/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -403,10 +403,6 @@ static bool isCalleeLoad(SDValue Callee, SDValue &Chain, bool HasCallSeq) { LD->getExtensionType() != ISD::NON_EXTLOAD) return false; - // FIXME: Calls can't fold loads through segment registers yet. - if (LD->getPointerInfo().getAddrSpace() > 255) - return false; - // Now let's find the callseq_start. while (HasCallSeq && Chain.getOpcode() != ISD::CALLSEQ_START) { if (!Chain.hasOneUse()) diff --git a/test/CodeGen/X86/movgs.ll b/test/CodeGen/X86/movgs.ll index ed201f36e92..3a249470d46 100644 --- a/test/CodeGen/X86/movgs.ll +++ b/test/CodeGen/X86/movgs.ll @@ -26,10 +26,8 @@ entry: ; rdar://8453210 ; X32: test2: -; X32: movl %gs:(%eax), %eax -; X32: movl %eax, (%esp) -; X32: call *%eax +; X32: movl 16(%esp), %eax +; X32: call *%gs:(%eax) ; X64: test2: -; X64: movq %gs:(%rdi), %rax -; X64: callq *%rax +; X64: callq *%gs:(%rdi)