Module inst
Expand description
This module defines aarch64-specific machine instruction types.
Modules§
- AArch64 ISA definitions: instruction arguments.
- AArch64 ISA: binary code emission.
- AArch64 ISA definitions: immediate constants.
Structs§
- Advanced SIMD modified immediate as used by the vector variant of FMOV.
- Advanced SIMD modified immediate as used by MOVI/MVNI.
- Floating-point unit immediate left shift.
- Floating-point unit immediate right shift.
- A shifted immediate value in ‘imm12’ format: supports 12 bits, shifted left by 0 or 12 places.
- An immediate for logical instructions.
- An immediate for shift instructions.
- A 16-bit immediate for a MOVZ instruction, with a {0,16,32,48}-bit shift.
- An immediate that represents the NZCV flags.
- Additional information for
return_call[_ind]
instructions, left out of line to lower the size of theInst
enum. - a 9-bit signed offset.
- A signed, scaled 7-bit offset.
- A shift operator with an amount, guaranteed to be within range.
- A shift operator amount.
- An unsigned 5-bit immediate.
- An unsigned, scaled 12-bit offset.
Enums§
- Internal type ALUOp: defined at src/isa/aarch64/inst.isle line 1016.
- Internal type ALUOp3: defined at src/isa/aarch64/inst.isle line 1054.
- Internal type AMode: defined at src/isa/aarch64/inst.isle line 1140.
- Internal type APIKey: defined at src/isa/aarch64/inst.isle line 1771.
- Internal type AtomicRMWLoopOp: defined at src/isa/aarch64/inst.isle line 1755.
- Internal type AtomicRMWOp: defined at src/isa/aarch64/inst.isle line 1740.
- Internal type BitOp: defined at src/isa/aarch64/inst.isle line 1123.
- A branch target. Either unresolved (basic-block index) or resolved (offset from end of current instruction).
- Internal type BranchTargetType: defined at src/isa/aarch64/inst.isle line 1784.
- Condition for conditional branches.
- The kind of conditional branch: the common-case-optimized “reg-is-zero” / “reg-is-nonzero” variants, or the generic one that tests the machine condition codes.
- An extend operator for a register.
- Internal type FPUOp1: defined at src/isa/aarch64/inst.isle line 1402.
- Internal type FPUOp2: defined at src/isa/aarch64/inst.isle line 1412.
- Internal type FPUOp3: defined at src/isa/aarch64/inst.isle line 1423.
- A floating-point unit (FPU) operation with two args, a register and an immediate.
- A floating-point unit (FPU) operation with two args, a register and an immediate that modifies its dest (so takes that input value as a separate virtual register).
- Internal type FpuRoundMode: defined at src/isa/aarch64/inst.isle line 1463.
- Internal type FpuToIntOp: defined at src/isa/aarch64/inst.isle line 1436.
- Internal type MInst: defined at src/isa/aarch64/inst.isle line 1.
- Internal type IntToFpuOp: defined at src/isa/aarch64/inst.isle line 1449.
- Different forms of label references for different instruction formats.
- A reference to some memory address.
- Internal type MoveWideOp: defined at src/isa/aarch64/inst.isle line 1066.
- Type used to communicate the operand size of a machine instruction, as AArch64 has 32- and 64-bit variants of many instructions (and integer registers).
- Internal type PairAMode: defined at src/isa/aarch64/inst.isle line 1242.
- Type used to communicate the size of a scalar SIMD & FP operand.
- A shift operator for a register or immediate.
- Internal type TestBitAndBranchKind: defined at src/isa/aarch64/inst.isle line 1266.
- Internal type VecALUModOp: defined at src/isa/aarch64/inst.isle line 1572.
- Internal type VecALUOp: defined at src/isa/aarch64/inst.isle line 1485.
- Internal type VecExtendOp: defined at src/isa/aarch64/inst.isle line 1476.
- Internal type VecLanesOp: defined at src/isa/aarch64/inst.isle line 1713.
- Internal type VecMisc2: defined at src/isa/aarch64/inst.isle line 1583.
- Internal type VecPairOp: defined at src/isa/aarch64/inst.isle line 1694.
- Internal type VecRRLongOp: defined at src/isa/aarch64/inst.isle line 1644.
- Internal type VecRRNarrowOp: defined at src/isa/aarch64/inst.isle line 1659.
- Internal type VecRRPairLongOp: defined at src/isa/aarch64/inst.isle line 1702.
- Internal type VecRRRLongModOp: defined at src/isa/aarch64/inst.isle line 1685.
- Internal type VecRRRLongOp: defined at src/isa/aarch64/inst.isle line 1673.
- Internal type VecShiftImmModOp: defined at src/isa/aarch64/inst.isle line 1733.
- Internal type VecShiftImmOp: defined at src/isa/aarch64/inst.isle line 1722.
- Type used to communicate the size of a vector operand.