|
|
T2
T2
T2
T2
|
BFC Rd, #<lsb>, #<width>
BFI Rd, Rn, #<lsb>, #<width> SBFX Rd, Rn, #<lsb>,
#<width> UBFX Rd, Rn, #<lsb>, #<width>
|
|
|
|
|
|
PKHBT Rd, Rn, Rm{, LSL #<sh>} PKHTB Rd, Rn, Rm{, ASR
#<sh>}
|
Rd[15:0] := Rn[15:0], Rd[31:16] := (Rm LSL sh)[31:16]. sh 0-31.
Rd[31:16] := Rn[31:16], Rd[15:0] := (Rm ASR sh)[15:0]. sh 1-32. |
|
Signed extend
|
|
|
SXTH Rd, Rm{, ROR #<sh>} SXTB16 Rd, Rm{, ROR #<sh>}
SXTB Rd, Rm{, ROR #<sh>}
|
|
|
Unsigned extend
|
Halfword to word
Two bytes to halfwords
|
|
UXTB Rd, Rm{, ROR #<sh>}
|
Rd[31:0] := ZeroExtend((Rm ROR (8 * sh))[15:0]). sh 0-3.
|
|
|
Halfword to word, add
Two bytes to halfwords, add
Byte to word, add
|
|
|
Rd[31:0] := Rn[31:0] + SignExtend((Rm ROR (8 * sh))[15:0]). sh
0-3.
Rd[31:16] := Rn[31:16] + SignExtend((Rm ROR (8 * sh))[23:16]),
Rd[15:0] := Rn[15:0] + SignExtend((Rm ROR (8 * sh))[7:0]). sh 0-3.
Rd[31:0] := Rn[31:0] + SignExtend((Rm ROR (8 * sh))[7:0]). sh 0-3.
|
|
|
|
6 |
UXTAH Rd, Rn, Rm{, ROR #<sh>}
UXTAB16 Rd, Rn, Rm{, ROR #<sh>}
|
|
|
|
Bits in word
Bytes in word
Bytes in both halfwords Bytes in low halfword, sign extend
|
T2
6
6
6 |
RBIT Rd, Rm
REV Rd, Rm
REV16 Rd, Rm
REVSH Rd, Rm
|
|
|
|
|
6 |
SEL Rd, Rn, Rm
|
Rd[7:0] := Rn[7:0] if GE[0] = 1, else Rd[7:0] := Rm[7:0]
Bits[15:8], [23:16], [31:24] selected similarly by GE[1], GE[2],
GE[3]
|
|
|
|
T2 |
|
The first instruction after IT has condition cond. The following
instructions have condition cond if the corresponding letter is T, or
the inverse of cond if the corresponding letter is E.
See Table Condition Field for available condition
codes.
|
T U |
|
|
5
5J
T2
T2
T2 |
B <label>
BL <label>
BX Rm
BLX <label>
|
label is this instruction ±32MB (T2: ±16MB).
LR := address of next instruction, PC := Rm[31:1]. Change to Thumb if
Rm[0] is 1, to ARM if Rm[0] is 0.
|
N
C
|
Move to or from PSR
|
PSR to register
register to PSR
immediate to PSR
|
|
|
|
|
|
Change processor mode
Set endianness
|
|
|
|
U, N U, N U
U, N |