21 case msgpack::Type::Int:
23 case msgpack::Type::UInt:
25 case msgpack::Type::Boolean:
40 DelayedExprs.emplace_back(DN,
Type, ExprValue);
44 while (!DelayedExprs.empty()) {
45 Expr DE = DelayedExprs.front();
48 if (!DE.ExprValue->evaluateAsRelocatable(Res,
nullptr,
nullptr) ||
52 DelayedExprs.pop_front();
53 DE.DN =
getNode(DE.DN, DE.Type, Res);
static msgpack::DocNode getNode(msgpack::DocNode DN, msgpack::Type Type, MCValue Val)
void assignDocNode(msgpack::DocNode &DN, msgpack::Type Type, const MCExpr *ExprValue)
bool resolveDelayedExpressions()
Base class for the full range of assembler expressions which are needed for parsing.
bool evaluateAsRelocatable(MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const
Try to evaluate the expression to a relocatable value, i.e.
This represents an "assembler immediate".
int64_t getConstant() const
bool isAbsolute() const
Is this an absolute (as opposed to relocatable) value.
The instances of the Type class are immutable: once they are created, they are never changed.
A node in a MsgPack Document.
Document * getDocument() const
Simple in-memory representation of a document of msgpack objects with ability to find and create arra...
DocNode getEmptyNode()
Create an empty node associated with this Document.
DocNode getNode()
Create a nil node associated with this Document.
Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
This is an optimization pass for GlobalISel generic memory operations.