diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2017-06-27 13:58:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-27 13:58:48 +0200 |
| commit | 4202a41f13ad0968025c64d1a0481913f675880f (patch) | |
| tree | 17d4f1e9112257ca1a3ee38e9471bf100f8061fc /miasm2/jitter/llvmconvert.py | |
| parent | 4c1a445b1062cd154ed3fc11ed9887f94c008479 (diff) | |
| parent | 04fc16be01be380b4b25d795f271c38e8dabc79f (diff) | |
| download | miasm-4202a41f13ad0968025c64d1a0481913f675880f.tar.gz miasm-4202a41f13ad0968025c64d1a0481913f675880f.zip | |
Merge pull request #573 from commial/feature/llvm-128div
Feature/llvm 128div
Diffstat (limited to 'miasm2/jitter/llvmconvert.py')
| -rw-r--r-- | miasm2/jitter/llvmconvert.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/miasm2/jitter/llvmconvert.py b/miasm2/jitter/llvmconvert.py index 7729d12c..cf6dea31 100644 --- a/miasm2/jitter/llvmconvert.py +++ b/miasm2/jitter/llvmconvert.py @@ -135,13 +135,31 @@ class LLVMContext_JIT(LLVMContext): self.library_filenames = library_filenames self.ir_arch = ir_arch self.arch_specific() + self.load_libraries() LLVMContext.__init__(self, name) self.vmcpu = {} - def new_module(self, name="mod"): - LLVMContext.new_module(self, name) + def load_libraries(self): + # Get LLVM specific functions + name = "libLLVM-%d.%d" % (llvm.llvm_version_info[0], + llvm.llvm_version_info[1], + ) + try: + # On Windows, no need to add ".dll" + self.add_shared_library(name) + except RuntimeError: + try: + # On Linux, ".so" is needed + self.add_shared_library("%s.so" % name) + except RuntimeError: + pass + + # Load additional libraries for lib_fname in self.library_filenames: self.add_shared_library(lib_fname) + + def new_module(self, name="mod"): + LLVMContext.new_module(self, name) self.add_memlookups() self.add_get_exceptionflag() self.add_op() |