VPUSH
Push SIMD&FP registers to Stack stores multiple consecutive registers from the Advanced SIMD and floating-point register file to the stack.
This is an alias of VSTM, VSTMDB, VSTMIA. This means:
- The encodings in this description are named to match the encodings of VSTM, VSTMDB, VSTMIA.
- The description of VSTM, VSTMDB, VSTMIA gives the operational pseudocode for this instruction.
It has encodings from the following instruction sets: A32 ( A1 and A2 ) and T32 ( T1 and T2 ) .
A1
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
!= 1111 | 1 | 1 | 0 | 1 | 0 | D | 1 | 0 | 1 | 1 | 0 | 1 | Vd | 1 | 0 | 1 | 1 | imm8<7:1> | 0 | ||||||||||||
cond | P | U | W | Rn | imm8<0> |
Decrement Before
VPUSH{<c>}{<q>}{.<size>} <dreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <dreglist>
and is always the preferred disassembly.
A2
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
!= 1111 | 1 | 1 | 0 | 1 | 0 | D | 1 | 0 | 1 | 1 | 0 | 1 | Vd | 1 | 0 | 1 | 0 | imm8 | |||||||||||||
cond | P | U | W | Rn |
Decrement Before
VPUSH{<c>}{<q>}{.<size>} <sreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <sreglist>
and is always the preferred disassembly.
T1
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | D | 1 | 0 | 1 | 1 | 0 | 1 | Vd | 1 | 0 | 1 | 1 | imm8<7:1> | 0 | |||||||||
P | U | W | Rn | imm8<0> |
Decrement Before
VPUSH{<c>}{<q>}{.<size>} <dreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <dreglist>
and is always the preferred disassembly.
T2
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | D | 1 | 0 | 1 | 1 | 0 | 1 | Vd | 1 | 0 | 1 | 0 | imm8 | ||||||||||
P | U | W | Rn |
Decrement Before
VPUSH{<c>}{<q>}{.<size>} <sreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <sreglist>
and is always the preferred disassembly.
Assembler Symbols
<c> |
<q> |
<size> |
An optional data size specifier. If present, it must be equal to the size in bits, 32 or 64, of the registers being transferred. |
Operation
The description of VSTM, VSTMDB, VSTMIA gives the operational pseudocode for this instruction.