diff options
author | Zack Rusin <zack@tungstengraphics.com> | 2007-10-20 16:55:23 -0400 |
---|---|---|
committer | Zack Rusin <zack@tungstengraphics.com> | 2007-10-24 11:21:04 -0400 |
commit | d4d8d7c468c8ba45e302e163dd87b4e45426e1da (patch) | |
tree | f3ac38c253cff824c156dc1db5955b4f56b4f365 /src/mesa/pipe/llvm/instructions.h | |
parent | e9a623d6a69718e3a9cc46dbb54cb4e7bd79f09c (diff) |
Muchos fixos. gears kinda works. and cases don't crash.
glorious
Diffstat (limited to 'src/mesa/pipe/llvm/instructions.h')
-rw-r--r-- | src/mesa/pipe/llvm/instructions.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mesa/pipe/llvm/instructions.h b/src/mesa/pipe/llvm/instructions.h index dd1e76728a..bb71cc8520 100644 --- a/src/mesa/pipe/llvm/instructions.h +++ b/src/mesa/pipe/llvm/instructions.h @@ -7,12 +7,13 @@ namespace llvm { class VectorType; + class Function; } class Instructions { public: - Instructions(llvm::Module *mod, llvm::BasicBlock *block); + Instructions(llvm::Module *mod, llvm::Function *func, llvm::BasicBlock *block); llvm::Value *add(llvm::Value *in1, llvm::Value *in2); llvm::Value *dp3(llvm::Value *in1, llvm::Value *in2); @@ -33,6 +34,9 @@ public: llvm::Value *rcp(llvm::Value *in); llvm::Value *rsq(llvm::Value *in); llvm::Value *sub(llvm::Value *in1, llvm::Value *in2); + llvm::Value *swizzleWrite(llvm::Value *in, int mask); + + void printVector(llvm::Value *val); private: const char *name(const char *prefix); @@ -46,6 +50,7 @@ private: llvm::Value *z, llvm::Value *w=0); private: llvm::Module *m_mod; + llvm::Function *m_func; char m_name[32]; llvm::BasicBlock *m_block; int m_idx; @@ -57,6 +62,9 @@ private: llvm::Function *m_llvmPow; llvm::Function *m_llvmFloor; llvm::Function *m_llvmFlog; + llvm::Function *m_llvmLit; + + llvm::Constant *m_fmtPtr; }; #endif |