1/*
2 * Sparc v9 has divide.
3 * As divx takes 68 cycles and sdivcc only 36,
4 * we use sdivcc eventhough it is deprecated.
5 */
6
7#include <sysdep.h>
8
9	.text
10	.align		32
11ENTRY(.rem)
12
13	sra		%o0, 31, %o2
14	wr		%o2, 0, %y
15	sdivcc		%o0, %o1, %o2
16	xnor		%o2, %g0, %o3
17	movvs		%icc, %o3, %o2
18	smul		%o2, %o1, %o2
19	retl
20	 sub		%o0, %o2, %o0
21
22END(.rem)
23