diff options
author | Zack Rusin <[email protected]> | 2007-10-20 16:55:23 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2007-10-24 11:21:04 -0400 |
commit | d4d8d7c468c8ba45e302e163dd87b4e45426e1da (patch) | |
tree | f3ac38c253cff824c156dc1db5955b4f56b4f365 /src/mesa/pipe/llvm/storage.h | |
parent | e9a623d6a69718e3a9cc46dbb54cb4e7bd79f09c (diff) |
Muchos fixos. gears kinda works. and cases don't crash.
glorious
Diffstat (limited to 'src/mesa/pipe/llvm/storage.h')
-rw-r--r-- | src/mesa/pipe/llvm/storage.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mesa/pipe/llvm/storage.h b/src/mesa/pipe/llvm/storage.h index b69c8d614e9..f39d308fdd2 100644 --- a/src/mesa/pipe/llvm/storage.h +++ b/src/mesa/pipe/llvm/storage.h @@ -27,12 +27,17 @@ public: llvm::Value *constElement(int idx); llvm::Value *tempElement(int idx) const; - void setTempElement(int idx, llvm::Value *val); + void setTempElement(int idx, llvm::Value *val, int mask); llvm::Value *shuffleVector(llvm::Value *vec, int shuffle); - void store(int dstIdx, llvm::Value *val); + void store(int dstIdx, llvm::Value *val, int mask); + + int numConsts() const; +private: + llvm::Value *maskWrite(llvm::Value *src, int mask, llvm::Value *templ); + const char *name(const char *prefix); private: llvm::BasicBlock *m_block; llvm::Value *m_OUT; @@ -42,6 +47,7 @@ private: std::map<int, llvm::ConstantInt*> m_constInts; std::map<int, llvm::Constant*> m_intVecs; std::vector<llvm::Value*> m_temps; + std::vector<llvm::Value*> m_dstCache; LoadMap m_inputs; LoadMap m_consts; @@ -52,6 +58,10 @@ private: llvm::Value *m_undefIntVec; int m_shuffleId; + char m_name[32]; + int m_idx; + + int m_numConsts; }; #endif |