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 */ 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movzbl rINST_HI,%eax 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project shrl $$4,%eax # eax<- B 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movzbl rINST_HI,rINST_FULL 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project andb $$0xf,rINST_LO # rINST_FULL<- A 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SPILL(rPC) 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GET_VREG_WORD(rPC,%eax,0) 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GET_VREG_WORD(%eax,%eax,1) 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movl rPC,OUT_ARG2(%esp) 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project testl %eax,%eax 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project je .L${opcode}_check_zero 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project cmpl $$-1,%eax 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project je .L${opcode}_check_neg1 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_notSpecial: 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GET_VREG_WORD(rPC,rINST_FULL,0) 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GET_VREG_WORD(%ecx,rINST_FULL,1) 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_notSpecial1: 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jmp .L${opcode}_continue 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%break 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_continue: 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movl %eax,OUT_ARG3(%esp) 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movl rPC,OUT_ARG0(%esp) 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movl %ecx,OUT_ARG1(%esp) 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project call $routine 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_finish: 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movl rINST_FULL,%ecx 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SET_VREG_WORD(rPC,%ecx,1) 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project UNSPILL(rPC) 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SET_VREG_WORD(%eax,%ecx,0) 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FETCH_INST_WORD(1) 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ADVANCE_PC(1) 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GOTO_NEXT 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_check_zero: 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project testl rPC,rPC 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jne .L${opcode}_notSpecial 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project UNSPILL(rPC) 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jmp common_errDivideByZero 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_check_neg1: 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project testl rPC,%eax 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jne .L${opcode}_notSpecial 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GET_VREG_WORD(rPC,rINST_FULL,0) 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project GET_VREG_WORD(%ecx,rINST_FULL,1) 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project testl rPC,rPC 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jne .L${opcode}_notSpecial1 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project cmpl $$0x80000000,%ecx 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jne .L${opcode}_notSpecial1 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* minint / -1, return minint on div, 0 on rem */ 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project xorl %eax,%eax 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project movl $special,%edx 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jmp .L${opcode}_finish 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 56