1%default {"opcode":"shl"}
2    /*
3     * 64-bit shift operation.
4     *
5     * For: shl-long, shr-long, ushr-long
6     */
7    /* binop vAA, vBB, vCC */
8    FETCH w0, 1                         // w0<- CCBB
9    lsr      w3, wINST, #8               // w3<- AA
10    lsr      w2, w0, #8                  // w2<- CC
11    GET_VREG w2, w2                     // w2<- vCC (shift count)
12    and      w1, w0, #255                // w1<- BB
13    GET_VREG_WIDE x1, w1                // x1<- vBB
14    FETCH_ADVANCE_INST 2                // advance rPC, load rINST
15    $opcode  x0, x1, x2                 // Do the shift. Only low 6 bits of x2 are used.
16    GET_INST_OPCODE ip                  // extract opcode from rINST
17    SET_VREG_WIDE x0, w3                // vAA<- x0
18    GOTO_OPCODE ip                      // jump to next instruction
19    /* 11-14 instructions */
20