1362703Sdim//===-- int_mul_impl.inc - Integer multiplication -------------------------===//
2362703Sdim//
3362703Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4362703Sdim// See https://llvm.org/LICENSE.txt for license information.
5362703Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6362703Sdim//
7362703Sdim//===----------------------------------------------------------------------===//
8362703Sdim//
9362703Sdim// Helpers used by __mulsi3, __muldi3.
10362703Sdim//
11362703Sdim//===----------------------------------------------------------------------===//
12362703Sdim
13362703Sdim#if !defined(__riscv_mul)
14362703Sdim	.text
15362703Sdim	.align 2
16362703Sdim
17362703Sdim	.globl __mulxi3
18362703Sdim	.type  __mulxi3, @function
19362703Sdim__mulxi3:
20362703Sdim	mv     a2, a0
21362703Sdim	mv     a0, zero
22362703Sdim.L1:
23362703Sdim	andi   a3, a1, 1
24362703Sdim	beqz   a3, .L2
25362703Sdim	add    a0, a0, a2
26362703Sdim.L2:
27362703Sdim	srli   a1, a1, 1
28362703Sdim	slli   a2, a2, 1
29362703Sdim	bnez   a1, .L1
30362703Sdim	ret
31362703Sdim#endif
32