Blame sysdeps/sparc/sparc32/sparcv9/sdiv.S
|
Packit |
6c4009 |
/*
|
|
Packit |
6c4009 |
* Sparc v9 has divide.
|
|
Packit |
6c4009 |
* As divx takes 68 cycles and sdivcc only 36,
|
|
Packit |
6c4009 |
* we use sdivcc eventhough it is deprecated.
|
|
Packit |
6c4009 |
*/
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#include <sysdep.h>
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
.text
|
|
Packit |
6c4009 |
.align 32
|
|
Packit |
6c4009 |
ENTRY(.div)
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
sra %o0, 31, %o2
|
|
Packit |
6c4009 |
wr %o2, 0, %y
|
|
Packit |
6c4009 |
sdivcc %o0, %o1, %o0
|
|
Packit |
6c4009 |
xnor %o0, %g0, %o2
|
|
Packit |
6c4009 |
retl
|
|
Packit |
6c4009 |
movvs %icc, %o2, %o0
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
END(.div)
|