Fabcoin Core  0.16.2
P2P Digital Currency
Arith256.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "CompilerHelper.h"
4 
5 namespace dev
6 {
7 namespace eth
8 {
9 namespace jit
10 {
11 
12 class Arith256 : public CompilerHelper
13 {
14 public:
15  Arith256(IRBuilder& _builder);
16 
17  llvm::Value* exp(llvm::Value* _arg1, llvm::Value* _arg2);
18 
19  static void debug(llvm::Value *_value, char _c, llvm::Module &_module, IRBuilder &_builder);
20 
21  static llvm::Function* getUDiv256Func(llvm::Module& _module);
22  static llvm::Function* getURem256Func(llvm::Module& _module);
23  static llvm::Function* getURem512Func(llvm::Module& _module);
24  static llvm::Function* getUDivRem256Func(llvm::Module& _module);
25  static llvm::Function* getSDiv256Func(llvm::Module& _module);
26  static llvm::Function* getSRem256Func(llvm::Module& _module);
27  static llvm::Function* getSDivRem256Func(llvm::Module& _module);
28  static llvm::Function* getUDivRem512Func(llvm::Module& _module);
29 
30 private:
31  llvm::Function* getExpFunc();
32 
33  llvm::Function* m_exp = nullptr;
34 };
35 
36 
37 }
38 }
39 }
static llvm::Function * getUDiv256Func(llvm::Module &_module)
Definition: Arith256.cpp:138
Adapted from code found on http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c Origi...
Definition: Arith256.cpp:15
static llvm::Function * getSDivRem256Func(llvm::Module &_module)
Definition: Arith256.cpp:207
static llvm::Function * getURem256Func(llvm::Module &_module)
Definition: Arith256.cpp:191
Base class for compiler helpers like Memory, GasMeter, etc.
static llvm::Function * getURem512Func(llvm::Module &_module)
Definition: Arith256.cpp:199
Config::Value_type Value
llvm::Function * getExpFunc()
Definition: Arith256.cpp:309
llvm::Value * exp(llvm::Value *_arg1, llvm::Value *_arg2)
Definition: Arith256.cpp:379
static llvm::Function * getUDivRem512Func(llvm::Module &_module)
Definition: Arith256.cpp:129
static llvm::Function * getUDivRem256Func(llvm::Module &_module)
Definition: Arith256.cpp:120
static llvm::Function * getSRem256Func(llvm::Module &_module)
Definition: Arith256.cpp:282
static void debug(llvm::Value *_value, char _c, llvm::Module &_module, IRBuilder &_builder)
Definition: Arith256.cpp:26
llvm::Function * m_exp
Definition: Arith256.h:33
static llvm::Function * getSDiv256Func(llvm::Module &_module)
Definition: Arith256.cpp:255
Arith256(IRBuilder &_builder)
Definition: Arith256.cpp:22
llvm::IRBuilder<> IRBuilder