]> granicus.if.org Git - llvm/commitdiff
[ORC] Add case statements for AArch64 to the local stub and callback manager
authorLang Hames <lhames@gmail.com>
Tue, 15 Aug 2017 18:10:19 +0000 (18:10 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 15 Aug 2017 18:10:19 +0000 (18:10 +0000)
creation functions.

This should allow lli to lazily execute code using OrcLazyJIT on AArch64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310938 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/Orc/IndirectionUtils.cpp

index e3a456849f90351120905f916a442ddb4d731186..68397beae63aa60cf881ecc90934d5dafb1fa0af 100644 (file)
@@ -28,6 +28,11 @@ createLocalCompileCallbackManager(const Triple &T,
   switch (T.getArch()) {
     default: return nullptr;
 
+    case Triple::aarch64: {
+      typedef orc::LocalJITCompileCallbackManager<orc::OrcAArch64> CCMgrT;
+      return llvm::make_unique<CCMgrT>(ErrorHandlerAddress);
+    }
+
     case Triple::x86: {
       typedef orc::LocalJITCompileCallbackManager<orc::OrcI386> CCMgrT;
       return llvm::make_unique<CCMgrT>(ErrorHandlerAddress);
@@ -42,6 +47,7 @@ createLocalCompileCallbackManager(const Triple &T,
         return llvm::make_unique<CCMgrT>(ErrorHandlerAddress);
       }
     }
+
   }
 }
 
@@ -50,6 +56,12 @@ createLocalIndirectStubsManagerBuilder(const Triple &T) {
   switch (T.getArch()) {
     default: return nullptr;
 
+    case Triple::aarch64:
+      return [](){
+        return llvm::make_unique<
+                       orc::LocalIndirectStubsManager<orc::OrcAArch64>>();
+      };
+
     case Triple::x86:
       return [](){
         return llvm::make_unique<
@@ -68,6 +80,7 @@ createLocalIndirectStubsManagerBuilder(const Triple &T) {
                      orc::LocalIndirectStubsManager<orc::OrcX86_64_SysV>>();
         };
       }
+
   }
 }