123456789101112131415161718192021222324252627282930313233 |
- //===-- int_mul_impl.inc - Integer multiplication -------------------------===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- //
- // Helpers used by __mulsi3, __muldi3.
- //
- //===----------------------------------------------------------------------===//
- #ifndef __mulxi3
- #error "__mulxi3 must be defined to use this generic implementation"
- #endif
- .text
- .align 2
- .globl __mulxi3
- .type __mulxi3, @function
- __mulxi3:
- mv a2, a0
- mv a0, zero
- .L1:
- andi a3, a1, 1
- beqz a3, .L2
- add a0, a0, a2
- .L2:
- srli a1, a1, 1
- slli a2, a2, 1
- bnez a1, .L1
- ret
|