/* SPDX-License-Identifier: GPL-2.0-only */1/*2* Copyright (c) 2021, The Linux Foundation. All rights reserved.3*/45#include <linux/linkage.h>67SYM_FUNC_START(__hexagon_modsi3)8{9p2 = cmp.ge(r0,#0)10r2 = abs(r0)11r1 = abs(r1)12}13{14r3 = cl0(r2)15r4 = cl0(r1)16p0 = cmp.gtu(r1,r2)17}18{19r3 = sub(r4,r3)20if (p0) jumpr r3121}22{23p1 = cmp.eq(r3,#0)24loop0(1f,r3)25r0 = r226r2 = lsl(r1,r3)27}28.falign291:30{31p0 = cmp.gtu(r2,r0)32if (!p0.new) r0 = sub(r0,r2)33r2 = lsr(r2,#1)34if (p1) r1 = #035}:endloop036{37p0 = cmp.gtu(r2,r0)38if (!p0.new) r0 = sub(r0,r1)39if (p2) jumpr r3140}41{42r0 = neg(r0)43jumpr r3144}45SYM_FUNC_END(__hexagon_modsi3)464748