Page 310 - ARM 64 Bit Assembly Language
P. 310

Floating point 299

                     9.4 Load/store instructions


                     The FP instruction set provides several instructions for moving data between memory and
                     the FP registers. There are instructions for loading and storing single and double precision
                     registers, and for moving multiple registers to or from memory. All of the load and store in-
                     structions require a memory address to be in one of the ARM integer registers. The available
                     memory addressing modes are identical to the integer load and store instructions.



                     9.4.1 Load/store single register


                     The single register load/store instructions allow moving data between memory and an FP/-
                     NEON register. These instructions can load/store a byte, half-word, word (single precision),
                     double-word (double precision), or a quad-word. The following instructions are used to load
                     or store a single FP/NEON register:

                     ldr     Load FP/NEON Register, and
                     str     Store FP/NEON Register.


                     9.4.1.1 Syntax


                          <op>   Bt, <addr>
                          <op>   Ht, <addr>
                          <op>   St, <addr>
                          <op>   Dt, <addr>
                          <op>   Qt, <addr>


                     •   <op> is either ldr or str.
                     •   <addr> is one of the address specifiers described in Chapter 3, Section 3.3.3 on Page 61.
                         The valid shift amount for the Register Offset mode depends on the size of the register
                         being loaded or stored.


                     9.4.1.2 Operations

                       Name     Effect                               Description
                       ldr      Yt ← Mem[addr]                       Load Yt,where Yt is any FP register.
                       str      Mem[addr] ← Yt                       Store Yt,where Yt is any FP register.
   305   306   307   308   309   310   311   312   313   314   315