Instruction opcodes and their operands are defined in opcodes.plist. This file contains an array of instruction dictionaries containing the following fields.
- Mnemonic: String with the instruction mnemonic. Doesn't have to be unique.
- Comment: String with an optional comment.
- Release: An array of ISA releases this instruction definition belongs to. Mustn't be empty.
- Branchtype: Optional string specifying a branch type.
ALWAYSunconditional jumpEQUAL_ZEROGREATER_EQUALGREATER_EQUAL_ZEROGREATER_ZEROLESS_EQUAL_ZEROLESSLESS_ZEROEQUALNOT_EQUALNOT_EQUAL_ZEROOVERFLOWNO_OVERFLOWCALLRETTRUEFALSE
- Format: A string describing the instruction format. Consisting of bit range definitions describing the instruction parts.
- Instruction parts are separated by one space.
- Each instruction part must have at least a bit range defined.
- Bit range(s) have the form of
n..mwith n > m >=0 denoting the leftmost (n) und rightmost (m) bit.- a single bit has to be denoted as
n..n - non-continuous bit ranges can be expressed as a comma-separated list, e.g.
31..29,26..23
- a single bit has to be denoted as
- Values: values follow a bit range and can be in decimal
=1or hex notation=0x1- e.g.
31..26=0x14
- e.g.
- If operand is branch destination:
B - Operand position:
#nwith n > 0- If operand is read and/or written:
#1w,#2r,#3rw - Operands without a position are not considered for output.
- If operand is read and/or written:
- Operand type
rtGeneral Purpose Register (GPR)rsGPRrdGPRcoprtCoprocessor Register (CPR)coprsCPRcoprdCPRhwrdHardware Register (HWR)ftFloating Point Register (FPR)fsFPRfdFPRuimmunsigned immediate of size determined by bit range length.imm1616-bit signed immediateimm16sl1616-bit signed immediate shifted left by 16 bitsimm19sl219-bit signed immediate shifted left by 2 bitsfccFPU controlffmtFPU formatfcondFPU conditionfcondnFPU condition (MIPS32R6)basebase register for memorycopbasecop base register for memoryindexindex register for memoryoff99-bit offsetoff1111-bit offsetoff1616-bit offsetoff1818-bit offsetoff2121-bit offsetoff2323-bit offsetoff2828-bit offsetsizecode10code20possizejmpadrignoredbpsasa+1opmsbmsbdmsbminus32msbdminus32lsblsbminus32ignoredignored value
- Idiom: Optional boolean for an idiom of another instruction.
- Conditions: Optional conditions that must be satisfied, e.g. for MIPS32R6.
- compare operand and operand, or
#1==#2
- compare operand and value
#1!=0
- operands are designated by their position from the left inside the format string
0..n-1 - compare operations are:
==!=>
- compare operand and operand, or