summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorarphaman <arphaman@gmail.com>2013-08-27 12:23:24 +0100
committerarphaman <arphaman@gmail.com>2013-08-27 12:23:24 +0100
commit5280a11c9594a84ee6188a15912df04118a878e2 (patch)
treee56990ebef656f40da5147ac1957dde26c740436 /tools
parent0ce684808c983d9a2566131d4dbe4d7d4a6aee80 (diff)
downloadflang-5280a11c9594a84ee6188a15912df04118a878e2.tar.gz
added codegen for unary and binary array operations
Diffstat (limited to 'tools')
-rw-r--r--tools/driver/Main.cpp8
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);
}