Page 312 - ARM 64 Bit Assembly Language
P. 312

Floating point 301


                    4     stur   s0,[x1,#4]!  // Add 4 to x1, then load s0 from
                    5                        // the resulting address


                     9.4.3 Load/store pair

                     These instructions are used to load or store two registers at a time. This can be useful for mov-
                     ing registers onto the stack or for copying data. These two instructions are particularly useful
                     for transferring data in a load-store architecture because each instruction can move twice as
                     much information as the ldr and str instructions.

                     ldp     Load Pair, and
                     stp     Store Pair.

                     9.4.3.1 Syntax

                          <op>   St, St2, <addr>
                          <op>   Dt, Dt2, <addr>
                          <op>   Qt, Qt2, <addr>


                     •   <op> is either ldp or stp.
                     •   <addr> is 7 bits Pre-indexed, Post-indexed, or Signed immediate.
                     •   Signed immediate Xt range: [-0x200, 0x1f8]. Wt range: [-0x100, 0xfc].

                     9.4.3.2 Operations

                       Name     Effect                               Description
                       ldp      Yt ← Mem[addr]                       Load register pair from memory
                                Yt2 ← Mem[addr+size(Yt)]
                       stp      Mem[addr] ← Yt                       Store register pair in memory
                                Mem[addr+size(Yt)] ← Yt2



                     9.4.4 Load/store non-temporal pair

                     These are load/store pair instructions which also provide a hint to the memory system that
                     the data being accessed is “non-temporal.” Non-temporal data is data which is unlikely to be
                     referenced again in the near future (such as streaming media), and need not be retained in data
                     caches.
                     ldnp    Load Non-Temporal Pair, and
                     stnp    Store Non-Temporal Pair.
   307   308   309   310   311   312   313   314   315   316   317