summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/llvm/storage.h
diff options
context:
space:
mode:
authorZack Rusin <zack@tungstengraphics.com>2007-10-29 10:59:24 -0400
committerZack Rusin <zack@tungstengraphics.com>2007-10-30 05:15:05 -0400
commitb0f3b5910ebd0737600ab7b1fdc135d74f2617f4 (patch)
tree2e4ebcc7f6d13ea151aac92cd3f19741a0bf0845 /src/mesa/pipe/llvm/storage.h
parent8b2f997af572dd3aca00c4888adf2b0a60656331 (diff)
Enable immediates in TGSI and work with them in LLVM code.
Enables immediates by default in the TGSI translation code and adds code handling it in llvm tgsi translation.
Diffstat (limited to 'src/mesa/pipe/llvm/storage.h')
-rw-r--r--src/mesa/pipe/llvm/storage.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/pipe/llvm/storage.h b/src/mesa/pipe/llvm/storage.h
index ac3e4d5af9..f9a82ef857 100644
--- a/src/mesa/pipe/llvm/storage.h
+++ b/src/mesa/pipe/llvm/storage.h
@@ -65,6 +65,7 @@ public:
llvm::Value *inputElement(int idx, llvm::Value *indIdx =0);
llvm::Value *constElement(int idx, llvm::Value *indIdx =0);
llvm::Value *outputElement(int idx, llvm::Value *indIdx =0);
+ llvm::Value *immediateElement(int idx);
llvm::Value *tempElement(int idx);
void setTempElement(int idx, llvm::Value *val, int mask);
@@ -87,6 +88,8 @@ public:
void pushTemps();
void popTemps();
+ void addImmediate(float *val);
+
private:
llvm::Value *maskWrite(llvm::Value *src, int mask, llvm::Value *templ);
const char *name(const char *prefix);
@@ -102,6 +105,7 @@ private:
std::vector<llvm::Value*> m_temps;
std::vector<llvm::Value*> m_addrs;
std::vector<llvm::Value*> m_dstCache;
+ std::vector<llvm::Constant*> m_immediates;
llvm::VectorType *m_floatVecType;
llvm::VectorType *m_intVecType;