mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
[WebAssembly] Initial WebAssembly backend
This WebAssembly backend is just a skeleton at this time and is not yet functional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241022 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
48
lib/Target/WebAssembly/WebAssemblySubtarget.cpp
Normal file
48
lib/Target/WebAssembly/WebAssemblySubtarget.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
//===-- WebAssemblySubtarget.cpp - WebAssembly Subtarget Information ------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
///
|
||||
/// \file
|
||||
/// \brief This file implements the WebAssembly-specific subclass of
|
||||
/// TargetSubtarget.
|
||||
///
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "WebAssemblyInstrInfo.h"
|
||||
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
|
||||
#include "WebAssemblySubtarget.h"
|
||||
#include "llvm/Support/TargetRegistry.h"
|
||||
using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "subtarget"
|
||||
|
||||
#define GET_SUBTARGETINFO_CTOR
|
||||
#define GET_SUBTARGETINFO_TARGET_DESC
|
||||
#include "WebAssemblyGenSubtargetInfo.inc"
|
||||
|
||||
WebAssemblySubtarget &
|
||||
WebAssemblySubtarget::initializeSubtargetDependencies(StringRef FS) {
|
||||
// Determine default and user-specified characteristics
|
||||
|
||||
if (CPUString.empty())
|
||||
CPUString = "generic";
|
||||
|
||||
ParseSubtargetFeatures(CPUString, FS);
|
||||
return *this;
|
||||
}
|
||||
|
||||
WebAssemblySubtarget::WebAssemblySubtarget(const Triple &TT,
|
||||
const std::string &CPU,
|
||||
const std::string &FS,
|
||||
const TargetMachine &TM)
|
||||
: WebAssemblyGenSubtargetInfo(TT, CPU, FS), HasSIMD(true), CPUString(CPU),
|
||||
TargetTriple(TT), FrameLowering(),
|
||||
InstrInfo(initializeSubtargetDependencies(FS)),
|
||||
TSInfo(TM.getDataLayout()), TLInfo(TM, *this) {}
|
||||
|
||||
bool WebAssemblySubtarget::enableMachineScheduler() const { return true; }
|
Reference in New Issue
Block a user