LLVM  14.0.0git
Namespaces | Macros | Enumerations | Functions
M68kBaseInfo.h File Reference
#include "M68kMCTargetDesc.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/ErrorHandling.h"
#include "M68kGenInstrInfo.inc"
Include dependency graph for M68kBaseInfo.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 
 llvm::M68k
 Define some predicates that are used for node matching.
 
 llvm::M68kBeads
 
 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  {
  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
}
 Target Operand Flag enum. More...
 

Functions

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. More...
 
static bool llvm::M68kII::isDirectGlobalReference (unsigned char Flag)
 Return True if the specified GlobalValue is a direct reference for a symbol. More...
 
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). More...
 
static bool llvm::M68kII::isPCRelGlobalReference (unsigned char Flag)
 Return True if the specified GlobalValue requires PC addressing mode. More...
 
static bool llvm::M68kII::isPCRelBlockReference (unsigned char Flag)
 Return True if the Block is referenced using PC. More...
 
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 28 of file M68kBaseInfo.h.

◆ GET_INSTRINFO_MI_OPS_INFO

#define GET_INSTRINFO_MI_OPS_INFO

Definition at line 26 of file M68kBaseInfo.h.

◆ GET_INSTRINFO_OPERAND_TYPES_ENUM

#define GET_INSTRINFO_OPERAND_TYPES_ENUM

Definition at line 27 of file M68kBaseInfo.h.