forked from OSchip/llvm-project
34 lines
815 B
PHP
34 lines
815 B
PHP
//===-- 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
|