13dac3a9bSDimitry Andric //===-- WebAssemblyTargetInfo.cpp - WebAssembly Target Implementation -----===//
23dac3a9bSDimitry Andric //
33dac3a9bSDimitry Andric //                     The LLVM Compiler Infrastructure
43dac3a9bSDimitry Andric //
53dac3a9bSDimitry Andric // This file is distributed under the University of Illinois Open Source
63dac3a9bSDimitry Andric // License. See LICENSE.TXT for details.
73dac3a9bSDimitry Andric //
83dac3a9bSDimitry Andric //===----------------------------------------------------------------------===//
93dac3a9bSDimitry Andric ///
103dac3a9bSDimitry Andric /// \file
11*4ba319b5SDimitry Andric /// This file registers the WebAssembly target.
123dac3a9bSDimitry Andric ///
133dac3a9bSDimitry Andric //===----------------------------------------------------------------------===//
143dac3a9bSDimitry Andric 
153dac3a9bSDimitry Andric #include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
163dac3a9bSDimitry Andric #include "llvm/ADT/Triple.h"
173dac3a9bSDimitry Andric #include "llvm/Support/TargetRegistry.h"
183dac3a9bSDimitry Andric using namespace llvm;
193dac3a9bSDimitry Andric 
203dac3a9bSDimitry Andric #define DEBUG_TYPE "wasm-target-info"
213dac3a9bSDimitry Andric 
getTheWebAssemblyTarget32()22d88c1a5aSDimitry Andric Target &llvm::getTheWebAssemblyTarget32() {
23d88c1a5aSDimitry Andric   static Target TheWebAssemblyTarget32;
24d88c1a5aSDimitry Andric   return TheWebAssemblyTarget32;
25d88c1a5aSDimitry Andric }
getTheWebAssemblyTarget64()26d88c1a5aSDimitry Andric Target &llvm::getTheWebAssemblyTarget64() {
27d88c1a5aSDimitry Andric   static Target TheWebAssemblyTarget64;
28d88c1a5aSDimitry Andric   return TheWebAssemblyTarget64;
29d88c1a5aSDimitry Andric }
303dac3a9bSDimitry Andric 
LLVMInitializeWebAssemblyTargetInfo()313dac3a9bSDimitry Andric extern "C" void LLVMInitializeWebAssemblyTargetInfo() {
32d88c1a5aSDimitry Andric   RegisterTarget<Triple::wasm32> X(getTheWebAssemblyTarget32(), "wasm32",
332cab237bSDimitry Andric                                    "WebAssembly 32-bit", "WebAssembly");
34d88c1a5aSDimitry Andric   RegisterTarget<Triple::wasm64> Y(getTheWebAssemblyTarget64(), "wasm64",
352cab237bSDimitry Andric                                    "WebAssembly 64-bit", "WebAssembly");
363dac3a9bSDimitry Andric }
37