14#ifndef LLVM_LIB_TARGET_M68K_M68KSUBTARGET_H 
   15#define LLVM_LIB_TARGET_M68K_M68KSUBTARGET_H 
   32#define GET_SUBTARGETINFO_HEADER 
   33#include "M68kGenSubtargetInfo.inc" 
   41class M68kTargetMachine;
 
   44  virtual void anchor();
 
  111    assert(R < M68k::NUM_TARGET_REGS && 
"Register out of range");
 
 
  171  std::unique_ptr<const SelectionDAGTargetInfo> 
TSInfo;
 
 
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
 
This file describes how to lower LLVM calls to machine code calls.
 
Interface for Targets to specify which operations they can successfully select and how the others sho...
 
This file contains the M68k declaration of TargetFrameLowering class.
 
This file defines the interfaces that M68k uses to lower LLVM code into a selection DAG.
 
This file contains the M68k implementation of the TargetInstrInfo class.
 
Itinerary data supplied by a subtarget to be used by a target.
 
Align getStackAlignment() const
TODO this must be controlled by options like -malign-int and -mshort.
 
unsigned char classifyExternalReference(const Module &M) const
Classify a external variable reference for the current subtarget according to how we should reference...
 
bool atLeastM68882() const
 
InstrItineraryData InstrItins
 
const M68kTargetLowering * getTargetLowering() const override
 
bool atLeastM68060() const
 
std::optional< FPKindEnum > FPUKind
 
M68kSubtarget(const Triple &TT, StringRef CPU, StringRef FS, const M68kTargetMachine &_TM)
This constructor initializes the data members to match that of the specified triple.
 
SubtargetEnum SubtargetKind
 
bool atLeastM68040() const
 
unsigned char classifyBlockAddressReference() const
Classify a blockaddress reference for the current subtarget according to how we should reference it i...
 
const LegalizerInfo * getLegalizerInfo() const override
 
std::unique_ptr< const SelectionDAGTargetInfo > TSInfo
 
const InstrItineraryData * getInstrItineraryData() const override
 
std::bitset< M68k::NUM_TARGET_REGS > UserReservedRegister
 
const RegisterBankInfo * getRegBankInfo() const override
 
bool UseSmallSection
Small section is used.
 
bool isLegalToCallImmediateAddr() const
Return true if the subtarget allows calls to immediate address.
 
std::unique_ptr< CallLowering > CallLoweringInfo
 
bool atLeastM68881() const
 
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
 
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
Parses features string setting specified subtarget options.
 
const M68kTargetMachine & TM
 
bool hasFPU() const
Floating point support.
 
unsigned getSlotSize() const
getSlotSize - Stack slot size in bytes.
 
const Triple & getTargetTriple() const
 
M68kTargetLowering TLInfo
 
const M68kInstrInfo * getInstrInfo() const override
 
unsigned char classifyGlobalReference(const GlobalValue *GV, const Module &M) const
Classify a global variable reference for the current subtarget according to how we should reference i...
 
bool atLeastM68000() const
 
const CallLowering * getCallLowering() const override
 
unsigned getJumpTableEncoding() const
 
InstructionSelector * getInstructionSelector() const override
 
bool useSmallSection() const
 
bool atLeastM68010() const
 
~M68kSubtarget() override
 
std::unique_ptr< RegisterBankInfo > RegBankInfo
 
unsigned char classifyLocalReference(const GlobalValue *GV) const
Classify a global variable reference for the current subtarget according to how we should reference i...
 
bool isRegisterReservedByUser(Register R) const override
 
unsigned stackAlignment
The minimum alignment known to hold of the stack frame on entry to the function and which must be mai...
 
const M68kRegisterInfo * getRegisterInfo() const override
 
std::unique_ptr< LegalizerInfo > Legalizer
 
bool atLeastM68020() const
 
bool isPositionIndependent() const
 
M68kSubtarget & initializeSubtargetDependencies(StringRef CPU, Triple TT, StringRef FS, const M68kTargetMachine &TM)
 
M68kFrameLowering FrameLowering
 
bool atLeastM68030() const
 
unsigned char classifyGlobalFunctionReference(const GlobalValue *GV, const Module &M) const
Classify a global function reference for the current subtarget.
 
std::unique_ptr< InstructionSelector > InstSelector
 
const M68kFrameLowering * getFrameLowering() const override
 
A Module instance is used to store all the information related to an LLVM module.
 
Holds all the information related to register banks.
 
Wrapper class representing virtual and physical registers.
 
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
 
StringRef - Represent a constant reference to a string, i.e.
 
Triple - Helper class for working with autoconf configuration names.
 
This is an optimization pass for GlobalISel generic memory operations.
 
This struct is a compact representation of a valid (non-zero power of two) alignment.