[WebAssembly] Define separate Target instances for 32-bit and 64-bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241193 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2015-07-01 21:42:34 +00:00
parent e08f05f3a5
commit 1efcdba0e2
4 changed files with 9 additions and 6 deletions

View 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);

View 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,

View 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");
}

View 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);
}
//===----------------------------------------------------------------------===//