ubuntu-buildroot/output/build/glibc-2.36-81-g4f4d7a13edfd.../sysdeps/sparc/sparc32/sparcv9/rem.S

23 lines
339 B
ArmAsm
Raw Normal View History

2024-04-01 15:19:46 +00:00
/*
* Sparc v9 has divide.
* As divx takes 68 cycles and sdivcc only 36,
* we use sdivcc eventhough it is deprecated.
*/
#include <sysdep.h>
.text
.align 32
ENTRY(.rem)
sra %o0, 31, %o2
wr %o2, 0, %y
sdivcc %o0, %o1, %o2
xnor %o2, %g0, %o3
movvs %icc, %o3, %o2
smul %o2, %o1, %o2
retl
sub %o0, %o2, %o0
END(.rem)