123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * Copyright (C) 2016-2017 Free Software Foundation, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, version 2.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- .globl __udivdi3
- __udivdi3:
- mv a2, a1
- mv a1, a0
- li a0, -1
- beqz a2, .L5
- li a3, 1
- bgeu a2, a1, .L2
- .L1:
- blez a2, .L2
- slli a2, a2, 1
- slli a3, a3, 1
- bgtu a1, a2, .L1
- .L2:
- li a0, 0
- .L3:
- bltu a1, a2, .L4
- sub a1, a1, a2
- or a0, a0, a3
- .L4:
- srli a3, a3, 1
- srli a2, a2, 1
- bnez a3, .L3
- .L5:
- ret
|