1/*
2 * Sparc v9 has divide.
3 * As divx takes 68 cycles and sdivcc only 36,
4 * we use sdivcc even though 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

source code of glibc/sysdeps/sparc/sparc32/sparcv9/rem.S