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

source code of linux/arch/hexagon/lib/udivsi3.S