| |
| |
| |
| |
| |
| #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 |
| |
| |