[#llvm-MCBinaryExpr] = xref:llvm.adoc[llvm]::MCBinaryExpr :relfileprefix: ../ :mrdocs: Binary assembler expressions. == Synopsis Declared in `<llvm/MC/MCExpr.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class MCBinaryExpr : public xref:llvm/MCExpr.adoc[MCExpr] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:llvm/MCExpr.adoc[MCExpr]` | Base class for the full range of assembler expressions which are needed for parsing. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:llvm/MCExpr/ExprKind.adoc[`ExprKind`] | Discriminator for concrete MCExpr subclasses. | xref:llvm/MCBinaryExpr/Opcode.adoc[`Opcode`] | Binary operation applied to two subexpressions. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/MCExpr/operator_assign.adoc[`operator=`] [.small]#[deleted]# | Deleted copy assignment. | xref:llvm/MCExpr/dump.adoc[`dump`] | Dump this expression to stderr. | xref:llvm/MCExpr/evaluateAsAbsolute-0a.adoc[`evaluateAsAbsolute`] | `evaluateAsAbsolute` overloads | xref:llvm/MCExpr/evaluateAsRelocatable.adoc[`evaluateAsRelocatable`] | Try to evaluate the expression to a relocatable value, i.e. an expression of the fixed form (a ‐ b + constant). | xref:llvm/MCExpr/evaluateAsValue.adoc[`evaluateAsValue`] | Try to evaluate the expression to the form (a ‐ b + constant) where neither a nor b are variables. | xref:llvm/MCExpr/evaluateKnownAbsolute.adoc[`evaluateKnownAbsolute`] | Aggressive variant of evaluateAsRelocatable when relocations are unavailable (e.g. .fill). Expects callers to handle errors when true is returned. | xref:llvm/MCExpr/findAssociatedFragment.adoc[`findAssociatedFragment`] | Find the fragment associated with this expression. | xref:llvm/MCExpr/getKind.adoc[`getKind`] | Return the kind of this expression. | xref:llvm/MCBinaryExpr/getLHS.adoc[`getLHS`] | Get the left‐hand side expression of the binary operator. | xref:llvm/MCExpr/getLoc.adoc[`getLoc`] | Return the source location of this expression. | xref:llvm/MCBinaryExpr/getOpcode.adoc[`getOpcode`] | Get the kind of this binary expression. | xref:llvm/MCBinaryExpr/getRHS.adoc[`getRHS`] | Get the right‐hand side expression of the binary operator. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/MCBinaryExpr/classof.adoc[`classof`] | Return true if `E` is a binary expression. | xref:llvm/MCBinaryExpr/create.adoc[`create`] | Create a binary expression with operator `Op` applied to `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createAShr.adoc[`createAShr`] | Create an arithmetic right shift of `LHS` by `RHS.` | xref:llvm/MCBinaryExpr/createAdd.adoc[`createAdd`] | Create an addition of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createAnd.adoc[`createAnd`] | Create a bitwise AND of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createDiv.adoc[`createDiv`] | Create a signed division of `LHS` by `RHS.` | xref:llvm/MCBinaryExpr/createEQ.adoc[`createEQ`] | Create an equality comparison of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createGT.adoc[`createGT`] | Create a signed greater‐than comparison of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createGTE.adoc[`createGTE`] | Create a signed greater‐than‐or‐equal comparison of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createLAnd.adoc[`createLAnd`] | Create a logical AND of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createLOr.adoc[`createLOr`] | Create a logical OR of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createLShr.adoc[`createLShr`] | Create a logical right shift of `LHS` by `RHS.` | xref:llvm/MCBinaryExpr/createLT.adoc[`createLT`] | Create a signed less‐than comparison of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createLTE.adoc[`createLTE`] | Create a signed less‐than‐or‐equal comparison of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createMod.adoc[`createMod`] | Create a signed remainder of `LHS` divided by `RHS.` | xref:llvm/MCBinaryExpr/createMul.adoc[`createMul`] | Create a multiplication of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createNE.adoc[`createNE`] | Create a not‐equal comparison of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createOr.adoc[`createOr`] | Create a bitwise OR of `LHS` and `RHS.` | xref:llvm/MCBinaryExpr/createShl.adoc[`createShl`] | Create a left shift of `LHS` by `RHS.` | xref:llvm/MCBinaryExpr/createSub.adoc[`createSub`] | Create a subtraction of `RHS` from `LHS.` | xref:llvm/MCBinaryExpr/createXor.adoc[`createXor`] | Create a bitwise XOR of `LHS` and `RHS.` | xref:llvm/MCExpr/evaluateSymbolicAdd.adoc[`evaluateSymbolicAdd`] | Add two symbolic relocatable values, folding resolved differences when possible. |=== == Protected Type Aliases [cols="1,4"] |=== | Name| Description | xref:llvm/MCExpr/Spec.adoc[`Spec`] | Relocation specifier type stored in subclass data. |=== == Protected Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/MCExpr/evaluateAsRelocatableImpl.adoc[`evaluateAsRelocatableImpl`] | Evaluate this expression as a relocatable value. | xref:llvm/MCExpr/getSubclassData.adoc[`getSubclassData`] | Return subclass‐specific data stored in this expression. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#