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