diff options
Diffstat (limited to 'llvm/lib/Target/AVR/AVRSubtarget.cpp')
| -rw-r--r-- | llvm/lib/Target/AVR/AVRSubtarget.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/llvm/lib/Target/AVR/AVRSubtarget.cpp b/llvm/lib/Target/AVR/AVRSubtarget.cpp new file mode 100644 index 000000000000..6a41036fdd6c --- /dev/null +++ b/llvm/lib/Target/AVR/AVRSubtarget.cpp @@ -0,0 +1,54 @@ +//===-- AVRSubtarget.cpp - AVR Subtarget Information ----------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file implements the AVR specific subclass of TargetSubtargetInfo. +// +//===----------------------------------------------------------------------===// + +#include "AVRSubtarget.h" + +#include "llvm/BinaryFormat/ELF.h" +#include "llvm/Support/TargetRegistry.h" + +#include "AVR.h" +#include "AVRTargetMachine.h" +#include "MCTargetDesc/AVRMCTargetDesc.h" + +#define DEBUG_TYPE "avr-subtarget" + +#define GET_SUBTARGETINFO_TARGET_DESC +#define GET_SUBTARGETINFO_CTOR +#include "AVRGenSubtargetInfo.inc" + +namespace llvm { + +AVRSubtarget::AVRSubtarget(const Triple &TT, const std::string &CPU, + const std::string &FS, const AVRTargetMachine &TM) + : AVRGenSubtargetInfo(TT, CPU, FS), InstrInfo(), FrameLowering(), + TLInfo(TM, initializeSubtargetDependencies(CPU, FS, TM)), TSInfo(), + + // Subtarget features + m_hasSRAM(false), m_hasJMPCALL(false), m_hasIJMPCALL(false), + m_hasEIJMPCALL(false), m_hasADDSUBIW(false), m_hasSmallStack(false), + m_hasMOVW(false), m_hasLPM(false), m_hasLPMX(false), m_hasELPM(false), + m_hasELPMX(false), m_hasSPM(false), m_hasSPMX(false), m_hasDES(false), + m_supportsRMW(false), m_supportsMultiplication(false), m_hasBREAK(false), + m_hasTinyEncoding(false), ELFArch(false), m_FeatureSetDummy(false) { + // Parse features string. + ParseSubtargetFeatures(CPU, FS); +} + +AVRSubtarget & +AVRSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS, + const TargetMachine &TM) { + // Parse features string. + ParseSubtargetFeatures(CPU, FS); + return *this; +} + +} // end of namespace llvm |
