]>
Commit | Line | Data |
---|---|---|
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 | ||
8 | ENTRY(__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 |
32 | ENDPROC(__udivdi3) |