xref: /aosp_15_r20/external/llvm/lib/Target/AVR/AVRSubtarget.cpp (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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