1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) 2018 Free Software Foundation, Inc. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include <linux/linkage.h> 7*4882a593Smuzhiyun#include <asm-generic/export.h> 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunSYM_FUNC_START(__lshrti3) 10*4882a593Smuzhiyun beqz a2, .L1 11*4882a593Smuzhiyun li a5,64 12*4882a593Smuzhiyun sub a5,a5,a2 13*4882a593Smuzhiyun sext.w a4,a5 14*4882a593Smuzhiyun blez a5, .L2 15*4882a593Smuzhiyun sext.w a2,a2 16*4882a593Smuzhiyun srl a0,a0,a2 17*4882a593Smuzhiyun sll a4,a1,a4 18*4882a593Smuzhiyun srl a2,a1,a2 19*4882a593Smuzhiyun or a0,a0,a4 20*4882a593Smuzhiyun mv a1,a2 21*4882a593Smuzhiyun.L1: 22*4882a593Smuzhiyun ret 23*4882a593Smuzhiyun.L2: 24*4882a593Smuzhiyun negw a0,a4 25*4882a593Smuzhiyun li a2,0 26*4882a593Smuzhiyun srl a0,a1,a0 27*4882a593Smuzhiyun mv a1,a2 28*4882a593Smuzhiyun ret 29*4882a593SmuzhiyunSYM_FUNC_END(__lshrti3) 30*4882a593SmuzhiyunEXPORT_SYMBOL(__lshrti3) 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunSYM_FUNC_START(__ashrti3) 33*4882a593Smuzhiyun beqz a2, .L3 34*4882a593Smuzhiyun li a5,64 35*4882a593Smuzhiyun sub a5,a5,a2 36*4882a593Smuzhiyun sext.w a4,a5 37*4882a593Smuzhiyun blez a5, .L4 38*4882a593Smuzhiyun sext.w a2,a2 39*4882a593Smuzhiyun srl a0,a0,a2 40*4882a593Smuzhiyun sll a4,a1,a4 41*4882a593Smuzhiyun sra a2,a1,a2 42*4882a593Smuzhiyun or a0,a0,a4 43*4882a593Smuzhiyun mv a1,a2 44*4882a593Smuzhiyun.L3: 45*4882a593Smuzhiyun ret 46*4882a593Smuzhiyun.L4: 47*4882a593Smuzhiyun negw a0,a4 48*4882a593Smuzhiyun srai a2,a1,0x3f 49*4882a593Smuzhiyun sra a0,a1,a0 50*4882a593Smuzhiyun mv a1,a2 51*4882a593Smuzhiyun ret 52*4882a593SmuzhiyunSYM_FUNC_END(__ashrti3) 53*4882a593SmuzhiyunEXPORT_SYMBOL(__ashrti3) 54*4882a593Smuzhiyun 55*4882a593SmuzhiyunSYM_FUNC_START(__ashlti3) 56*4882a593Smuzhiyun beqz a2, .L5 57*4882a593Smuzhiyun li a5,64 58*4882a593Smuzhiyun sub a5,a5,a2 59*4882a593Smuzhiyun sext.w a4,a5 60*4882a593Smuzhiyun blez a5, .L6 61*4882a593Smuzhiyun sext.w a2,a2 62*4882a593Smuzhiyun sll a1,a1,a2 63*4882a593Smuzhiyun srl a4,a0,a4 64*4882a593Smuzhiyun sll a2,a0,a2 65*4882a593Smuzhiyun or a1,a1,a4 66*4882a593Smuzhiyun mv a0,a2 67*4882a593Smuzhiyun.L5: 68*4882a593Smuzhiyun ret 69*4882a593Smuzhiyun.L6: 70*4882a593Smuzhiyun negw a1,a4 71*4882a593Smuzhiyun li a2,0 72*4882a593Smuzhiyun sll a1,a0,a1 73*4882a593Smuzhiyun mv a0,a2 74*4882a593Smuzhiyun ret 75*4882a593SmuzhiyunSYM_FUNC_END(__ashlti3) 76*4882a593SmuzhiyunEXPORT_SYMBOL(__ashlti3) 77