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:
It has encodings from the following instruction sets: A32 ( A1 and A2 ) and T32 ( T1 and T2 ) .
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> |
VPUSH{<c>}{<q>}{.<size>} <dreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <dreglist>
and is always the preferred disassembly.
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 |
VPUSH{<c>}{<q>}{.<size>} <sreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <sreglist>
and is always the preferred disassembly.
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> |
VPUSH{<c>}{<q>}{.<size>} <dreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <dreglist>
and is always the preferred disassembly.
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 |
VPUSH{<c>}{<q>}{.<size>} <sreglist>
is equivalent to
VSTMDB{<c>}{<q>}{.<size>} SP!, <sreglist>
and is always the preferred disassembly.
<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. |
The description of VSTM, VSTMDB, VSTMIA gives the operational pseudocode for this instruction.
If CPSR.DIT is 1, the timing of this instruction is insensitive to the value of the data being loaded or stored.
Internal version only: isa v01_31, pseudocode v2023-06_rel, sve v2023-06_rel ; Build timestamp: 2023-07-04T18:06
Copyright © 2010-2023 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.