LLVM  6.0.0svn
Macros | Functions | Variables
PPCAsmParser.cpp File Reference
#include "MCTargetDesc/PPCMCExpr.h"
#include "MCTargetDesc/PPCMCTargetDesc.h"
#include "PPCTargetStreamer.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCParser/MCAsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
#include "llvm/MC/MCParser/MCTargetAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include "PPCGenAsmMatcher.inc"
Include dependency graph for PPCAsmParser.cpp:

Go to the source code of this file.

Macros

#define GET_REGISTER_MATCHER
 
#define GET_MATCHER_IMPLEMENTATION
 
Auto-generated Match Functions

{

#define GET_ASSEMBLER_HEADER
 

Functions

static int64_t EvaluateCRExpr (const MCExpr *E)
 
static void addNegOperand (MCInst &Inst, MCOperand &Op, MCContext &Ctx)
 
void LLVMInitializePowerPCAsmParser ()
 Force static initialization. More...
 

Variables

static const MCPhysReg RRegs [32]
 
static const MCPhysReg RRegsNoR0 [32]
 
static const MCPhysReg XRegs [32]
 
static const MCPhysReg XRegsNoX0 [32]
 
static const MCPhysReg FRegs [32]
 
static const MCPhysReg VFRegs [32]
 
static const MCPhysReg VRegs [32]
 
static const MCPhysReg VSRegs [64]
 
static const MCPhysReg VSFRegs [64]
 
static const MCPhysReg VSSRegs [64]
 
static unsigned QFRegs [32]
 
static const MCPhysReg CRBITRegs [32]
 
static const MCPhysReg CRRegs [8]
 

Macro Definition Documentation

◆ GET_ASSEMBLER_HEADER

#define GET_ASSEMBLER_HEADER

Definition at line 291 of file PPCAsmParser.cpp.

◆ GET_MATCHER_IMPLEMENTATION

#define GET_MATCHER_IMPLEMENTATION

Definition at line 1922 of file PPCAsmParser.cpp.

◆ GET_REGISTER_MATCHER

#define GET_REGISTER_MATCHER

Definition at line 1921 of file PPCAsmParser.cpp.

Function Documentation

◆ addNegOperand()

static void addNegOperand ( MCInst Inst,
MCOperand Op,
MCContext Ctx 
)
static

Definition at line 830 of file PPCAsmParser.cpp.

References llvm::MCInst::addOperand(), assert(), B, llvm::MCExpr::Binary, llvm::AsmToken::Comma, llvm::MCExpr::Constant, Context, llvm::PPCMCExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCUnaryExpr::create(), llvm::MCBinaryExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), llvm::MCUnaryExpr::createMinus(), llvm::MCBinaryExpr::createSub(), CRRegs, llvm::AsmToken::Dollar, llvm::AsmToken::Dot, E, llvm::PPCTargetStreamer::emitAbiVersion(), llvm::MCStreamer::EmitInstruction(), llvm::PPCTargetStreamer::emitLocalEntry(), llvm::PPCTargetStreamer::emitMachine(), llvm::AsmToken::EndOfStatement, llvm::StringRef::equals_lower(), llvm::lltok::Error, llvm::AsmToken::Exclaim, llvm::StringRef::find(), FRegs, llvm::StringRef::getAsInteger(), llvm::AsmToken::getEndLoc(), llvm::MCOperand::getExpr(), llvm::SMLoc::getFromPointer(), llvm::AsmToken::getIdentifier(), llvm::MCOperand::getImm(), llvm::MCExpr::getKind(), llvm::MCSymbolRefExpr::getKind(), llvm::MCBinaryExpr::getLHS(), llvm::AsmToken::getLoc(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCUnaryExpr::getOpcode(), llvm::MCBinaryExpr::getOpcode(), llvm::MCInst::getOperand(), llvm::SMLoc::getPointer(), llvm::MCBinaryExpr::getRHS(), llvm::AsmToken::getString(), llvm::MCUnaryExpr::getSubExpr(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCAsmParser::getTok(), llvm::AsmToken::Identifier, llvm::AsmToken::Integer, llvm::tgtok::IntVal, llvm::MCOperand::isImm(), llvm::isIntN(), llvm::AsmToken::isNot(), llvm::isRunOfOnes(), llvm::isUIntN(), llvm::MCAsmParser::Lex(), LLVM_FALLTHROUGH, llvm_unreachable, llvm::AsmToken::LParen, llvm::MatchRegisterName(), MatchRegisterName(), llvm::AsmToken::Minus, llvm::MCUnaryExpr::Minus, N, llvm::AArch64CC::NE, llvm::StringRef::npos, llvm::AsmToken::Percent, llvm::AsmToken::Plus, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::Ref, llvm::AsmToken::RParen, RRegs, llvm::MCInst::setLoc(), llvm::MCInst::setOpcode(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::StringRef::slice(), llvm::StringRef::startswith_lower(), llvm::AsmToken::String, llvm::MCBinaryExpr::Sub, llvm::StringRef::substr(), std::swap(), llvm::MCExpr::SymbolRef, llvm::MCExpr::Target, llvm::AsmToken::Tilde, llvm::MCExpr::Unary, llvm::MCSymbolRefExpr::VK_None, llvm::PPCMCExpr::VK_PPC_HA, llvm::MCSymbolRefExpr::VK_PPC_HA, llvm::PPCMCExpr::VK_PPC_HI, llvm::MCSymbolRefExpr::VK_PPC_HI, llvm::PPCMCExpr::VK_PPC_HIGHER, llvm::MCSymbolRefExpr::VK_PPC_HIGHER, llvm::PPCMCExpr::VK_PPC_HIGHERA, llvm::MCSymbolRefExpr::VK_PPC_HIGHERA, llvm::PPCMCExpr::VK_PPC_HIGHEST, llvm::MCSymbolRefExpr::VK_PPC_HIGHEST, llvm::PPCMCExpr::VK_PPC_HIGHESTA, llvm::MCSymbolRefExpr::VK_PPC_HIGHESTA, llvm::PPCMCExpr::VK_PPC_LO, llvm::MCSymbolRefExpr::VK_PPC_LO, llvm::PPCMCExpr::VK_PPC_None, llvm::MCSymbolRefExpr::VK_PPC_TLSGD, llvm::MCSymbolRefExpr::VK_PPC_TLSLD, llvm::MCSymbolRefExpr::VK_TLSGD, llvm::MCSymbolRefExpr::VK_TLSLD, VRegs, VSRegs, and XRegs.

◆ EvaluateCRExpr()

static int64_t EvaluateCRExpr ( const MCExpr E)
static

◆ LLVMInitializePowerPCAsmParser()

void LLVMInitializePowerPCAsmParser ( )

Force static initialization.

Definition at line 1915 of file PPCAsmParser.cpp.

References A, B, C, llvm::getThePPC32Target(), llvm::getThePPC64LETarget(), and llvm::getThePPC64Target().

Variable Documentation

◆ CRBITRegs

const MCPhysReg CRBITRegs[32]
static
Initial value:
= {
PPC::CR0LT, PPC::CR0GT, PPC::CR0EQ, PPC::CR0UN,
PPC::CR1LT, PPC::CR1GT, PPC::CR1EQ, PPC::CR1UN,
PPC::CR2LT, PPC::CR2GT, PPC::CR2EQ, PPC::CR2UN,
PPC::CR3LT, PPC::CR3GT, PPC::CR3EQ, PPC::CR3UN,
PPC::CR4LT, PPC::CR4GT, PPC::CR4EQ, PPC::CR4UN,
PPC::CR5LT, PPC::CR5GT, PPC::CR5EQ, PPC::CR5UN,
PPC::CR6LT, PPC::CR6GT, PPC::CR6EQ, PPC::CR6UN,
PPC::CR7LT, PPC::CR7GT, PPC::CR7EQ, PPC::CR7UN
}

Definition at line 173 of file PPCAsmParser.cpp.

◆ CRRegs

const MCPhysReg CRRegs[8]
static
Initial value:
= {
PPC::CR0, PPC::CR1, PPC::CR2, PPC::CR3,
PPC::CR4, PPC::CR5, PPC::CR6, PPC::CR7
}

Definition at line 183 of file PPCAsmParser.cpp.

Referenced by addNegOperand().

◆ FRegs

const MCPhysReg FRegs[32]
static
Initial value:
= {
PPC::F0, PPC::F1, PPC::F2, PPC::F3,
PPC::F4, PPC::F5, PPC::F6, PPC::F7,
PPC::F8, PPC::F9, PPC::F10, PPC::F11,
PPC::F12, PPC::F13, PPC::F14, PPC::F15,
PPC::F16, PPC::F17, PPC::F18, PPC::F19,
PPC::F20, PPC::F21, PPC::F22, PPC::F23,
PPC::F24, PPC::F25, PPC::F26, PPC::F27,
PPC::F28, PPC::F29, PPC::F30, PPC::F31
}

Definition at line 76 of file PPCAsmParser.cpp.

Referenced by addNegOperand().

◆ QFRegs

unsigned QFRegs[32]
static
Initial value:
= {
PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3,
PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7,
PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11,
PPC::QF12, PPC::QF13, PPC::QF14, PPC::QF15,
PPC::QF16, PPC::QF17, PPC::QF18, PPC::QF19,
PPC::QF20, PPC::QF21, PPC::QF22, PPC::QF23,
PPC::QF24, PPC::QF25, PPC::QF26, PPC::QF27,
PPC::QF28, PPC::QF29, PPC::QF30, PPC::QF31
}

Definition at line 163 of file PPCAsmParser.cpp.

◆ RRegs

const MCPhysReg RRegs[32]
static
Initial value:
= {
PPC::R0, PPC::R1, PPC::R2, PPC::R3,
PPC::R4, PPC::R5, PPC::R6, PPC::R7,
PPC::R8, PPC::R9, PPC::R10, PPC::R11,
PPC::R12, PPC::R13, PPC::R14, PPC::R15,
PPC::R16, PPC::R17, PPC::R18, PPC::R19,
PPC::R20, PPC::R21, PPC::R22, PPC::R23,
PPC::R24, PPC::R25, PPC::R26, PPC::R27,
PPC::R28, PPC::R29, PPC::R30, PPC::R31
}
#define R4(n)
#define R2(n)
#define R6(n)

Definition at line 34 of file PPCAsmParser.cpp.

Referenced by addNegOperand().

◆ RRegsNoR0

const MCPhysReg RRegsNoR0[32]
static
Initial value:
= {
PPC::ZERO,
PPC::R1, PPC::R2, PPC::R3,
PPC::R4, PPC::R5, PPC::R6, PPC::R7,
PPC::R8, PPC::R9, PPC::R10, PPC::R11,
PPC::R12, PPC::R13, PPC::R14, PPC::R15,
PPC::R16, PPC::R17, PPC::R18, PPC::R19,
PPC::R20, PPC::R21, PPC::R22, PPC::R23,
PPC::R24, PPC::R25, PPC::R26, PPC::R27,
PPC::R28, PPC::R29, PPC::R30, PPC::R31
}
#define R4(n)
#define R2(n)
#define R6(n)

Definition at line 44 of file PPCAsmParser.cpp.

◆ VFRegs

const MCPhysReg VFRegs[32]
static
Initial value:
= {
PPC::VF0, PPC::VF1, PPC::VF2, PPC::VF3,
PPC::VF4, PPC::VF5, PPC::VF6, PPC::VF7,
PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11,
PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15,
PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19,
PPC::VF20, PPC::VF21, PPC::VF22, PPC::VF23,
PPC::VF24, PPC::VF25, PPC::VF26, PPC::VF27,
PPC::VF28, PPC::VF29, PPC::VF30, PPC::VF31
}

Definition at line 86 of file PPCAsmParser.cpp.

◆ VRegs

const MCPhysReg VRegs[32]
static
Initial value:
= {
PPC::V0, PPC::V1, PPC::V2, PPC::V3,
PPC::V4, PPC::V5, PPC::V6, PPC::V7,
PPC::V8, PPC::V9, PPC::V10, PPC::V11,
PPC::V12, PPC::V13, PPC::V14, PPC::V15,
PPC::V16, PPC::V17, PPC::V18, PPC::V19,
PPC::V20, PPC::V21, PPC::V22, PPC::V23,
PPC::V24, PPC::V25, PPC::V26, PPC::V27,
PPC::V28, PPC::V29, PPC::V30, PPC::V31
}

Definition at line 96 of file PPCAsmParser.cpp.

Referenced by addNegOperand(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::getCalleeSavedSpillSlots(), llvm::LegalizerHelper::legalizeInstrStep(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), propagateSwiftErrorVRegs(), and runOnBasicBlock().

◆ VSFRegs

const MCPhysReg VSFRegs[64]
static
Initial value:
= {
PPC::F0, PPC::F1, PPC::F2, PPC::F3,
PPC::F4, PPC::F5, PPC::F6, PPC::F7,
PPC::F8, PPC::F9, PPC::F10, PPC::F11,
PPC::F12, PPC::F13, PPC::F14, PPC::F15,
PPC::F16, PPC::F17, PPC::F18, PPC::F19,
PPC::F20, PPC::F21, PPC::F22, PPC::F23,
PPC::F24, PPC::F25, PPC::F26, PPC::F27,
PPC::F28, PPC::F29, PPC::F30, PPC::F31,
PPC::VF0, PPC::VF1, PPC::VF2, PPC::VF3,
PPC::VF4, PPC::VF5, PPC::VF6, PPC::VF7,
PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11,
PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15,
PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19,
PPC::VF20, PPC::VF21, PPC::VF22, PPC::VF23,
PPC::VF24, PPC::VF25, PPC::VF26, PPC::VF27,
PPC::VF28, PPC::VF29, PPC::VF30, PPC::VF31
}

Definition at line 125 of file PPCAsmParser.cpp.

◆ VSRegs

const MCPhysReg VSRegs[64]
static
Initial value:
= {
PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3,
PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7,
PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11,
PPC::VSL12, PPC::VSL13, PPC::VSL14, PPC::VSL15,
PPC::VSL16, PPC::VSL17, PPC::VSL18, PPC::VSL19,
PPC::VSL20, PPC::VSL21, PPC::VSL22, PPC::VSL23,
PPC::VSL24, PPC::VSL25, PPC::VSL26, PPC::VSL27,
PPC::VSL28, PPC::VSL29, PPC::VSL30, PPC::VSL31,
PPC::V0, PPC::V1, PPC::V2, PPC::V3,
PPC::V4, PPC::V5, PPC::V6, PPC::V7,
PPC::V8, PPC::V9, PPC::V10, PPC::V11,
PPC::V12, PPC::V13, PPC::V14, PPC::V15,
PPC::V16, PPC::V17, PPC::V18, PPC::V19,
PPC::V20, PPC::V21, PPC::V22, PPC::V23,
PPC::V24, PPC::V25, PPC::V26, PPC::V27,
PPC::V28, PPC::V29, PPC::V30, PPC::V31
}

Definition at line 106 of file PPCAsmParser.cpp.

Referenced by addNegOperand().

◆ VSSRegs

const MCPhysReg VSSRegs[64]
static
Initial value:
= {
PPC::F0, PPC::F1, PPC::F2, PPC::F3,
PPC::F4, PPC::F5, PPC::F6, PPC::F7,
PPC::F8, PPC::F9, PPC::F10, PPC::F11,
PPC::F12, PPC::F13, PPC::F14, PPC::F15,
PPC::F16, PPC::F17, PPC::F18, PPC::F19,
PPC::F20, PPC::F21, PPC::F22, PPC::F23,
PPC::F24, PPC::F25, PPC::F26, PPC::F27,
PPC::F28, PPC::F29, PPC::F30, PPC::F31,
PPC::VF0, PPC::VF1, PPC::VF2, PPC::VF3,
PPC::VF4, PPC::VF5, PPC::VF6, PPC::VF7,
PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11,
PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15,
PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19,
PPC::VF20, PPC::VF21, PPC::VF22, PPC::VF23,
PPC::VF24, PPC::VF25, PPC::VF26, PPC::VF27,
PPC::VF28, PPC::VF29, PPC::VF30, PPC::VF31
}

Definition at line 144 of file PPCAsmParser.cpp.

◆ XRegs

const MCPhysReg XRegs[32]
static
Initial value:
= {
PPC::X0, PPC::X1, PPC::X2, PPC::X3,
PPC::X4, PPC::X5, PPC::X6, PPC::X7,
PPC::X8, PPC::X9, PPC::X10, PPC::X11,
PPC::X12, PPC::X13, PPC::X14, PPC::X15,
PPC::X16, PPC::X17, PPC::X18, PPC::X19,
PPC::X20, PPC::X21, PPC::X22, PPC::X23,
PPC::X24, PPC::X25, PPC::X26, PPC::X27,
PPC::X28, PPC::X29, PPC::X30, PPC::X31
}

Definition at line 55 of file PPCAsmParser.cpp.

Referenced by addNegOperand().

◆ XRegsNoX0

const MCPhysReg XRegsNoX0[32]
static
Initial value:
= {
PPC::ZERO8,
PPC::X1, PPC::X2, PPC::X3,
PPC::X4, PPC::X5, PPC::X6, PPC::X7,
PPC::X8, PPC::X9, PPC::X10, PPC::X11,
PPC::X12, PPC::X13, PPC::X14, PPC::X15,
PPC::X16, PPC::X17, PPC::X18, PPC::X19,
PPC::X20, PPC::X21, PPC::X22, PPC::X23,
PPC::X24, PPC::X25, PPC::X26, PPC::X27,
PPC::X28, PPC::X29, PPC::X30, PPC::X31
}

Definition at line 65 of file PPCAsmParser.cpp.