LLVM 22.0.0git
HexagonAsmParser.cpp File Reference
#include "MCTargetDesc/HexagonMCAsmInfo.h"
#include "MCTargetDesc/HexagonMCChecker.h"
#include "MCTargetDesc/HexagonMCELFStreamer.h"
#include "MCTargetDesc/HexagonMCExpr.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "MCTargetDesc/HexagonShuffler.h"
#include "MCTargetDesc/HexagonTargetStreamer.h"
#include "TargetInfo/HexagonTargetInfo.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDirectives.h"
#include "llvm/MC/MCELFStreamer.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCParser/AsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCAsmParserExtension.h"
#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
#include "llvm/MC/MCParser/MCTargetAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/MCValue.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/HexagonAttributes.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cctype>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <string>
#include <utility>
#include "HexagonGenAsmMatcher.inc"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "mcasmparser"
#define GET_MATCHER_IMPLEMENTATION
#define GET_REGISTER_MATCHER
Auto-generated Match Functions

{

#define GET_ASSEMBLER_HEADER

Functions

LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeHexagonAsmParser ()
 Force static initialization.
static bool previousEqual (OperandVector &Operands, size_t Index, StringRef String)
static bool previousIsLoop (OperandVector &Operands, size_t Index)
static MCInst makeCombineInst (int opCode, MCOperand &Rdd, MCOperand &MO1, MCOperand &MO2)

Variables

static cl::opt< boolWarnMissingParenthesis ("mwarn-missing-parenthesis", cl::desc("Warn for missing parenthesis around predicate registers"), cl::init(true))
static cl::opt< boolErrorMissingParenthesis ("merror-missing-parenthesis", cl::desc("Error for missing parenthesis around predicate registers"), cl::init(false))
static cl::opt< boolWarnSignedMismatch ("mwarn-sign-mismatch", cl::desc("Warn for mismatching a signed and unsigned value"), cl::init(false))
static cl::opt< boolWarnNoncontigiousRegister ("mwarn-noncontigious-register", cl::desc("Warn for register names that aren't contigious"), cl::init(true))
static cl::opt< boolErrorNoncontigiousRegister ("merror-noncontigious-register", cl::desc("Error for register names that aren't contigious"), cl::init(false))
static cl::opt< boolAddBuildAttributes ("hexagon-add-build-attributes")

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mcasmparser"

Definition at line 61 of file HexagonAsmParser.cpp.

◆ GET_ASSEMBLER_HEADER

#define GET_ASSEMBLER_HEADER

Definition at line 155 of file HexagonAsmParser.cpp.

◆ GET_MATCHER_IMPLEMENTATION

#define GET_MATCHER_IMPLEMENTATION

Definition at line 887 of file HexagonAsmParser.cpp.

◆ GET_REGISTER_MATCHER

#define GET_REGISTER_MATCHER

Definition at line 888 of file HexagonAsmParser.cpp.

Function Documentation

◆ LLVMInitializeHexagonAsmParser()

LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeHexagonAsmParser ( )

Force static initialization.

Definition at line 883 of file HexagonAsmParser.cpp.

References llvm::getTheHexagonTarget(), and X.

◆ makeCombineInst()

MCInst makeCombineInst ( int opCode,
MCOperand & Rdd,
MCOperand & MO1,
MCOperand & MO2 )
static

Definition at line 1295 of file HexagonAsmParser.cpp.

References llvm::MCInst::addOperand(), and llvm::MCInst::setOpcode().

◆ previousEqual()

bool previousEqual ( OperandVector & Operands,
size_t Index,
StringRef String )
static

◆ previousIsLoop()

bool previousIsLoop ( OperandVector & Operands,
size_t Index )
static

Definition at line 902 of file HexagonAsmParser.cpp.

References Operands, and previousEqual().

Variable Documentation

◆ AddBuildAttributes

cl::opt< bool > AddBuildAttributes("hexagon-add-build-attributes") ( "hexagon-add-build-attributes" )
static

◆ ErrorMissingParenthesis

cl::opt< bool > ErrorMissingParenthesis("merror-missing-parenthesis", cl::desc("Error for missing parenthesis around predicate registers"), cl::init(false)) ( "merror-missing-parenthesis" ,
cl::desc("Error for missing parenthesis around predicate registers") ,
cl::init(false)  )
static

◆ ErrorNoncontigiousRegister

cl::opt< bool > ErrorNoncontigiousRegister("merror-noncontigious-register", cl::desc("Error for register names that aren't contigious"), cl::init(false)) ( "merror-noncontigious-register" ,
cl::desc("Error for register names that aren't contigious") ,
cl::init(false)  )
static

◆ WarnMissingParenthesis

cl::opt< bool > WarnMissingParenthesis("mwarn-missing-parenthesis", cl::desc("Warn for missing parenthesis around predicate registers"), cl::init(true)) ( "mwarn-missing-parenthesis" ,
cl::desc("Warn for missing parenthesis around predicate registers") ,
cl::init(true)  )
static

◆ WarnNoncontigiousRegister

cl::opt< bool > WarnNoncontigiousRegister("mwarn-noncontigious-register", cl::desc("Warn for register names that aren't contigious"), cl::init(true)) ( "mwarn-noncontigious-register" ,
cl::desc("Warn for register names that aren't contigious") ,
cl::init(true)  )
static

◆ WarnSignedMismatch

cl::opt< bool > WarnSignedMismatch("mwarn-sign-mismatch", cl::desc("Warn for mismatching a signed and unsigned value"), cl::init(false)) ( "mwarn-sign-mismatch" ,
cl::desc("Warn for mismatching a signed and unsigned value") ,
cl::init(false)  )
static