diff options
author | arphaman <arphaman@gmail.com> | 2013-08-27 12:23:24 +0100 |
---|---|---|
committer | arphaman <arphaman@gmail.com> | 2013-08-27 12:23:24 +0100 |
commit | 5280a11c9594a84ee6188a15912df04118a878e2 (patch) | |
tree | e56990ebef656f40da5147ac1957dde26c740436 /tools | |
parent | 0ce684808c983d9a2566131d4dbe4d7d4a6aee80 (diff) | |
download | flang-5280a11c9594a84ee6188a15912df04118a878e2.tar.gz |
added codegen for unary and binary array operations
Diffstat (limited to 'tools')
-rw-r--r-- | tools/driver/Main.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/driver/Main.cpp b/tools/driver/Main.cpp index 9c3ebfecbd..7689e71432 100644 --- a/tools/driver/Main.cpp +++ b/tools/driver/Main.cpp @@ -132,6 +132,11 @@ extern "C" void jit_write_integer(void *,const void *Ptr, int32_t Size) { llvm::outs() << *reinterpret_cast<const int32_t*>(Ptr); } +extern "C" void jit_write_logical(void *,const void *Ptr, int32_t Size) { + if(Size != 4) return; + llvm::outs() << ((*reinterpret_cast<const int32_t*>(Ptr)) != 0? "true" : "false"); +} + extern "C" void jit_write_end(void *) { llvm::outs() << "\n"; } @@ -168,6 +173,9 @@ static int Execute(llvm::Module *Module, const char * const *envp) { if(auto F = Module->getFunction("libflang_write_integer")) { EE->addGlobalMapping(F, (void*) &jit_write_integer); } + if(auto F = Module->getFunction("libflang_write_logical")) { + EE->addGlobalMapping(F, (void*) &jit_write_logical); + } if(auto F = Module->getFunction("libflang_assignment_char1")) { EE->addGlobalMapping(F, (void*) &jit_assignment_char1); } |