1%default {"result":"","rem":"0"}
2/*
3 * 32-bit div/rem "lit8" binary operation.  Handles special case of
4 * op0=minint & op1=-1
5 */
6    /* div/rem/lit8 vAA, vBB, #+CC */
7    movzbq  2(rPC), %rax                    # eax <- BB
8    movsbl  3(rPC), %ecx                    # ecx <- ssssssCC
9    GET_VREG  %eax, %rax                    # eax <- rBB
10    testl   %ecx, %ecx
11    je      common_errDivideByZero
12    cmpl    $$-1, %ecx
13    je      2f
14    cdq                                     # rax <- sign-extended of eax
15    idivl   %ecx
161:
17    SET_VREG $result, rINSTq                # vA <- result
18    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
192:
20    .if $rem
21    xorl    $result, $result
22    .else
23    negl    $result
24    .endif
25    jmp     1b
26