]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/config/pa/lib1funcs.asm
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / config / pa / lib1funcs.asm
diff --git a/gcc/config/pa/lib1funcs.asm b/gcc/config/pa/lib1funcs.asm
deleted file mode 100644 (file)
index e1d5b4e..0000000
+++ /dev/null
@@ -1,1147 +0,0 @@
-;  Low level integer divide, multiply, remainder, etc routines for the HPPA.
-;  Copyright (C) 1995 Free Software Foundation, Inc.
-
-;  This file is part of GNU CC.
-
-;  GNU CC 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; either version 2, or (at your option)
-;  any later version.
-
-;  In addition to the permissions in the GNU General Public License, the
-;  Free Software Foundation gives you unlimited permission to link the
-;  compiled version of this file into combinations with other programs,
-;  and to distribute those combinations without any restriction coming
-;  from the use of this file.  (The General Public License restrictions
-;  do apply in other respects; for example, they cover modification of
-;  the file, and distribution when not linked into a combine
-;  executable.)
-
-;  GNU CC 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.
-
-;  You should have received a copy of the GNU General Public License
-;  along with GNU CC; see the file COPYING.  If not, write to
-;  the Free Software Foundation, 59 Temple Place - Suite 330,
-;  Boston, MA 02111-1307, USA.
-
-#ifdef L_dyncall
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .export $$dyncall
-$$dyncall
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       bb,>=,n %r22,30,L$1             ; branch if not plabel address
-       depi    0,31,2,%r22             ; clear the two least significant bits
-       ldw     4(%sr0,%r22),%r19       ; load new LTP value
-       ldw     0(%sr0,%r22),%r22       ; load address of target
-L$1    ldsid   (%sr0,%r22),%r1         ; get the "space ident" selected by r22
-       mtsp    %r1,%sr0                ; move that space identifier into sr0
-       be      0(%sr0,%r22)            ; branch to the real target
-       stw     %r2,-24(%sr0,%r30)      ; save return address into frame marker
-       .exit
-       .procend
-#endif
-
-
-#ifdef L_multiply
-#define        op0     %r26
-#define        op1     %r25
-#define res    %r29
-#define ret    %r31
-#define tmp    %r1
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$mulU
-       .export $$mulI
-$$mulU
-$$mulI
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       addi,tr         0,%r0,res       ; clear out res, skip next insn
-L$loop zdep            op1,26,27,op1   ; shift up op1 by 5
-L$lo   zdep            op0,30,5,tmp    ; extract next 5 bits and shift up
-       blr             tmp,%r0
-       extru           op0,26,27,op0   ; shift down op0 by 5
-L$0    comib,<>        0,op0,L$lo
-       zdep            op1,26,27,op1   ; shift up op1 by 5
-       bv              %r0(ret)
-       nop
-L$1    b               L$loop
-       addl            op1,res,res
-       nop
-       nop
-L$2    b               L$loop
-       sh1addl         op1,res,res
-       nop
-       nop
-L$3    sh1addl         op1,op1,tmp     ; 3x
-       b               L$loop
-       addl            tmp,res,res
-       nop
-L$4    b               L$loop
-       sh2addl         op1,res,res
-       nop
-       nop
-L$5    sh2addl         op1,op1,tmp     ; 5x
-       b               L$loop
-       addl            tmp,res,res
-       nop
-L$6    sh1addl         op1,op1,tmp     ; 3x
-       b               L$loop
-       sh1addl         tmp,res,res
-       nop
-L$7    zdep            op1,28,29,tmp   ; 8x
-       sub             tmp,op1,tmp     ; 7x
-       b               L$loop
-       addl            tmp,res,res
-L$8    b               L$loop
-       sh3addl         op1,res,res
-       nop
-       nop
-L$9    sh3addl         op1,op1,tmp     ; 9x
-       b               L$loop
-       addl            tmp,res,res
-       nop
-L$10   sh2addl         op1,op1,tmp     ; 5x
-       b               L$loop
-       sh1addl         tmp,res,res
-       nop
-L$11   sh2addl         op1,op1,tmp     ; 5x
-       sh1addl         tmp,op1,tmp     ; 11x
-       b               L$loop
-       addl            tmp,res,res
-L$12   sh1addl         op1,op1,tmp     ; 3x
-       b               L$loop
-       sh2addl         tmp,res,res
-       nop
-L$13   sh1addl         op1,op1,tmp     ; 3x
-       sh2addl         tmp,op1,tmp     ; 13x
-       b               L$loop
-       addl            tmp,res,res
-L$14   zdep            op1,28,29,tmp   ; 8x
-       sub             tmp,op1,tmp     ; 7x
-       b               L$loop
-       sh1addl         tmp,res,res
-L$15   zdep            op1,27,28,tmp   ; 16x
-       sub             tmp,op1,tmp     ; 15x
-       b               L$loop
-       addl            tmp,res,res
-L$16   zdep            op1,27,28,tmp   ; 16x
-       b               L$loop
-       addl            tmp,res,res
-       nop
-L$17   zdep            op1,27,28,tmp   ; 16x
-       addl            tmp,op1,tmp     ; 17x
-       b               L$loop
-       addl            tmp,res,res
-L$18   sh3addl         op1,op1,tmp     ; 9x
-       b               L$loop
-       sh1addl         tmp,res,res
-       nop
-L$19   sh3addl         op1,op1,tmp     ; 9x
-       sh1addl         tmp,op1,tmp     ; 19x
-       b               L$loop
-       addl            tmp,res,res
-L$20   sh2addl         op1,op1,tmp     ; 5x
-       b               L$loop
-       sh2addl         tmp,res,res
-       nop
-L$21   sh2addl         op1,op1,tmp     ; 5x
-       sh2addl         tmp,op1,tmp     ; 21x
-       b               L$loop
-       addl            tmp,res,res
-L$22   sh2addl         op1,op1,tmp     ; 5x
-       sh1addl         tmp,op1,tmp     ; 11x
-       b               L$loop
-       sh1addl         tmp,res,res
-L$23   sh1addl         op1,op1,tmp     ; 3x
-       sh3addl         tmp,res,res     ; += 8x3
-       b               L$loop
-       sub             res,op1,res     ; -= x
-L$24   sh1addl         op1,op1,tmp     ; 3x
-       b               L$loop
-       sh3addl         tmp,res,res     ; += 8x3
-       nop
-L$25   sh2addl         op1,op1,tmp     ; 5x
-       sh2addl         tmp,tmp,tmp     ; 25x
-       b               L$loop
-       addl            tmp,res,res
-L$26   sh1addl         op1,op1,tmp     ; 3x
-       sh2addl         tmp,op1,tmp     ; 13x
-       b               L$loop
-       sh1addl         tmp,res,res     ; += 2x13
-L$27   sh1addl         op1,op1,tmp     ; 3x
-       sh3addl         tmp,tmp,tmp     ; 27x
-       b               L$loop
-       addl            tmp,res,res
-L$28   zdep            op1,28,29,tmp   ; 8x
-       sub             tmp,op1,tmp     ; 7x
-       b               L$loop
-       sh2addl         tmp,res,res     ; += 4x7
-L$29   sh1addl         op1,op1,tmp     ; 3x
-       sub             res,tmp,res     ; -= 3x
-       b               L$foo
-       zdep            op1,26,27,tmp   ; 32x
-L$30   zdep            op1,27,28,tmp   ; 16x
-       sub             tmp,op1,tmp     ; 15x
-       b               L$loop
-       sh1addl         tmp,res,res     ; += 2x15
-L$31   zdep            op1,26,27,tmp   ; 32x
-       sub             tmp,op1,tmp     ; 31x
-L$foo  b               L$loop
-       addl            tmp,res,res
-       .exit
-       .procend
-#endif
-
-
-#ifdef L_divU
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define quotient %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU
-$$divU
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       comb,<          divisor,0,L$largedivisor
-        sub            %r0,divisor,%r1         ; clear cy as side-effect
-       ds              %r0,%r1,%r0
-       addc            dividend,dividend,dividend
-       ds              %r0,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,quotient
-       ds              %r1,divisor,%r1
-       bv              %r0(ret)
-       addc            quotient,quotient,quotient
-L$largedivisor
-       comclr,<<       dividend,divisor,quotient
-       ldi             1,quotient
-       bv,n            %r0(ret)
-       .exit
-       .procend
-#endif
-
-
-#ifdef L_remU
-#define dividend %r26
-#define divisor %r25
-#define quotient %r29
-#define tmp %r1
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$remU
-$$remU
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       comb,<          divisor,0,L$largedivisor
-        sub            %r0,divisor,%r1         ; clear cy as side-effect
-       ds              %r0,%r1,%r0
-       addc            dividend,dividend,dividend
-       ds              %r0,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,quotient
-       ds              %r1,divisor,%r1
-       comclr,>=       %r1,%r0,%r0
-       addl            %r1,divisor,%r1
-       bv              %r0(ret)
-       copy            %r1,quotient
-L$largedivisor
-       sub,>>=         dividend,divisor,quotient
-       copy            dividend,quotient
-       bv,n            %r0(ret)
-       .exit
-       .procend
-#endif
-
-
-#ifdef L_divI
-#define dividend %r26
-#define divisor %r25
-#define quotient %r29
-#define tmp %r1
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divI
-$$divI
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       xor             dividend,divisor,quotient       ; result sign
-       comclr,>=       divisor,%r0,%r0                 ; get absolute values
-       sub             %r0,divisor,divisor
-       comclr,>=       dividend,%r0,%r0
-       sub             %r0,dividend,dividend
-
-       comb,<          divisor,0,L$largedivisor
-        sub            %r0,divisor,%r1         ; clear cy as side-effect
-       ds              %r0,%r1,%r0
-       addc            dividend,dividend,dividend
-       ds              %r0,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       comclr,>=       %r1,%r0,%r0
-       addl            %r1,divisor,%r1
-       comclr,>=       quotient,%r0,%r0        ; skip of no need to negate
-       sub             %r0,dividend,dividend
-       bv              %r0(ret)
-       copy            dividend,quotient
-L$largedivisor
-       comclr,<<       dividend,divisor,quotient
-       ldi             1,quotient
-       bv,n            %r0(ret)
-       .exit
-       .procend
-#endif
-
-
-#ifdef L_remI
-#define dividend %r26
-#define divisor %r25
-#define quotient %r29
-#define tmp %r1
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$remI
-$$remI
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       xor             dividend,%r0,quotient           ; result sign
-       comclr,>=       divisor,%r0,%r0                 ; get absolute values
-       sub             %r0,divisor,divisor
-       comclr,>=       dividend,%r0,%r0
-       sub             %r0,dividend,dividend
-
-       comb,<          divisor,0,L$largedivisor
-        sub            %r0,divisor,%r1         ; clear cy as side-effect
-       ds              %r0,%r1,%r0
-       addc            dividend,dividend,dividend
-       ds              %r0,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       ds              %r1,divisor,%r1
-       addc            dividend,dividend,dividend
-       comclr,>=       %r1,%r0,%r0
-       addl            %r1,divisor,%r1
-       comclr,>=       quotient,%r0,%r0        ; skip of no need to negate
-       sub             %r0,%r1,%r1
-       bv              %r0(ret)
-       copy            %r1,quotient
-L$largedivisor
-       sub,>>=         dividend,divisor,quotient
-       copy            dividend,quotient
-       bv,n            %r0(ret)
-       .exit
-       .procend
-#endif
-
-
-#if defined (L_divU_3) && !defined (SMALL_LIB)
-#undef L_divU_3
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define result %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU_3
-$$divU_3
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       sh2add  %r26,%r26,%r29          ; r29 = lo(101 x r)
-       shd     %r0,%r26,30,%r1         ;  r1 = hi(100 x r)
-       addc    %r1,%r0,%r1             ;  r1 = hi(101 x r)
-; r in r1,,r29
-       zdep    %r29,27,28,%r25         ; r25 = lo(10000 x r)
-       add     %r25,%r29,%r25          ; r25 = lo(10001 x r)
-       shd     %r1,%r29,28,%r29        ; r29 = hi(10000 x r)
-       addc    %r29,%r1,%r29           ; r29 = hi(10001 x r)
-; r in r29,,r25
-       zdep    %r25,23,24,%r1          ;  r1 = lo(100000000 x r)
-       add     %r1,%r25,%r1            ;  r1 = lo(100000001 x r)
-       shd     %r29,%r25,24,%r25       ; r25 = hi(100000000 x r)
-       addc    %r25,%r29,%r25          ; r25 = hi(100000001 x r)
-; r in r25,,r1
-       zdep    %r1,15,16,%r29
-       add     %r29,%r1,%r29
-       shd     %r25,%r1,16,%r1
-       addc    %r1,%r25,%r1
-; r in r1,,r29
-       sh1add  %r29,%r26,%r0           ;  r0 = lo(10 x r) + dividend
-       shd     %r1,%r29,31,%r29        ; r29 = hi(10 x r)
-       addc    %r29,%r0,%r29
-       bv      %r0(ret)
-       extru   %r29,30,31,result
-       .exit
-       .procend
-#endif
-
-
-#if defined (L_divU_5) && !defined (SMALL_LIB)
-#undef L_divU_5
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define result %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU_5
-$$divU_5
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       sh1add  %r26,%r26,%r29          ; r29 = lo(11 x r)
-       shd     %r0,%r26,31,%r1         ;  r1 = hi(10 x r)
-       addc    %r1,%r0,%r1             ;  r1 = hi(11 x r)
-; r in r1,,r29
-       zdep    %r29,27,28,%r25         ; r25 = lo(10000 x r)
-       add     %r25,%r29,%r25          ; r25 = lo(10001 x r)
-       shd     %r1,%r29,28,%r29        ; r29 = hi(10000 x r)
-       addc    %r29,%r1,%r29           ; r29 = hi(10001 x r)
-; r in r29,,r25
-       zdep    %r25,23,24,%r1          ;  r1 = lo(100000000 x r)
-       add     %r1,%r25,%r1            ;  r1 = lo(100000001 x r)
-       shd     %r29,%r25,24,%r25       ; r25 = hi(100000000 x r)
-       addc    %r25,%r29,%r25          ; r25 = hi(100000001 x r)
-; r in r25,,r1
-       zdep    %r1,15,16,%r29
-       add     %r29,%r1,%r29
-       shd     %r25,%r1,16,%r1
-       addc    %r1,%r25,%r1
-; r in r1,,r29
-       sh2add  %r29,%r26,%r0           ;  r0 = lo(1000 x r) + dividend
-       shd     %r1,%r29,30,%r29        ; r29 = hi(1000 x r)
-       addc    %r29,%r0,%r29
-       bv      %r0(ret)
-       extru   %r29,29,30,result
-       .exit
-       .procend
-#endif
-
-
-#if defined (L_divU_6) && !defined (SMALL_LIB)
-#undef L_divU_6
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define result %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU_6
-$$divU_6
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       sh2add  %r26,%r26,%r29          ; r29 = lo(101 x r)
-       shd     %r0,%r26,30,%r1         ;  r1 = hi(100 x r)
-       addc    %r1,%r0,%r1             ;  r1 = hi(101 x r)
-; r in r1,,r29
-       zdep    %r29,27,28,%r25         ; r25 = lo(10000 x r)
-       add     %r25,%r29,%r25          ; r25 = lo(10001 x r)
-       shd     %r1,%r29,28,%r29        ; r29 = hi(10000 x r)
-       addc    %r29,%r1,%r29           ; r29 = hi(10001 x r)
-; r in r29,,r25
-       zdep    %r25,23,24,%r1          ;  r1 = lo(100000000 x r)
-       add     %r1,%r25,%r1            ;  r1 = lo(100000001 x r)
-       shd     %r29,%r25,24,%r25       ; r25 = hi(100000000 x r)
-       addc    %r25,%r29,%r25          ; r25 = hi(100000001 x r)
-; r in r25,,r1
-       zdep    %r1,15,16,%r29
-       add     %r29,%r1,%r29
-       shd     %r25,%r1,16,%r1
-       addc    %r1,%r25,%r1
-; r in r1,,r29
-       sh1add  %r29,%r26,%r0           ;  r0 = lo(10 x r) + dividend
-       shd     %r1,%r29,31,%r29        ; r29 = hi(10 x r)
-       addc    %r29,%r0,%r29
-       bv      %r0(ret)
-       extru   %r29,29,30,result
-       .exit
-       .procend
-#endif
-
-
-#if defined (L_divU_9) && !defined (SMALL_LIB)
-#undef L_divU_9
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define result %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU_9
-$$divU_9
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       zdep    %r26,28,29,%r29
-       sub     %r29,%r26,%r29
-       shd     0,%r26,29,%r1
-       subb    %r1,0,%r1               /* 111 */
-
-       zdep    %r29,25,26,%r25
-       add     %r25,%r29,%r25
-       shd     %r1,%r29,26,%r29
-       addc    %r29,%r1,%r29           /* 111000111 */
-
-       sh3add  %r25,%r26,%r1
-       shd     %r29,%r25,29,%r25
-       addc    %r25,0,%r25             /* 111000111001 */
-
-       zdep    %r1,16,17,%r29
-       sub     %r29,%r1,%r29
-       shd     %r25,%r1,17,%r1
-       subb    %r1,%r25,%r1            /* 111000111000111000111000111 */
-
-       sh3add  %r29,%r26,%r0
-       shd     %r1,%r29,29,%r29
-       addc    %r29,0,%r29             /* 111000111000111000111000111001 */
-       bv      %r0(ret)
-       extru   %r29,30,31,result
-       .exit
-       .procend
-#endif
-
-
-#if defined (L_divU_10) && !defined (SMALL_LIB)
-#undef L_divU_10
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define result %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU_10
-$$divU_10
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       sh1add  %r26,%r26,%r29          ; r29 = lo(11 x r)
-       shd     %r0,%r26,31,%r1         ;  r1 = hi(10 x r)
-       addc    %r1,%r0,%r1             ;  r1 = hi(11 x r)
-; r in r1,,r29
-       zdep    %r29,27,28,%r25         ; r25 = lo(10000 x r)
-       add     %r25,%r29,%r25          ; r25 = lo(10001 x r)
-       shd     %r1,%r29,28,%r29        ; r29 = hi(10000 x r)
-       addc    %r29,%r1,%r29           ; r29 = hi(10001 x r)
-; r in r29,,r25
-       zdep    %r25,23,24,%r1          ;  r1 = lo(100000000 x r)
-       add     %r1,%r25,%r1            ;  r1 = lo(100000001 x r)
-       shd     %r29,%r25,24,%r25       ; r25 = hi(100000000 x r)
-       addc    %r25,%r29,%r25          ; r25 = hi(100000001 x r)
-; r in r25,,r1
-       zdep    %r1,15,16,%r29
-       add     %r29,%r1,%r29
-       shd     %r25,%r1,16,%r1
-       addc    %r1,%r25,%r1
-; r in r1,,r29
-       sh2add  %r29,%r26,%r0           ;  r0 = lo(1000 x r) + dividend
-       shd     %r1,%r29,30,%r29        ; r29 = hi(1000 x r)
-       addc    %r29,%r0,%r29
-       bv      %r0(ret)
-       extru   %r29,28,29,result
-       .exit
-       .procend
-#endif
-
-
-#if defined (L_divU_12) && !defined (SMALL_LIB)
-#undef L_divU_12
-#define dividend %r26
-#define divisor %r25
-#define tmp %r1
-#define result %r29
-#define ret %r31
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align 4
-       .export $$divU_12
-$$divU_12
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       sh2add  %r26,%r26,%r29          ; r29 = lo(101 x r)
-       shd     %r0,%r26,30,%r1         ;  r1 = hi(100 x r)
-       addc    %r1,%r0,%r1             ;  r1 = hi(101 x r)
-; r in r1,,r29
-       zdep    %r29,27,28,%r25         ; r25 = lo(10000 x r)
-       add     %r25,%r29,%r25          ; r25 = lo(10001 x r)
-       shd     %r1,%r29,28,%r29        ; r29 = hi(10000 x r)
-       addc    %r29,%r1,%r29           ; r29 = hi(10001 x r)
-; r in r29,,r25
-       zdep    %r25,23,24,%r1          ;  r1 = lo(100000000 x r)
-       add     %r1,%r25,%r1            ;  r1 = lo(100000001 x r)
-       shd     %r29,%r25,24,%r25       ; r25 = hi(100000000 x r)
-       addc    %r25,%r29,%r25          ; r25 = hi(100000001 x r)
-; r in r25,,r1
-       zdep    %r1,15,16,%r29
-       add     %r29,%r1,%r29
-       shd     %r25,%r1,16,%r1
-       addc    %r1,%r25,%r1
-; r in r1,,r29
-       sh1add  %r29,%r26,%r0           ;  r0 = lo(10 x r) + dividend
-       shd     %r1,%r29,31,%r29        ; r29 = hi(10 x r)
-       addc    %r29,%r0,%r29
-       bv      %r0(ret)
-       extru   %r29,28,29,result
-       .exit
-       .procend
-#endif
-
-
-#ifdef L_divU_3
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_3
-$$divU_3
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             3,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_5
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_5
-$$divU_5
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             5,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_6
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_6
-$$divU_6
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             6,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_7
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_7
-$$divU_7
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             7,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_9
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_9
-$$divU_9
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             9,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_10
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_10
-$$divU_10
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             10,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_12
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_12
-$$divU_12
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             12,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_14
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_14
-$$divU_14
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             14,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divU_15
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divU_15
-$$divU_15
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divU
-       ldi             15,%r25
-       .exit
-       .procend
-       .import         $$divU,MILLICODE
-#endif
-
-#ifdef L_divI_3
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_3
-$$divI_3
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             3,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_5
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_5
-$$divI_5
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             5,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_6
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_6
-$$divI_6
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             6,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_7
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_7
-$$divI_7
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             7,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_9
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_9
-$$divI_9
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             9,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_10
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_10
-$$divI_10
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             10,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_12
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_12
-$$divI_12
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             12,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_14
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_14
-$$divI_14
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             14,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif
-
-#ifdef L_divI_15
-       .space  $TEXT$
-       .subspa $MILLICODE$,quad=0,align=8,access=0x2c,sort=8
-       .align  4
-       .export $$divI_15
-$$divI_15
-       .proc
-       .callinfo       frame=0,no_calls
-       .entry
-       b               $$divI
-       ldi             15,%r25
-       .exit
-       .procend
-       .import         $$divI,MILLICODE
-#endif