1*f1f99adfSSid Manning/* SPDX-License-Identifier: GPL-2.0-only */ 2*f1f99adfSSid Manning/* 3*f1f99adfSSid Manning * Copyright (c) 2021, The Linux Foundation. All rights reserved. 4*f1f99adfSSid Manning */ 5*f1f99adfSSid Manning 6*f1f99adfSSid Manning#include <linux/linkage.h> 7*f1f99adfSSid Manning 8*f1f99adfSSid ManningSYM_FUNC_START(__hexagon_udivsi3) 9*f1f99adfSSid Manning { 10*f1f99adfSSid Manning r2 = cl0(r0) 11*f1f99adfSSid Manning r3 = cl0(r1) 12*f1f99adfSSid Manning r5:4 = combine(#1,#0) 13*f1f99adfSSid Manning p0 = cmp.gtu(r1,r0) 14*f1f99adfSSid Manning } 15*f1f99adfSSid Manning { 16*f1f99adfSSid Manning r6 = sub(r3,r2) 17*f1f99adfSSid Manning r4 = r1 18*f1f99adfSSid Manning r1:0 = combine(r0,r4) 19*f1f99adfSSid Manning if (p0) jumpr r31 20*f1f99adfSSid Manning } 21*f1f99adfSSid Manning { 22*f1f99adfSSid Manning r3:2 = vlslw(r5:4,r6) 23*f1f99adfSSid Manning loop0(1f,r6) 24*f1f99adfSSid Manning } 25*f1f99adfSSid Manning .falign 26*f1f99adfSSid Manning1: 27*f1f99adfSSid Manning { 28*f1f99adfSSid Manning p0 = cmp.gtu(r2,r1) 29*f1f99adfSSid Manning if (!p0.new) r1 = sub(r1,r2) 30*f1f99adfSSid Manning if (!p0.new) r0 = add(r0,r3) 31*f1f99adfSSid Manning r3:2 = vlsrw(r3:2,#1) 32*f1f99adfSSid Manning }:endloop0 33*f1f99adfSSid Manning { 34*f1f99adfSSid Manning p0 = cmp.gtu(r2,r1) 35*f1f99adfSSid Manning if (!p0.new) r0 = add(r0,r3) 36*f1f99adfSSid Manning jumpr r31 37*f1f99adfSSid Manning } 38*f1f99adfSSid ManningSYM_FUNC_END(__hexagon_udivsi3) 39