#include "MCTargetDesc/PPCMCExpr.h"
#include "MCTargetDesc/PPCMCTargetDesc.h"
#include "PPCTargetStreamer.h"
#include "TargetInfo/PowerPCTargetInfo.h"
#include "llvm/ADT/STLExtras.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/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacellvm;
DEFINE_PPC_REGCLASSES
static int64_t
EvaluateCRExpr(const MCExpr *E) { … }
namespace {
struct PPCOperand;
class PPCAsmParser : public MCTargetAsmParser { … };
struct PPCOperand : public MCParsedAsmOperand { … };
}
void PPCOperand::print(raw_ostream &OS) const { … }
static void
addNegOperand(MCInst &Inst, MCOperand &Op, MCContext &Ctx) { … }
void PPCAsmParser::processInstruction(MCInst &Inst,
const OperandVector &Operands) { … }
static std::string PPCMnemonicSpellCheck(StringRef S, const FeatureBitset &FBS,
unsigned VariantID = 0);
bool PPCAsmParser::matchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
OperandVector &Operands,
MCStreamer &Out, uint64_t &ErrorInfo,
bool MatchingInlineAsm) { … }
bool PPCAsmParser::matchRegisterName(MCRegister &RegNo, int64_t &IntVal) { … }
bool PPCAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) { … }
ParseStatus PPCAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) { … }
const MCExpr *
PPCAsmParser::extractModifierFromExpr(const MCExpr *E,
PPCMCExpr::VariantKind &Variant) { … }
const MCExpr *PPCAsmParser::fixupVariantKind(const MCExpr *E) { … }
bool PPCAsmParser::parseExpression(const MCExpr *&EVal) { … }
bool PPCAsmParser::parseOperand(OperandVector &Operands) { … }
bool PPCAsmParser::parseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) { … }
bool PPCAsmParser::ParseDirective(AsmToken DirectiveID) { … }
bool PPCAsmParser::parseDirectiveWord(unsigned Size, AsmToken ID) { … }
bool PPCAsmParser::parseDirectiveTC(unsigned Size, AsmToken ID) { … }
bool PPCAsmParser::parseDirectiveMachine(SMLoc L) { … }
bool PPCAsmParser::parseDirectiveAbiVersion(SMLoc L) { … }
bool PPCAsmParser::parseDirectiveLocalEntry(SMLoc L) { … }
bool PPCAsmParser::parseGNUAttribute(SMLoc L) { … }
extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCAsmParser() { … }
#define GET_REGISTER_MATCHER
#define GET_MATCHER_IMPLEMENTATION
#define GET_MNEMONIC_SPELL_CHECKER
#include "PPCGenAsmMatcher.inc"
unsigned PPCAsmParser::validateTargetOperandClass(MCParsedAsmOperand &AsmOp,
unsigned Kind) { … }
const MCExpr *
PPCAsmParser::applyModifierToExpr(const MCExpr *E,
MCSymbolRefExpr::VariantKind Variant,
MCContext &Ctx) { … }