extr
Extract
EXTR <Wd>, <Wn>, <Wm>, #<lsb>
Extracts a register from a pair of registers.
Pseudocode Operation
temp ← (Wn[31:0] << 32) | Wm[31:0]
Wd ← temp[(lsb + 31):lsb]
Example
EXTR w0, w1, w2, #0
Reference
View in Arm A64 ISA Reference ↗
Arm A64 ISA
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x13800000 | EXTR <Wd>, <Wn>, <Wm>, #<lsb> | A64 | 0 | 00 | 100111 | 0 | 0 | Rm | imms | Rn | Rd | ||
| 0x93C00000 | EXTR <Xd>, <Xn>, <Xm>, #<lsb> | A64 | 1 | 00 | 100111 | 1 | 0 | Rm | imms | Rn | Rd |
Description
Extract register extracts a register from a pair of registers.
Operation
bits(datasize) result; bits(datasize) operand1 = X[n, datasize]; bits(datasize) operand2 = X[m, datasize]; bits(2*datasize) concat = operand1:operand2; result = concat<(lsb+datasize)-1:lsb>; X[d, datasize] = result;