Blob
1 .text2 .p2align 2,0x903 .globl mpdigdiv4 mpdigdiv:5 /* Prelude */6 pushl %ebp /* save on stack */7 pushl %ebx9 leal 12(%esp), %ebp /* %ebp = FP for now */10 movl 0(%ebp), %ebx /* dividend */11 movl 0(%ebx), %eax12 movl 4(%ebx), %edx13 movl 4(%ebp), %ebx /* divisor */14 movl 8(%ebp), %ebp /* quotient */16 xorl %ecx, %ecx17 cmpl %ebx, %edx /* dividend >= 2^32 * divisor */18 jae divovfl19 cmpl %ecx, %ebx /* divisor == 1 */20 je divovfl21 divl %ebx /* AX = DX:AX/BX */22 movl %eax, (%ebp)23 done:24 /* Postlude */25 popl %ebx26 popl %ebp27 ret29 /* return all 1's */30 divovfl:31 notl %ecx32 movl %ecx, (%ebp)33 jmp done