LLVM 19.0.0git
Namespaces | Macros | Enumerations | Functions
M68kBaseInfo.h File Reference

This file contains small standalone helper functions and enum definitions for the M68k target useful for the compiler back-end and the MC libraries. More...

#include "M68kMCTargetDesc.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/ErrorHandling.h"
#include "M68kGenInstrInfo.inc"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::M68k
 Define some predicates that are used for node matching.
 
namespace  llvm::M68kBeads
 
namespace  llvm::M68kII
 This namespace holds all of the target specific flags that instruction info tracks.
 

Macros

#define GET_INSTRINFO_MI_OPS_INFO
 
#define GET_INSTRINFO_OPERAND_TYPES_ENUM
 
#define GET_INSTRINFO_LOGICAL_OPERAND_SIZE_MAP
 

Enumerations

enum  { llvm::M68k::MemDisp = 0 , llvm::M68k::MemBase = 1 , llvm::M68k::MemIndex = 2 , llvm::M68k::MemOuter = 3 }
 Enums for memory operand decoding. More...
 
enum  { llvm::M68k::PCRelDisp = 0 , llvm::M68k::PCRelIndex = 1 , llvm::M68k::PCRelOuter = 2 }
 Enums for pc-relative memory operand decoding. More...
 
enum class  llvm::M68k::MemAddrModeKind : unsigned {
  llvm::M68k::j = 1 , llvm::M68k::o , llvm::M68k::e , llvm::M68k::p ,
  llvm::M68k::f , llvm::M68k::F , llvm::M68k::g , llvm::M68k::G ,
  llvm::M68k::u , llvm::M68k::U , llvm::M68k::v , llvm::M68k::V ,
  llvm::M68k::b , llvm::M68k::B , llvm::M68k::q , llvm::M68k::k ,
  llvm::M68k::K , llvm::M68k::l , llvm::M68k::L , llvm::M68k::x ,
  llvm::M68k::X , llvm::M68k::y , llvm::M68k::Y
}
 
enum  {
  llvm::M68kBeads::Ctrl = 0x0 , llvm::M68kBeads::Bits1 = 0x1 , llvm::M68kBeads::Bits2 = 0x2 , llvm::M68kBeads::Bits3 = 0x3 ,
  llvm::M68kBeads::Bits4 = 0x4 , llvm::M68kBeads::DAReg = 0x5 , llvm::M68kBeads::DA = 0x6 , llvm::M68kBeads::Reg = 0x7 ,
  llvm::M68kBeads::DReg = 0x8 , llvm::M68kBeads::Disp8 = 0x9 , llvm::M68kBeads::Imm8 = 0xA , llvm::M68kBeads::Imm16 = 0xB ,
  llvm::M68kBeads::Imm32 = 0xC , llvm::M68kBeads::Imm3 = 0xD
}
 
enum  { llvm::M68kBeads::Term = 0x0 , llvm::M68kBeads::Ignore = 0x1 }
 
enum  llvm::M68kII::TOF {
  llvm::M68kII::MO_NO_FLAG , llvm::M68kII::MO_ABSOLUTE_ADDRESS , llvm::M68kII::MO_PC_RELATIVE_ADDRESS , llvm::M68kII::MO_GOT ,
  llvm::M68kII::MO_GOTOFF , llvm::M68kII::MO_GOTPCREL , llvm::M68kII::MO_PLT , llvm::M68kII::MO_TLSGD ,
  llvm::M68kII::MO_TLSLD , llvm::M68kII::MO_TLSLDM , llvm::M68kII::MO_TLSIE , llvm::M68kII::MO_TLSLE
}
 Target Operand Flag enum. More...
 

Functions

template<typename value_t >
value_t llvm::M68k::swapWord (value_t Val)
 
static bool llvm::M68kII::isGlobalStubReference (unsigned char TargetFlag)
 Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself.
 
static bool llvm::M68kII::isDirectGlobalReference (unsigned char Flag)
 Return True if the specified GlobalValue is a direct reference for a symbol.
 
static bool llvm::M68kII::isGlobalRelativeToPICBase (unsigned char TargetFlag)
 Return true if the specified global value reference is relative to a 32-bit PIC base (M68kISD::GLOBAL_BASE_REG).
 
static bool llvm::M68kII::isPCRelGlobalReference (unsigned char Flag)
 Return True if the specified GlobalValue requires PC addressing mode.
 
static bool llvm::M68kII::isPCRelBlockReference (unsigned char Flag)
 Return True if the Block is referenced using PC.
 
static bool llvm::M68kII::isAddressRegister (unsigned RegNo)
 
static bool llvm::M68kII::hasMultiMIOperands (unsigned Op, unsigned LogicalOpIdx)
 
static unsigned llvm::M68kII::getMaskedSpillRegister (unsigned order)
 

Detailed Description

This file contains small standalone helper functions and enum definitions for the M68k target useful for the compiler back-end and the MC libraries.

As such, it deliberately does not include references to LLVM core code gen types, passes, etc..

Definition in file M68kBaseInfo.h.

Macro Definition Documentation

◆ GET_INSTRINFO_LOGICAL_OPERAND_SIZE_MAP

#define GET_INSTRINFO_LOGICAL_OPERAND_SIZE_MAP

Definition at line 29 of file M68kBaseInfo.h.

◆ GET_INSTRINFO_MI_OPS_INFO

#define GET_INSTRINFO_MI_OPS_INFO

Definition at line 27 of file M68kBaseInfo.h.

◆ GET_INSTRINFO_OPERAND_TYPES_ENUM

#define GET_INSTRINFO_OPERAND_TYPES_ENUM

Definition at line 28 of file M68kBaseInfo.h.