1*5f91a3adSMasahiro Yamada/* Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2*5f91a3adSMasahiro Yamada 2004, 2005 3*5f91a3adSMasahiro Yamada Free Software Foundation, Inc. 4*5f91a3adSMasahiro Yamada 5*5f91a3adSMasahiro Yamada * SPDX-License-Identifier: GPL-2.0+ 6*5f91a3adSMasahiro Yamada */ 7*5f91a3adSMasahiro Yamada 8*5f91a3adSMasahiro Yamada!! libgcc routines for the Renesas / SuperH SH CPUs. 9*5f91a3adSMasahiro Yamada!! Contributed by Steve Chamberlain. 10*5f91a3adSMasahiro Yamada!! sac@cygnus.com 11*5f91a3adSMasahiro Yamada 12*5f91a3adSMasahiro Yamada .balign 4 13*5f91a3adSMasahiro Yamada .global __udivsi3 14*5f91a3adSMasahiro Yamada .type __udivsi3, @function 15*5f91a3adSMasahiro Yamadadiv8: 16*5f91a3adSMasahiro Yamada div1 r5,r4 17*5f91a3adSMasahiro Yamadadiv7: 18*5f91a3adSMasahiro Yamada div1 r5,r4; div1 r5,r4; div1 r5,r4 19*5f91a3adSMasahiro Yamada div1 r5,r4; div1 r5,r4; div1 r5,r4; rts; div1 r5,r4 20*5f91a3adSMasahiro Yamada 21*5f91a3adSMasahiro Yamadadivx4: 22*5f91a3adSMasahiro Yamada div1 r5,r4; rotcl r0 23*5f91a3adSMasahiro Yamada div1 r5,r4; rotcl r0 24*5f91a3adSMasahiro Yamada div1 r5,r4; rotcl r0 25*5f91a3adSMasahiro Yamada rts; div1 r5,r4 26*5f91a3adSMasahiro Yamada 27*5f91a3adSMasahiro Yamada__udivsi3: 28*5f91a3adSMasahiro Yamada sts.l pr,@-r15 29*5f91a3adSMasahiro Yamada extu.w r5,r0 30*5f91a3adSMasahiro Yamada cmp/eq r5,r0 31*5f91a3adSMasahiro Yamada bf/s large_divisor 32*5f91a3adSMasahiro Yamada div0u 33*5f91a3adSMasahiro Yamada swap.w r4,r0 34*5f91a3adSMasahiro Yamada shlr16 r4 35*5f91a3adSMasahiro Yamada bsr div8 36*5f91a3adSMasahiro Yamada shll16 r5 37*5f91a3adSMasahiro Yamada bsr div7 38*5f91a3adSMasahiro Yamada div1 r5,r4 39*5f91a3adSMasahiro Yamada xtrct r4,r0 40*5f91a3adSMasahiro Yamada xtrct r0,r4 41*5f91a3adSMasahiro Yamada bsr div8 42*5f91a3adSMasahiro Yamada swap.w r4,r4 43*5f91a3adSMasahiro Yamada bsr div7 44*5f91a3adSMasahiro Yamada div1 r5,r4 45*5f91a3adSMasahiro Yamada lds.l @r15+,pr 46*5f91a3adSMasahiro Yamada xtrct r4,r0 47*5f91a3adSMasahiro Yamada swap.w r0,r0 48*5f91a3adSMasahiro Yamada rotcl r0 49*5f91a3adSMasahiro Yamada rts 50*5f91a3adSMasahiro Yamada shlr16 r5 51*5f91a3adSMasahiro Yamada 52*5f91a3adSMasahiro Yamadalarge_divisor: 53*5f91a3adSMasahiro Yamada mov #0,r0 54*5f91a3adSMasahiro Yamada xtrct r4,r0 55*5f91a3adSMasahiro Yamada xtrct r0,r4 56*5f91a3adSMasahiro Yamada bsr divx4 57*5f91a3adSMasahiro Yamada rotcl r0 58*5f91a3adSMasahiro Yamada bsr divx4 59*5f91a3adSMasahiro Yamada rotcl r0 60*5f91a3adSMasahiro Yamada bsr divx4 61*5f91a3adSMasahiro Yamada rotcl r0 62*5f91a3adSMasahiro Yamada bsr divx4 63*5f91a3adSMasahiro Yamada rotcl r0 64*5f91a3adSMasahiro Yamada lds.l @r15+,pr 65*5f91a3adSMasahiro Yamada rts 66*5f91a3adSMasahiro Yamada rotcl r0 67