Page 320 - ARM 64 Bit Assembly Language
P. 320

Floating point 309

                     9.7.2.3 Examples

                    1     fabs    d3, d5   // Store absolute value of d1 in d3
                    2     fneg    s15, s15  // Negate s15


                     9.7.3 Add, subtract, multiply, and divide

                     The basic mathematical operations require two source registers and one destination register.
                     There are five basic mathematical operations:

                     fadd    Add,
                     fsub    Subtract,
                     fmul    Multiply,
                     fnmul   Multiply and Negate, and
                     fdiv    Divide.


                     9.7.3.1 Syntax
                          f<op>    Fd, Fn, Fm


                     •   <op> is one of add, sub, mul, nmul,or div.
                     •   Fd, Fn,and Fm must specify either three single precision registers or three double preci-
                         sion registers.


                     9.7.3.2 Operations
                       Name     Effect                               Description

                       fadd     Fd ← Fn + Fm                         Add
                       fsub     Fd ← Fn − Fm                         Subtract
                       fmul     Fd ← Fn × Fm                         Multiply
                       fnmul    Fd ←−(Fn × Fm)                       Multiply and Negate
                       fdiv     Fd ← Fn ÷ Fm                         Divide

                     9.7.3.3 Examples

                    1     fadd   d0, d1, d2   // d0 <- d1 + d2
                    2     fadd   s0, s1, s2   // s0 <- s1 + s2
                    3     fnmul  s10, s10, s14 // s10 <- -(s10 * s14)
                    4     fdiv   d0, d7, d8   // d0 <- d7 / d8
   315   316   317   318   319   320   321   322   323   324   325