Home | History | Annotate | Download | only in arm64
      1     /*
      2      * Generic 32-bit floating point "/2addr" binary operation.  Provide
      3      * an "instr" line that specifies an instruction that performs
      4      * "s2 = s0 op s1".
      5      *
      6      * For: add-float/2addr, sub-float/2addr, mul-float/2addr, div-float/2addr
      7      */
      8     /* binop/2addr vA, vB */
      9     lsr     w3, wINST, #12              // w3<- B
     10     ubfx    w9, wINST, #8, #4           // w9<- A
     11     GET_VREG s1, w3
     12     GET_VREG s0, w9
     13     $instr                              // s2<- op
     14     FETCH_ADVANCE_INST 1                // advance rPC, load rINST
     15     GET_INST_OPCODE ip                  // extract opcode from rINST
     16     SET_VREG s2, w9
     17     GOTO_OPCODE ip                      // jump to next instruction
     18