]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - arch/riscv/lib/udivdi3.S
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-jammy-kernel.git] / arch / riscv / lib / udivdi3.S
CommitLineData
50acfb2b 1/* SPDX-License-Identifier: GPL-2.0-only */
5d8544e2
PD
2/*
3 * Copyright (C) 2016-2017 Free Software Foundation, Inc.
5d8544e2
PD
4 */
5
a266cdba
OJ
6#include <linux/linkage.h>
7
8ENTRY(__udivdi3)
9 mv a2, a1
10 mv a1, a0
11 li a0, -1
12 beqz a2, .L5
13 li a3, 1
14 bgeu a2, a1, .L2
5d8544e2 15.L1:
a266cdba
OJ
16 blez a2, .L2
17 slli a2, a2, 1
18 slli a3, a3, 1
19 bgtu a1, a2, .L1
5d8544e2 20.L2:
a266cdba 21 li a0, 0
5d8544e2 22.L3:
a266cdba
OJ
23 bltu a1, a2, .L4
24 sub a1, a1, a2
25 or a0, a0, a3
5d8544e2 26.L4:
a266cdba
OJ
27 srli a3, a3, 1
28 srli a2, a2, 1
29 bnez a3, .L3
5d8544e2 30.L5:
a266cdba
OJ
31 ret
32ENDPROC(__udivdi3)