asmjit::arm::Mem Class Reference
Inheritance diagram for asmjit::arm::Mem:
asmjit::BaseMem asmjit::Operand asmjit::Operand_

Memory operand (ARM).

Member Functions

Construction & Destruction
Overloaded Operators
Clone
Base & Index
ARM Specific Features
- Public Member Functions inherited from asmjit::BaseMem
- Public Member Functions inherited from asmjit::Operand
- Public Member Functions inherited from asmjit::Operand_

Additional Inherited Members

- Public Attributes inherited from asmjit::Operand_
- Public Types inherited from asmjit::Operand_
- Static Public Member Functions inherited from asmjit::Operand_

Constructor & Destructor Documentation

arm::Mem::Mem()constexprconstexprnoexcept◆ 

Construct a default Mem operand, that points to [0].

Member Function Documentation

Mem arm::Mem::clone() constconstexprconstexprnoexcept◆ 

Clones the memory operand.

Mem arm::Mem::cloneAdjusted(int64_t off) constnoexcept◆ 

Gets new memory operand adjusted by off.

Mem arm::Mem::pre() constnoexcept[1/2]◆ 

Clones the memory operand and makes it pre-index.

Mem arm::Mem::pre(int64_t off) constnoexcept[2/2]◆ 

Clones the memory operand, applies a given offset off and makes it pre-index.

Mem arm::Mem::post() constnoexcept[1/2]◆ 

Clones the memory operand and makes it post-index.

Mem arm::Mem::post(int64_t off) constnoexcept[2/2]◆ 

Clones the memory operand, applies a given offset off and makes it post-index.

Reg arm::Mem::baseReg() constnoexcept◆ 

Converts memory baseType and baseId to arm::Reg instance.

The memory must have a valid base register otherwise the result will be wrong.

Reg arm::Mem::indexReg() constnoexcept◆ 

Converts memory indexType and indexId to arm::Reg instance.

The memory must have a valid index register otherwise the result will be wrong.

OffsetMode arm::Mem::offsetMode() constconstexprconstexprnoexcept◆ 

Gets offset mode.

void arm::Mem::setOffsetMode(OffsetMode mode)noexcept◆ 

Sets offset mode to mode.

void arm::Mem::resetOffsetMode()noexcept◆ 

Resets offset mode to default (fixed offset, without write-back).

bool arm::Mem::isFixedOffset() constconstexprconstexprnoexcept◆ 

Tests whether the current memory offset mode is fixed (see OffsetMode::kFixed).

bool arm::Mem::isPreOrPost() constconstexprconstexprnoexcept◆ 

Tests whether the current memory offset mode is either pre-index or post-index (write-back is used).

bool arm::Mem::isPreIndex() constconstexprconstexprnoexcept◆ 

Tests whether the current memory offset mode is pre-index (write-back is used).

bool arm::Mem::isPostIndex() constconstexprconstexprnoexcept◆ 

Tests whether the current memory offset mode is post-index (write-back is used).

void arm::Mem::makePreIndex()noexcept◆ 

Sets offset mode of this memory operand to pre-index (write-back is used).

void arm::Mem::makePostIndex()noexcept◆ 

Sets offset mode of this memory operand to post-index (write-back is used).

ShiftOp arm::Mem::shiftOp() constconstexprconstexprnoexcept◆ 

Gets shift operation that is used by index register.

void arm::Mem::setShiftOp(ShiftOp sop)noexcept◆ 

Sets shift operation that is used by index register.

void arm::Mem::resetShiftOp()noexcept◆ 

Resets shift operation that is used by index register to LSL (default value).

bool arm::Mem::hasShift() constconstexprconstexprnoexcept◆ 

Gets whether the memory operand has shift (aka scale) constant.

uint32_t arm::Mem::shift() constconstexprconstexprnoexcept◆ 

Gets the memory operand's shift (aka scale) constant.

void arm::Mem::setShift(uint32_t shift)noexcept[1/2]◆ 

Sets the memory operand's shift (aka scale) constant.

void arm::Mem::setShift(Shift shift)noexcept[2/2]◆ 

Sets the memory operand's shift and shift operation.

void arm::Mem::resetShift()noexcept◆ 

Resets the memory operand's shift (aka scale) constant to zero.

void BaseMem::setIndex(const BaseReg& index)noexcept◆ 

Sets the index register to type and id of the given index operand.