1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <linux/linkage.h>
5 * Multiply operation for 32 bit integers.
6 * Input : Operand1 in Reg r5
8 * Output: Result [op1 * op2] in Reg r3
12 .type __mulsi3, @function
18 beqi r5, result_is_zero /* multiply by zero */
19 beqi r6, result_is_zero /* multiply by zero */
21 xor r4, r5, r6 /* get the sign of the result */
22 rsubi r5, r5, 0 /* make r5 positive */
25 rsubi r6, r6, 0 /* make r6 positive */
46 .size __mulsi3, . - __mulsi3