/* SPDX-License-Identifier: GPL-2.0-only */ | |
/* | |
* Copyright (C) 2018 Free Software Foundation, Inc. | |
*/ | |
#include <linux/linkage.h> | |
ENTRY(__lshrti3) | |
beqz a2, .L1 | |
li a5,64 | |
sub a5,a5,a2 | |
addi sp,sp,-16 | |
sext.w a4,a5 | |
blez a5, .L2 | |
sext.w a2,a2 | |
sll a4,a1,a4 | |
srl a0,a0,a2 | |
srl a1,a1,a2 | |
or a0,a0,a4 | |
sd a1,8(sp) | |
sd a0,0(sp) | |
ld a0,0(sp) | |
ld a1,8(sp) | |
addi sp,sp,16 | |
ret | |
.L1: | |
ret | |
.L2: | |
negw a4,a4 | |
srl a1,a1,a4 | |
sd a1,0(sp) | |
sd zero,8(sp) | |
ld a0,0(sp) | |
ld a1,8(sp) | |
addi sp,sp,16 | |
ret | |
ENDPROC(__lshrti3) |