swh:1:snp:173f8deb0c56c557784b4fd217e7608ac6197844
Raw File
Tip revision: af8c34ce6ae32addda3788d54a7e340cad22516b authored by Linus Torvalds on 05 June 2016, 21:31:26 UTC
Linux 4.7-rc2
Tip revision: af8c34c
div64.S
/*	
 * unsigned long __xdiv64_32(unsigned long long n, unsigned long d); 
 */

#include <linux/linkage.h>

.text
ENTRY(__xdiv64_32)
#ifdef CONFIG_CPU_LITTLE_ENDIAN
	mov	r4, r0
	mov	r5, r1
#else
	mov	r4, r1
	mov	r5, r0
#endif
	cmp/hs	r6, r1
	bf.s	1f
	 mov	#0, r2

	mov	r1, r2
	mov	#0, r3
	div0u
	.rept	32
	rotcl	r2
	div1	r6, r3
	.endr
	rotcl	r2
	mul.l	r6, r2
	sts	macl, r3
	sub	r3, r1
1:
	div0u
	.rept	32
	rotcl	r0
	div1	r6, r1
	.endr
#ifdef CONFIG_CPU_LITTLE_ENDIAN
	mov	r2, r1
	rts
	 rotcl	r0
#else
	rotcl	r0
	mov	r0, r1
	rts
	 mov	r2, r0
#endif
back to top