1%default {"result":"%eax"}
2/*
3 * Generic 32-bit "shift/2addr" operation.
4 */
5    /* shift/2addr vA, vB */
6    movzx   rINSTbl, %ecx                   # eax <- BA
7    sarl    $$4, %ecx                       # ecx <- B
8    GET_VREG %ecx, %ecx                     # eax <- vBB
9    andb    $$0xf, rINSTbl                  # rINST <- A
10    GET_VREG %eax, rINST                    # eax <- vAA
11    $instr                                  # ex: sarl %cl, %eax
12    SET_VREG $result, rINST
13    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
14