[WebAssembly] Define separate Target instances for 32-bit and 64-bit.
authorDan Gohman <dan433584@gmail.com>
Wed, 1 Jul 2015 21:42:34 +0000 (21:42 +0000)
committerDan Gohman <dan433584@gmail.com>
Wed, 1 Jul 2015 21:42:34 +0000 (21:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241193 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp
lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp

index f74d2e85392efbfc2ad9a9468ae22ffe89525784..d248556c62d72feca7c3ce66ac8aa4c1326a642e 100644 (file)
@@ -46,7 +46,7 @@ createWebAssemblyMCInstPrinter(const Triple &T, unsigned SyntaxVariant,
 
 // Force static initialization.
 extern "C" void LLVMInitializeWebAssemblyTargetMC() {
-  for (Target *T : {&TheWebAssemblyTarget}) {
+  for (Target *T : {&TheWebAssemblyTarget32, &TheWebAssemblyTarget64}) {
     // Register the MC asm info.
     RegisterMCAsmInfoFn X(*T, createWebAssemblyMCAsmInfo);
 
index 19c0737ffbf50dc25d9e651b115383c7c6ed9d5e..24893daec7ea9f492a09222191373ceac899697a 100644 (file)
@@ -35,7 +35,8 @@ class Target;
 class Triple;
 class raw_ostream;
 
-extern Target TheWebAssemblyTarget;
+extern Target TheWebAssemblyTarget32;
+extern Target TheWebAssemblyTarget64;
 
 MCAsmBackend *createWebAssemblyAsmBackend(const Target &T,
                                           const MCRegisterInfo &MRI,
index fb339b9551278337e376c57cf866c7091efc5c5d..ddb1eb1d18920ae85182dcc6174e42a540bb44ea 100644 (file)
@@ -19,11 +19,12 @@ using namespace llvm;
 
 #define DEBUG_TYPE "wasm-target-info"
 
-Target llvm::TheWebAssemblyTarget;
+Target llvm::TheWebAssemblyTarget32;
+Target llvm::TheWebAssemblyTarget64;
 
 extern "C" void LLVMInitializeWebAssemblyTargetInfo() {
-  RegisterTarget<Triple::wasm32> X(TheWebAssemblyTarget, "wasm32",
+  RegisterTarget<Triple::wasm32> X(TheWebAssemblyTarget32, "wasm32",
                                    "WebAssembly 32-bit");
-  RegisterTarget<Triple::wasm64> Y(TheWebAssemblyTarget, "wasm64",
+  RegisterTarget<Triple::wasm64> Y(TheWebAssemblyTarget64, "wasm64",
                                    "WebAssembly 64-bit");
 }
index 24277a30bd3f90b0bb4119ab01870db98510dbbd..54ab02848b01c921805ad3dcb26090f1a9c1f8b6 100644 (file)
@@ -30,7 +30,8 @@ using namespace llvm;
 
 extern "C" void LLVMInitializeWebAssemblyTarget() {
   // Register the target.
-  RegisterTargetMachine<WebAssemblyTargetMachine> X(TheWebAssemblyTarget);
+  RegisterTargetMachine<WebAssemblyTargetMachine> X(TheWebAssemblyTarget32);
+  RegisterTargetMachine<WebAssemblyTargetMachine> Y(TheWebAssemblyTarget64);
 }
 
 //===----------------------------------------------------------------------===//