1*9880d681SAndroid Build Coastguard Worker //===-- AVRSubtarget.cpp - AVR Subtarget Information ----------------------===//
2*9880d681SAndroid Build Coastguard Worker //
3*9880d681SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker //
5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker //
8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker //
10*9880d681SAndroid Build Coastguard Worker // This file implements the AVR specific subclass of TargetSubtargetInfo.
11*9880d681SAndroid Build Coastguard Worker //
12*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker #include "AVRSubtarget.h"
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker #include "llvm/Support/ELF.h"
17*9880d681SAndroid Build Coastguard Worker #include "llvm/Support/TargetRegistry.h"
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker #include "AVR.h"
20*9880d681SAndroid Build Coastguard Worker #include "AVRTargetMachine.h"
21*9880d681SAndroid Build Coastguard Worker #include "MCTargetDesc/AVRMCTargetDesc.h"
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker #define DEBUG_TYPE "avr-subtarget"
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker #define GET_SUBTARGETINFO_TARGET_DESC
26*9880d681SAndroid Build Coastguard Worker #define GET_SUBTARGETINFO_CTOR
27*9880d681SAndroid Build Coastguard Worker #include "AVRGenSubtargetInfo.inc"
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker namespace llvm {
30*9880d681SAndroid Build Coastguard Worker
AVRSubtarget(const Triple & TT,const std::string & CPU,const std::string & FS,AVRTargetMachine & TM)31*9880d681SAndroid Build Coastguard Worker AVRSubtarget::AVRSubtarget(const Triple &TT, const std::string &CPU,
32*9880d681SAndroid Build Coastguard Worker const std::string &FS, AVRTargetMachine &TM)
33*9880d681SAndroid Build Coastguard Worker : AVRGenSubtargetInfo(TT, CPU, FS), InstrInfo(), FrameLowering(),
34*9880d681SAndroid Build Coastguard Worker TLInfo(TM), TSInfo(),
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker // Subtarget features
37*9880d681SAndroid Build Coastguard Worker m_hasSRAM(false), m_hasJMPCALL(false), m_hasIJMPCALL(false),
38*9880d681SAndroid Build Coastguard Worker m_hasEIJMPCALL(false), m_hasADDSUBIW(false), m_hasSmallStack(false),
39*9880d681SAndroid Build Coastguard Worker m_hasMOVW(false), m_hasLPM(false), m_hasLPMX(false), m_hasELPM(false),
40*9880d681SAndroid Build Coastguard Worker m_hasELPMX(false), m_hasSPM(false), m_hasSPMX(false), m_hasDES(false),
41*9880d681SAndroid Build Coastguard Worker m_supportsRMW(false), m_supportsMultiplication(false), m_hasBREAK(false),
42*9880d681SAndroid Build Coastguard Worker m_hasTinyEncoding(false), ELFArch(false), m_FeatureSetDummy(false) {
43*9880d681SAndroid Build Coastguard Worker // Parse features string.
44*9880d681SAndroid Build Coastguard Worker ParseSubtargetFeatures(CPU, FS);
45*9880d681SAndroid Build Coastguard Worker }
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Worker } // end of namespace llvm
48