#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) { … }