[PATCH] D17093: [X86] Add address space for SS segment
Michael LeMay via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 22 17:21:03 PDT 2016
mlemay-intel updated this revision to Diff 54752.
mlemay-intel added a comment.
Added comment to make it clear that a related piece of code was not overlooked.
Streamlined test and made it more precise.
http://reviews.llvm.org/D17093
Files:
lib/Target/X86/X86ISelDAGToDAG.cpp
test/CodeGen/X86/movss.ll
Index: test/CodeGen/X86/movss.ll
===================================================================
--- /dev/null
+++ test/CodeGen/X86/movss.ll
@@ -0,0 +1,8 @@
+; RUN: llc < %s -march=x86 | FileCheck %s
+
+define i32 @foo(i32 addrspace(258)* %p) {
+entry:
+; CHECK: movl %ss:
+ %tmp = load i32, i32 addrspace(258)* %p
+ ret i32 %tmp
+}
Index: lib/Target/X86/X86ISelDAGToDAG.cpp
===================================================================
--- lib/Target/X86/X86ISelDAGToDAG.cpp
+++ lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -727,6 +727,8 @@
case 257:
AM.Segment = CurDAG->getRegister(X86::FS, MVT::i16);
return false;
+ // Address space 258 is not handled here, because it is not used to
+ // address TLS areas.
}
return true;
@@ -1424,11 +1426,13 @@
return false;
X86ISelAddressMode AM;
unsigned AddrSpace = Mgs->getPointerInfo().getAddrSpace();
- // AddrSpace 256 -> GS, 257 -> FS.
+ // AddrSpace 256 -> GS, 257 -> FS, 258 -> SS.
if (AddrSpace == 256)
AM.Segment = CurDAG->getRegister(X86::GS, MVT::i16);
if (AddrSpace == 257)
AM.Segment = CurDAG->getRegister(X86::FS, MVT::i16);
+ if (AddrSpace == 258)
+ AM.Segment = CurDAG->getRegister(X86::SS, MVT::i16);
SDLoc DL(N);
Base = Mgs->getBasePtr();
@@ -1473,11 +1477,13 @@
Parent->getOpcode() != X86ISD::EH_SJLJ_LONGJMP) { // longjmp
unsigned AddrSpace =
cast<MemSDNode>(Parent)->getPointerInfo().getAddrSpace();
- // AddrSpace 256 -> GS, 257 -> FS.
+ // AddrSpace 256 -> GS, 257 -> FS, 258 -> SS.
if (AddrSpace == 256)
AM.Segment = CurDAG->getRegister(X86::GS, MVT::i16);
if (AddrSpace == 257)
AM.Segment = CurDAG->getRegister(X86::FS, MVT::i16);
+ if (AddrSpace == 258)
+ AM.Segment = CurDAG->getRegister(X86::SS, MVT::i16);
}
if (matchAddress(N, AM))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17093.54752.patch
Type: text/x-patch
Size: 1864 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160423/4ace7dda/attachment.bin>
More information about the llvm-commits
mailing list