1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed"
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%default {"routine":"__divdi3","special":"$0x80000000"}
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* div/2addr vA, vB */
4f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    movzbl    rINSTbl,%eax
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    shrl      $$4,%eax                  # eax<- B
6f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    andb      $$0xf,rINSTbl             # rINST<- A
7a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    SPILL(rIBASE)                       # save rIBASE/%edx
8a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GET_VREG_WORD rIBASE %eax 0
9f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_WORD %eax %eax 1
10a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    movl     rIBASE,OUT_ARG2(%esp)
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    testl    %eax,%eax
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    je       .L${opcode}_check_zero
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    cmpl     $$-1,%eax
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    je       .L${opcode}_check_neg1
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_notSpecial:
16a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GET_VREG_WORD rIBASE rINST 0
17f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_WORD %ecx rINST 1
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_notSpecial1:
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl     %eax,OUT_ARG3(%esp)
20a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    movl     rIBASE,OUT_ARG0(%esp)
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl     %ecx,OUT_ARG1(%esp)
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    call     $routine
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_finish:
24a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    SET_VREG_WORD rIBASE rINST 1
25a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    UNSPILL(rIBASE)                    # restore rIBASE/%edx
26f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    SET_VREG_WORD %eax rINST 0
27a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    FETCH_INST_OPCODE 1 %ecx
28f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    ADVANCE_PC 1
29a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GOTO_NEXT_R %ecx
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_check_zero:
32a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    testl   rIBASE,rIBASE
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jne     .L${opcode}_notSpecial
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jmp     common_errDivideByZero
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_check_neg1:
36a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    testl   rIBASE,%eax
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jne     .L${opcode}_notSpecial
38a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GET_VREG_WORD rIBASE rINST 0
39f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_WORD %ecx rINST 1
40a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    testl    rIBASE,rIBASE
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jne      .L${opcode}_notSpecial1
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    cmpl     $$0x80000000,%ecx
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jne      .L${opcode}_notSpecial1
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* minint / -1, return minint on div, 0 on rem */
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    xorl     %eax,%eax
46a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    movl     $special,rIBASE
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jmp      .L${opcode}_finish
48