Palmer Dabbelt | 5d8544e | 2017-07-10 18:03:19 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2016-2017 Free Software Foundation, Inc. |
| 3 | * |
| 4 | * This program is free software; you can redistribute it and/or |
| 5 | * modify it under the terms of the GNU General Public License |
| 6 | * as published by the Free Software Foundation, version 2. |
| 7 | * |
| 8 | * This program is distributed in the hope that it will be useful, |
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. |
| 12 | */ |
| 13 | |
| 14 | .globl __udivdi3 |
| 15 | __udivdi3: |
| 16 | mv a2, a1 |
| 17 | mv a1, a0 |
| 18 | li a0, -1 |
| 19 | beqz a2, .L5 |
| 20 | li a3, 1 |
| 21 | bgeu a2, a1, .L2 |
| 22 | .L1: |
| 23 | blez a2, .L2 |
| 24 | slli a2, a2, 1 |
| 25 | slli a3, a3, 1 |
| 26 | bgtu a1, a2, .L1 |
| 27 | .L2: |
| 28 | li a0, 0 |
| 29 | .L3: |
| 30 | bltu a1, a2, .L4 |
| 31 | sub a1, a1, a2 |
| 32 | or a0, a0, a3 |
| 33 | .L4: |
| 34 | srli a3, a3, 1 |
| 35 | srli a2, a2, 1 |
| 36 | bnez a3, .L3 |
| 37 | .L5: |
| 38 | ret |