05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Instruction Details<br />

A8.6.355 VPUSH<br />

Vector Push stores multiple consecutive extension registers to the stack.<br />

Encoding T1 / A1 VFPv2, VFPv3, Advanced SIMD<br />

VPUSH is consecutive 64-bit registers<br />

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<br />

1 1 1 0 1 1 0 1 0 D 1 0 1 1 0 1 Vd 1 0 1 1 imm8<br />

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<br />

cond 1 1 0 1 0 D 1 0 1 1 0 1 Vd 1 0 1 1 imm8<br />

single_regs = FALSE; d = UInt(D:Vd); imm32 = ZeroExtend(imm8:’00’, 32);<br />

regs = UInt(imm8) DIV 2; // If UInt(imm8) is odd, see “FSTMX”.<br />

if regs == 0 || regs > 16 || (d+regs) > 32 then UNPREDICTABLE;<br />

Encoding T2 / A2 VFPv2, VFPv3<br />

VPUSH is consecutive 32-bit registers<br />

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<br />

1 1 1 0 1 1 0 1 0 D 1 0 1 1 0 1 Vd 1 0 1 0 imm8<br />

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<br />

cond 1 1 0 1 0 D 1 0 1 1 0 1 Vd 1 0 1 0 imm8<br />

single_regs = TRUE; d = UInt(Vd:D);<br />

imm32 = ZeroExtend(imm8:’00’, 32); regs = UInt(imm8);<br />

if regs == 0 || regs > 16 || (d+regs) > 32 then UNPREDICTABLE;<br />

FSTMX Encoding T1/A1 behaves as described by the pseudocode if imm8 is odd.<br />

However, there is no UAL syntax for such encodings <strong>and</strong> their use is deprecated.<br />

For more information, see FLDMX, FSTMX on page A8-101.<br />

A8-696 Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DDI 0406B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!