Home | History | Annotate | Download | only in arm64
      1 %default {"srcreg":"s0", "tgtreg":"d0"}
      2     /*
      3      * Generic 32bit-to-64bit floating point unary operation.  Provide an
      4      * "instr" line that specifies an instruction that performs "$tgtreg = op $srcreg".
      5      *
      6      * For: int-to-double, float-to-double, float-to-long
      7      */
      8     /* unop vA, vB */
      9     lsr     w3, wINST, #12              // w3<- B
     10     lsr     w4, wINST, #8               // w4<- A+
     11     GET_VREG $srcreg, w3
     12     FETCH_ADVANCE_INST 1                // advance rPC, load wINST
     13     and     w4, w4, #15                 // w4<- A
     14     $instr                              // d0<- op
     15     GET_INST_OPCODE ip                  // extract opcode from wINST
     16     SET_VREG_WIDE $tgtreg, w4           // vA<- d0
     17     GOTO_OPCODE ip                      // jump to next instruction
     18