| /* | 
 |  * 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 |