Enum armv4t::Operation
[−]
[src]
pub enum Operation { Alu(DataOp, SetFlags, Registers, Shift), StatusTransfer(TransferFlags, u8, Registers, Shift), Multiply(MultiplyFlags, Registers), MultiplyLong(MultiplyFlags, Registers), SingleDataSwap(TransferFlags, Registers), BranchExchange(Registers), HalfwordDataTransfer(TransferFlags, Registers, Shift), SingleDataTransfer(TransferFlags, Registers, Shift), Undefined, BlockDataTransfer(TransferFlags, Registers, u16), Branch(Condition, Link, i32), CoprocessorDataTransfer(TransferFlags, u8, Registers, u32), CoprocessorDataOperation(u8, u8, u8, Registers), CoprocessorRegisterTransfer(TransferFlags, u8, u8, u8, Registers), SoftwareInterrupt(u32), }
Processor operations
Operations that the processor can perform.
Variants
Alu(DataOp, SetFlags, Registers, Shift)
Data processing
Perform an arithmetic or logical calculation on data contained in registers or encoded in the instruction.
StatusTransfer(TransferFlags, u8, Registers, Shift)
Status register transfer
Perform a transfer of a value between a register and a status register.
NOTE: The u8 member is the mask of the portions of the status register that should be transferred.
Multiply(MultiplyFlags, Registers)
Multiply
Perform integer multiplication on data contained in registers.
MultiplyLong(MultiplyFlags, Registers)
Multiply long
Perform integer multiplication on data contained in registers, producing a 64-bit result.
SingleDataSwap(TransferFlags, Registers)
Single Data Swap
Perform a swap between a register and a memory address.
BranchExchange(Registers)
Branch and Exchange
Perform a branch by setting the program counter. The instruction set can also be changed based on the contents of the new PC.
HalfwordDataTransfer(TransferFlags, Registers, Shift)
Halfword and signed data transfer
Perform a transfer of a halfword, byte, signed halfword, or signed halfword value between a register and memory.
SingleDataTransfer(TransferFlags, Registers, Shift)
Single data transfer
Perform a transfer of a word, or byte value between a register and memory.
Undefined
Undefined
Execute the undefined instruction trap.
BlockDataTransfer(TransferFlags, Registers, u16)
Block data transfer
Perform a transfer of a subset of visible registers between the register bank and memory.
Branch(Condition, Link, i32)
Conditional branch
Perform a branch by adding an offset to the program counter.
CoprocessorDataTransfer(TransferFlags, u8, Registers, u32)
Coprocessor data transfer
Perform a transfer between a subset of a coprocessor's registers and memory.
NOTE: The u8 member is the coprocessor number and the u32 member is the offset.
CoprocessorDataOperation(u8, u8, u8, Registers)
Coprocessor data operation
Perform a request for an operation on a coprocessor.
NOTE: The u8 members are, in order: coprocessor number, coprocessor opcode, coprocessor information.
CoprocessorRegisterTransfer(TransferFlags, u8, u8, u8, Registers)
Coprocessor register transfer
Perform a transfer between an ARM register and a coprocessor register, with an optional transformation.
NOTE: The u8 members are, in order: coprocessor number, coprocessor opcode, coprocessor information.
SoftwareInterrupt(u32)
Software interrupt
Execute the software interrupt trap.
Trait Implementations
impl Clone for Operation
[src]
fn clone(&self) -> Operation
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more