.file "mrmuldv.s"
.text
.globl muldiv
muldiv:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl 8(%ebp),%eax
mull 12(%ebp)
addl 16(%ebp),%eax
adcl $0,%edx
divl 20(%ebp)
movl 24(%ebp),%ebx
movl %edx,(%ebx)
popl %ebx
popl %ebp
ret
.globl muldvm
muldvm:
movl 8(%ebp),%edx
movl 12(%ebp),%eax
divl 16(%ebp)
movl 20(%ebp),%ebx
.globl muldvd
muldvd:
movl %eax,(%ebx)
movl %edx,%eax
.globl muldvd2
muldvd2:
pushl %esi
movl 16(%ebp),%ebx
addl (%ebx),%eax
movl 20(%ebp),%esi
addl (%esi),%eax
movl %eax,(%esi)
popl %esi
.file "mrmuldv.S"
#if defined(__linux__) && defined(__ELF__)
.section .note.GNU-stack,"",%progbits
#endif
pushq %rbx
movq %rdi,%rax
movq %rdx,%rbx
mulq %rsi
addq %rbx,%rax
adcq $0,%rdx
divq %rcx
movq %r8,%rbx
movq %rdx,(%rbx)
popq %rbx
.global muldvm
movq %rdi,%rdx
movq %rsi,%rax
divq %rbx
movq %rcx,%rbx
movq %rax,(%rbx)
movq %rdx,%rax
.global muldvd2
addq (%rbx),%rax
addq (%rcx),%rax
movq %rax,(%rcx)