diff options
Diffstat (limited to 'ANDROID_3.4.5/arch/microblaze/lib/mulsi3.S')
-rw-r--r-- | ANDROID_3.4.5/arch/microblaze/lib/mulsi3.S | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/ANDROID_3.4.5/arch/microblaze/lib/mulsi3.S b/ANDROID_3.4.5/arch/microblaze/lib/mulsi3.S deleted file mode 100644 index 90bd7b93..00000000 --- a/ANDROID_3.4.5/arch/microblaze/lib/mulsi3.S +++ /dev/null @@ -1,46 +0,0 @@ -#include <linux/linkage.h> - -/* - * Multiply operation for 32 bit integers. - * Input : Operand1 in Reg r5 - * Operand2 in Reg r6 - * Output: Result [op1 * op2] in Reg r3 - */ - .text - .globl __mulsi3 - .type __mulsi3, @function - .ent __mulsi3 - -__mulsi3: - .frame r1, 0, r15 - add r3, r0, r0 - beqi r5, result_is_zero /* multiply by zero */ - beqi r6, result_is_zero /* multiply by zero */ - bgeid r5, r5_pos - xor r4, r5, r6 /* get the sign of the result */ - rsubi r5, r5, 0 /* make r5 positive */ -r5_pos: - bgei r6, r6_pos - rsubi r6, r6, 0 /* make r6 positive */ -r6_pos: - bri l1 -l2: - add r5, r5, r5 -l1: - srl r6, r6 - addc r7, r0, r0 - beqi r7, l2 - bneid r6, l2 - add r3, r3, r5 - blti r4, negateresult - rtsd r15, 8 - nop -negateresult: - rtsd r15, 8 - rsub r3, r3, r0 -result_is_zero: - rtsd r15, 8 - addi r3, r0, 0 - -.size __mulsi3, . - __mulsi3 -.end __mulsi3 |