summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-09-02 22:43:39 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2010-09-02 22:43:39 +0000
commit02a05a6a89fb8e7220add5e7ad785d9c4031c3a9 (patch)
tree6dd6710791ede0338e2fa626619100d8e992c443
parent0744bfa2a8552850d6bd4ca557be157051eee9bb (diff)
downloadbcm5719-llvm-02a05a6a89fb8e7220add5e7ad785d9c4031c3a9.tar.gz
bcm5719-llvm-02a05a6a89fb8e7220add5e7ad785d9c4031c3a9.zip
Move insertps mask decoding to header file
llvm-svn: 112896
-rw-r--r--llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp28
-rw-r--r--llvm/lib/Target/X86/X86ShuffleDecode.h24
2 files changed, 24 insertions, 28 deletions
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp b/llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp
index 61f50652111..da9d5a3579e 100644
--- a/llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp
+++ b/llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp
@@ -20,34 +20,6 @@
using namespace llvm;
//===----------------------------------------------------------------------===//
-// Vector Mask Decoding for non-shuffles
-//===----------------------------------------------------------------------===//
-
-static void DecodeINSERTPSMask(unsigned Imm,
- SmallVectorImpl<unsigned> &ShuffleMask) {
- // Defaults the copying the dest value.
- ShuffleMask.push_back(0);
- ShuffleMask.push_back(1);
- ShuffleMask.push_back(2);
- ShuffleMask.push_back(3);
-
- // Decode the immediate.
- unsigned ZMask = Imm & 15;
- unsigned CountD = (Imm >> 4) & 3;
- unsigned CountS = (Imm >> 6) & 3;
-
- // CountS selects which input element to use.
- unsigned InVal = 4+CountS;
- // CountD specifies which element of destination to update.
- ShuffleMask[CountD] = InVal;
- // ZMask zaps values, potentially overriding the CountD elt.
- if (ZMask & 1) ShuffleMask[0] = SM_SentinelZero;
- if (ZMask & 2) ShuffleMask[1] = SM_SentinelZero;
- if (ZMask & 4) ShuffleMask[2] = SM_SentinelZero;
- if (ZMask & 8) ShuffleMask[3] = SM_SentinelZero;
-}
-
-//===----------------------------------------------------------------------===//
// Top Level Entrypoint
//===----------------------------------------------------------------------===//
diff --git a/llvm/lib/Target/X86/X86ShuffleDecode.h b/llvm/lib/Target/X86/X86ShuffleDecode.h
index 818f7ca74b6..df040520bc8 100644
--- a/llvm/lib/Target/X86/X86ShuffleDecode.h
+++ b/llvm/lib/Target/X86/X86ShuffleDecode.h
@@ -26,6 +26,30 @@ enum {
SM_SentinelZero = ~0U
};
+static inline
+void DecodeINSERTPSMask(unsigned Imm, SmallVectorImpl<unsigned> &ShuffleMask) {
+ // Defaults the copying the dest value.
+ ShuffleMask.push_back(0);
+ ShuffleMask.push_back(1);
+ ShuffleMask.push_back(2);
+ ShuffleMask.push_back(3);
+
+ // Decode the immediate.
+ unsigned ZMask = Imm & 15;
+ unsigned CountD = (Imm >> 4) & 3;
+ unsigned CountS = (Imm >> 6) & 3;
+
+ // CountS selects which input element to use.
+ unsigned InVal = 4+CountS;
+ // CountD specifies which element of destination to update.
+ ShuffleMask[CountD] = InVal;
+ // ZMask zaps values, potentially overriding the CountD elt.
+ if (ZMask & 1) ShuffleMask[0] = SM_SentinelZero;
+ if (ZMask & 2) ShuffleMask[1] = SM_SentinelZero;
+ if (ZMask & 4) ShuffleMask[2] = SM_SentinelZero;
+ if (ZMask & 8) ShuffleMask[3] = SM_SentinelZero;
+}
+
// <3,1> or <6,7,2,3>
static void DecodeMOVHLPSMask(unsigned NElts,
SmallVectorImpl<unsigned> &ShuffleMask) {
OpenPOWER on IntegriCloud