components/clisp/patches/arisparc.d.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Mon, 11 Mar 2013 10:38:09 -0700
branchs11-update
changeset 2520 ceec631e74d1
parent 328 38a06e74a699
permissions -rw-r--r--
Close of build 10.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
328
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     1
--- src.orig/arisparc.d	Thu Dec  6 00:06:32 2007
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     2
+++ src/arisparc.d	Mon Feb  2 15:35:22 2009
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     3
@@ -100,11 +100,11 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     4
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     5
 # extern struct { uint32 lo; uint32 hi; } mulu32_ (uint32 arg1, uint32 arg2);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     6
 # 2^32*hi+lo := arg1*arg2.
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     7
-C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     8
+C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     9
 #ifdef sparcv8
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    10
         umul    %o0,%o1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    11
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    12
-       _ rd      %y,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    13
+       _ rd      %y,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    14
 #else
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    15
         mov     %o1,%y
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    16
         sra     %o0,31,%o3      # Wartetakt, nötig z.B. für SUN SPARCstation IPC
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    17
@@ -143,7 +143,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    18
         mulscc  %o2,%o0,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    19
         mulscc  %o2,%g0,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    20
         and     %o3,%o1,%o3     # %o3 = (0 falls %o0>=0, %o1 falls %o0<0)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    21
-        add     %o2,%o3,%g1     # hi
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    22
+        add     %o2,%o3,%g3     # hi
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    23
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    24
        _ rd      %y,%o0         # lo
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    25
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    26
@@ -216,7 +216,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    27
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    28
 # extern struct { uint32 q; uint32 r; } divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    29
 # x = 2^32*xhi+xlo = q*y+r schreiben. Sei bekannt, dass 0 <= x < 2^32*y .
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    30
-C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    31
+C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    32
 #if defined(sparcv8)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    33
         # Problem: Is udiv worth using (gmp-2.0.2 doesn't use it) ??
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    34
         wr      %o0,%g0,%y
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    35
@@ -224,9 +224,9 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    36
         nop                     # wait 2 | processors such as Ross Hypersparc,
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    37
         nop                     # wait 3 | but not for most of the others.
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    38
         udiv    %o1,%o2,%o0     # x durch y dividieren, %o0 := q
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    39
-        umul    %o0,%o2,%g1     # %g1 := (q*y) mod 2^32
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    40
+        umul    %o0,%o2,%g3     # %g3 := (q*y) mod 2^32
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    41
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    42
-       _ sub     %o1,%g1,%g1    # %g1 := (xlo-q*y) mod 2^32 = r
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    43
+       _ sub     %o1,%g3,%g3    # %g3 := (xlo-q*y) mod 2^32 = r
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    44
 #else
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    45
         # %o0 = xhi, %o1 = xlo, %o2 = y
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    46
 # Divisions-Einzelschritte:
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    47
@@ -305,20 +305,20 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    48
        _ subcc   %o0,%o2,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    49
         subcc   %o3,%o2,%o0     # muss der Quotient nochmals erhöht werden?
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    50
         bcs     Ll03
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    51
-       _ mov     %o3,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    52
+       _ mov     %o3,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    53
         # Quotient 2 mal erhöhen, Rest %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    54
-        mov     %o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    55
+        mov     %o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    56
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    57
        _ add     %o1,2,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    58
 Ll02:   # kein Additions-Überlauf.
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    59
         # Wegen y>=2^31 muss der Quotient noch höchstens 1 mal erhöht werden:
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    60
         bcs     Ll04            # %o0 < %o2 -> Rest %o0 und Quotient %o1 OK
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    61
-       _ mov     %o3,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    62
+       _ mov     %o3,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    63
 Ll03:   # Quotient %o1 erhöhen, Rest = %o0-%o2 = %o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    64
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    65
        _ add     %o1,1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    66
 Ll04:   # Quotient %o1 und Rest %o0 OK
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    67
-        mov     %o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    68
+        mov     %o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    69
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    70
        _ mov     %o1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    71
 # Parallelschiene zu La01..La32:
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    72
@@ -366,20 +366,20 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    73
        _ subcc   %o3,%o2,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    74
         subcc   %o0,%o2,%o3     # muss der Quotient nochmals erhöht werden?
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    75
         bcs     Ll06
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    76
-       _ mov     %o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    77
+       _ mov     %o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    78
         # Quotient 2 mal erhöhen, Rest %o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    79
-        mov     %o3,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    80
+        mov     %o3,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    81
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    82
        _ add     %o1,2,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    83
 Ll05:   # kein Additions-Überlauf.
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    84
         # Wegen y>=2^31 muss der Quotient noch höchstens 1 mal erhöht werden:
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    85
         bcs     Ll07            # %o3 < %o2 -> Rest %o3 und Quotient %o1 OK
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    86
-       _ mov     %o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    87
+       _ mov     %o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    88
 Ll06:   # Quotient %o1 erhöhen, Rest = %o3-%o2 = %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    89
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    90
        _ add     %o1,1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    91
 Ll07:   # Quotient %o1 und Rest %o3 OK
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    92
-        mov     %o3,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    93
+        mov     %o3,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    94
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    95
        _ mov     %o1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    96
 Lsmalldiv: # Division durch y < 2^31
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    97
@@ -416,7 +416,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    98
 Lc29:   SB0(); SA0(Ld30)        # Bit 2 des Quotienten bestimmen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    99
 Lc30:   SB0(); SA0(Ld31)        # Bit 1 des Quotienten bestimmen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   100
 Lc31:   SB0(); SA0(Ld32)        # Bit 0 des Quotienten bestimmen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   101
-Lc32:   mov     %o0,%g1         # Rest aus %o0 in %g1 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   102
+Lc32:   mov     %o0,%g3         # Rest aus %o0 in %g3 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   103
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   104
        _ xor     %o1,-1,%o0     # Quotient nach %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   105
 # Parallelschiene zu Lc01..Lc32:
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   106
@@ -451,7 +451,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   107
 Ld29:   SB1(); SA1(Lc30)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   108
 Ld30:   SB1(); SA1(Lc31)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   109
 Ld31:   SB1(); SA1(Lc32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   110
-Ld32:   mov     %o3,%g1         # Rest aus %o3 in %g1 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   111
+Ld32:   mov     %o3,%g3         # Rest aus %o3 in %g3 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   112
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   113
        _ xor     %o1,-1,%o0     # Quotient nach %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   114
 Levendiv: # Division durch gerades y.
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   115
@@ -493,7 +493,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   116
 Le30:   SB0(); SA0(Lf31)        # Bit 1 des Quotienten bestimmen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   117
 Le31:   SB0(); SA0(Lf32)        # Bit 0 des Quotienten bestimmen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   118
 Le32:   SB0()                   # Bit 0 des Restes bestimmen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   119
-        mov     %o0,%g1         # Rest aus %o0 in %g1 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   120
+        mov     %o0,%g3         # Rest aus %o0 in %g3 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   121
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   122
        _ xor     %o1,-1,%o0     # Quotient nach %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   123
 # Parallelschiene zu Le01..Le32:
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   124
@@ -529,7 +529,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   125
 Lf30:   SB1(); SA1(Le31)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   126
 Lf31:   SB1(); SA1(Le32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   127
 Lf32:   SB1()
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   128
-        mov     %o3,%g1         # Rest aus %o0 in %g1 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   129
+        mov     %o3,%g3         # Rest aus %o0 in %g3 abspeichern
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   130
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   131
        _ xor     %o1,-1,%o0     # Quotient nach %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   132
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   133
@@ -1205,18 +1205,18 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   134
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   135
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   136
 # extern uintD add_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   137
-C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   138
+C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   139
 #if STANDARD_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   140
         andcc %o3,%o3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   141
         be Ll49
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   142
-       _ mov %g0,%g1            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   143
+       _ mov %g0,%g3            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   144
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   145
 Ll48:     ld [%o0],%o4          # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   146
           sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   147
           ld [%o1],%o5          # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   148
-          subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   149
+          subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   150
           addxcc %o4,%o5,%o4    # addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   151
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   152
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   153
           sub %o2,4,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   154
           st %o4,[%o2]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   155
           subcc %o3,1,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   156
@@ -1223,12 +1223,12 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   157
           bne Ll48
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   158
          _ sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   159
 Ll49:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   160
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   161
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   162
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   163
 #if COUNTER_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   164
         andcc %o3,%o3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   165
         be Ll49
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   166
-       _ mov %g0,%g1            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   167
+       _ mov %g0,%g3            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   168
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   169
         sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   170
         sll %o3,2,%o3           # %o3 = 4*count
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   171
@@ -1237,14 +1237,14 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   172
         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   173
 Ll48:     ld [%o0+%o3],%o4      # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   174
           ld [%o1+%o3],%o5      # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   175
-          subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   176
+          subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   177
           addxcc %o4,%o5,%o4    # addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   178
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   179
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   180
           subcc %o3,4,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   181
           bne Ll48
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   182
          _ st %o4,[%o2+%o3]     # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   183
 Ll49:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   184
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   185
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   186
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   187
 #if UNROLLED_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   188
         and %o3,7,%o4           # count mod 8
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   189
@@ -1257,7 +1257,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   190
         sub %o5,%o4,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   191
         jmp %o5                 # Sprung nach _add_loop_down+4*(12+4*8-4*(count mod 8))
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   192
        _ subcc %g0,%g0,%g0      # carry löschen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   193
-Ll48:     subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   194
+Ll48:     subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   195
           ld [%o0+28],%o4       # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   196
           ld [%o1+28],%o5       # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   197
           addxcc %o5,%o4,%o5    # addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   198
@@ -1290,7 +1290,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   199
           ld [%o1],%o5          # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   200
           addxcc %o5,%o4,%o5    # addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   201
           st %o5,[%o2]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   202
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   203
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   204
           sub %o0,32,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   205
           sub %o1,32,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   206
           subcc %o3,8,%o3       # noch mindestens 8 Digits abzuarbeiten?
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   207
@@ -1297,7 +1297,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   208
           bcc Ll48
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   209
          _ sub %o2,32,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   210
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   211
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   212
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   213
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   214
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   215
 # extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   216
@@ -1431,18 +1431,18 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   217
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   218
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   219
 # extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   220
-C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   221
+C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   222
 #if STANDARD_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   223
         andcc %o3,%o3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   224
         be Ll56
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   225
-       _ mov %g0,%g1            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   226
+       _ mov %g0,%g3            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   227
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   228
 Ll55:     ld [%o0],%o4          # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   229
           sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   230
           ld [%o1],%o5          # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   231
-          subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   232
+          subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   233
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   234
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   235
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   236
           sub %o2,4,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   237
           st %o4,[%o2]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   238
           subcc %o3,1,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   239
@@ -1449,12 +1449,12 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   240
           bne Ll55
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   241
          _ sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   242
 Ll56:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   243
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   244
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   245
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   246
 #if COUNTER_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   247
         andcc %o3,%o3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   248
         be Ll56
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   249
-       _ mov %g0,%g1            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   250
+       _ mov %g0,%g3            # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   251
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   252
         sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   253
         sll %o3,2,%o3           # %o3 = 4*count
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   254
@@ -1463,14 +1463,14 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   255
         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   256
 Ll55:     ld [%o0+%o3],%o4      # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   257
           ld [%o1+%o3],%o5      # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   258
-          subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   259
+          subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   260
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   261
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   262
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   263
           subcc %o3,4,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   264
           bne Ll55
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   265
          _ st %o4,[%o2+%o3]     # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   266
 Ll56:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   267
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   268
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   269
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   270
 #if UNROLLED_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   271
         and %o3,7,%o4           # count mod 8
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   272
@@ -1483,7 +1483,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   273
         sub %o5,%o4,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   274
         jmp %o5                 # Sprung nach _sub_loop_down+4*(12+4*8-4*(count mod 8))
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   275
        _ subcc %g0,%g0,%g0      # carry löschen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   276
-Ll55:     subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   277
+Ll55:     subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   278
           ld [%o0+28],%o4       # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   279
           ld [%o1+28],%o5       # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   280
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   281
@@ -1516,7 +1516,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   282
           ld [%o1],%o5          # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   283
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   284
           st %o4,[%o2]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   285
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   286
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   287
           sub %o0,32,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   288
           sub %o1,32,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   289
           subcc %o3,8,%o3       # noch mindestens 8 Digits abzuarbeiten?
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   290
@@ -1523,22 +1523,22 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   291
           bcc Ll55
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   292
          _ sub %o2,32,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   293
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   294
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   295
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   296
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   297
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   298
 # extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count, uintD carry);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   299
-C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   300
+C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   301
 #if STANDARD_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   302
         andcc %o3,%o3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   303
         be Ll58
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   304
-       _ mov %o4,%g1            # Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   305
+       _ mov %o4,%g3            # Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   306
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   307
 Ll57:     ld [%o0],%o4          # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   308
           sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   309
           ld [%o1],%o5          # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   310
-          subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   311
+          subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   312
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   313
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   314
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   315
           sub %o2,4,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   316
           st %o4,[%o2]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   317
           subcc %o3,1,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   318
@@ -1545,12 +1545,12 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   319
           bne Ll57
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   320
          _ sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   321
 Ll58:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   322
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   323
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   324
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   325
 #if COUNTER_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   326
         andcc %o3,%o3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   327
         be Ll58
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   328
-       _ mov %o4,%g1            # Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   329
+       _ mov %o4,%g3            # Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   330
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   331
         sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   332
         sll %o3,2,%o3           # %o3 = 4*count
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   333
@@ -1559,27 +1559,27 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   334
         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   335
 Ll57:     ld [%o0+%o3],%o4      # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   336
           ld [%o1+%o3],%o5      # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   337
-          subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   338
+          subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   339
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   340
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   341
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   342
           subcc %o3,4,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   343
           bne Ll57
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   344
          _ st %o4,[%o2+%o3]     # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   345
 Ll58:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   346
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   347
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   348
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   349
 #if UNROLLED_LOOPS
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   350
         and %o3,7,%o5           # count mod 8
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   351
-        sll %o5,2,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   352
-        sub %o0,%g1,%o0         # %o0 = &sourceptr1[-(count mod 8)]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   353
-        sub %o1,%g1,%o1         # %o1 = &sourceptr2[-(count mod 8)]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   354
-        sub %o2,%g1,%o2         # %o2 = &destptr[-(count mod 8)]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   355
+        sll %o5,2,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   356
+        sub %o0,%g3,%o0         # %o0 = &sourceptr1[-(count mod 8)]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   357
+        sub %o1,%g3,%o1         # %o1 = &sourceptr2[-(count mod 8)]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   358
+        sub %o2,%g3,%o2         # %o2 = &destptr[-(count mod 8)]
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   359
         sll %o5,4,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   360
-        set _subx_loop_down+176,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   361
-        sub %g1,%o5,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   362
-        jmp %g1                 # Sprung nach _subx_loop_down+4*(12+4*8-4*(count mod 8))
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   363
+        set _subx_loop_down+176,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   364
+        sub %g3,%o5,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   365
+        jmp %g3                 # Sprung nach _subx_loop_down+4*(12+4*8-4*(count mod 8))
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   366
        _ subcc %g0,%o4,%g0      # carry initialisieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   367
-Ll57:     subcc %g0,%g1,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   368
+Ll57:     subcc %g0,%g3,%g0     # carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   369
           ld [%o0+28],%o4       # source1-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   370
           ld [%o1+28],%o5       # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   371
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   372
@@ -1612,7 +1612,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   373
           ld [%o1],%o5          # source2-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   374
           subxcc %o4,%o5,%o4    # subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   375
           st %o4,[%o2]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   376
-          addx %g0,%g0,%g1      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   377
+          addx %g0,%g0,%g3      # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   378
           sub %o0,32,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   379
           sub %o1,32,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   380
           subcc %o3,8,%o3       # noch mindestens 8 Digits abzuarbeiten?
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   381
@@ -1619,7 +1619,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   382
           bcc Ll57
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   383
          _ sub %o2,32,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   384
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   385
-       _ mov %g1,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   386
+       _ mov %g3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   387
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   388
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   389
 # extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   390
@@ -1831,10 +1831,10 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   391
        _ mov %o3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   392
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   393
 # extern uintD shiftleft_loop_down (uintD* ptr, uintC count, uintC i, uintD carry);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   394
-C(shiftleft_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   395
+C(shiftleft_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   396
         andcc %o1,%o1,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   397
         be Ll72
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   398
-       _ sub %g0,%o2,%g1        # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   399
+       _ sub %g0,%o2,%g3        # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   400
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   401
 Ll71:     ld [%o0],%o4          # Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   402
           subcc %o1,1,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   403
@@ -1841,7 +1841,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   404
           sll %o4,%o2,%o5       # dessen niedere (32-i) Bits
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   405
           or %o3,%o5,%o5        # mit dem alten Carry kombinieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   406
           st %o5,[%o0]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   407
-          srl %o4,%g1,%o3       # dessen höchste i Bits liefern den neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   408
+          srl %o4,%g3,%o3       # dessen höchste i Bits liefern den neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   409
           bne Ll71
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   410
          _ sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   411
 Ll72:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   412
@@ -1848,11 +1848,11 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   413
        _ mov %o3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   414
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   415
 # extern uintD shiftleftcopy_loop_down (uintD* sourceptr, uintD* destptr, uintC count, uintC i);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   416
-C(shiftleftcopy_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   417
+C(shiftleftcopy_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   418
         andcc %o2,%o2,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   419
         be Ll74
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   420
        _ mov 0,%o4              # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   421
-        sub %g0,%o3,%g1         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   422
+        sub %g0,%o3,%g3         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   423
         sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   424
 Ll73:     ld [%o0],%o5          # Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   425
           subcc %o2,1,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   426
@@ -1860,7 +1860,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   427
           or %o4,%g2,%g2        # mit dem alten Carry kombinieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   428
           sub %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   429
           st %g2,[%o1]          # Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   430
-          srl %o5,%g1,%o4       # dessen höchste i Bits liefern den neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   431
+          srl %o5,%g3,%o4       # dessen höchste i Bits liefern den neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   432
           bne Ll73
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   433
          _ sub %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   434
 Ll74:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   435
@@ -1883,17 +1883,17 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   436
        _ mov %o2,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   437
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   438
 # extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   439
-C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   440
+C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   441
         andcc %o1,%o1,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   442
         be Ll78
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   443
        _ or %g0,%g0,%o3         # Carry := 0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   444
-        sub %g0,%o2,%g1         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   445
+        sub %g0,%o2,%g3         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   446
 Ll77:     ld [%o0],%o4          # Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   447
           subcc %o1,1,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   448
           srl %o4,%o2,%o5       # shiften
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   449
           or %o3,%o5,%o5        # und mit altem Carry kombinieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   450
           st %o5,[%o0]          # und ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   451
-          sll %o4,%g1,%o3       # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   452
+          sll %o4,%g3,%o3       # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   453
           bne Ll77
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   454
          _ add %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   455
 Ll78:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   456
@@ -1900,12 +1900,12 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   457
        _ mov %o3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   458
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   459
 # extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   460
-C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   461
+C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   462
         ld [%o0],%o4            # erstes Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   463
-        sub %g0,%o2,%g1         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   464
+        sub %g0,%o2,%g3         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   465
         sra %o4,%o2,%o5         # shiften
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   466
         st %o5,[%o0]            # und ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   467
-        sll %o4,%g1,%o3         # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   468
+        sll %o4,%g3,%o3         # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   469
         subcc %o1,1,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   470
         be Ll80
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   471
        _ add %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   472
@@ -1914,7 +1914,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   473
           srl %o4,%o2,%o5       # shiften
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   474
           or %o3,%o5,%o5        # und mit altem Carry kombinieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   475
           st %o5,[%o0]          # und ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   476
-          sll %o4,%g1,%o3       # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   477
+          sll %o4,%g3,%o3       # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   478
           bne Ll79
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   479
          _ add %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   480
 Ll80:   retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   481
@@ -1921,17 +1921,17 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   482
        _ mov %o3,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   483
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   484
 # extern uintD shiftrightcopy_loop_up (uintD* sourceptr, uintD* destptr, uintC count, uintC i, uintD carry);
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   485
-C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1,%g2, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   486
-        sub %g0,%o3,%g1         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   487
+C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3,%g2, Output in %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   488
+        sub %g0,%o3,%g3         # 32-i (mod 32)
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   489
         andcc %o2,%o2,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   490
         be Ll82
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   491
-       _ sll %o4,%g1,%g2        # erster Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   492
+       _ sll %o4,%g3,%g2        # erster Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   493
 Ll81:     ld [%o0],%o4          # Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   494
           add %o0,4,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   495
           srl %o4,%o3,%o5       # shiften
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   496
           or %g2,%o5,%o5        # und mit altem Carry kombinieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   497
           st %o5,[%o1]          # und ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   498
-          sll %o4,%g1,%g2       # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   499
+          sll %o4,%g3,%g2       # neuer Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   500
           subcc %o2,1,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   501
           bne Ll81
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   502
          _ add %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   503
@@ -1982,7 +1982,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   504
           call _mulu32_         # mit digit multiplizieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   505
          _ mov %i0,%o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   506
           addcc %l0,%o0,%o0     # und bisherigen Carry addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   507
-          addx %g0,%g1,%l0      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   508
+          addx %g0,%g3,%l0      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   509
           sub %i2,4,%i2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   510
           subcc %i3,1,%i3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   511
           bne Ll86
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   512
@@ -1991,16 +1991,16 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   513
         ret
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   514
        _ restore
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   515
 #else
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   516
-C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   517
+C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   518
         mov 0,%o4               # Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   519
-Ll87:     ld [%o1-4],%g1        # nächstes Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   520
-          # mit digit multiplizieren: %o0 * %g1 -> %o5|%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   521
+Ll87:     ld [%o1-4],%g3        # nächstes Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   522
+          # mit digit multiplizieren: %o0 * %g3 -> %o5|%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   523
 #ifdef sparcv8
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   524
           sub     %o1,4,%o1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   525
-          umul    %g1,%o0,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   526
+          umul    %g3,%o0,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   527
           rd      %y,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   528
 #else
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   529
-          mov     %g1,%y
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   530
+          mov     %g3,%y
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   531
           sub     %o1,4,%o1     # Wartetakt!
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   532
           andcc   %g0,%g0,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   533
           mulscc  %o5,%o0,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   534
@@ -2038,15 +2038,15 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   535
           mulscc  %o5,%g0,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   536
           tst     %o0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   537
           bl,a    Ll88
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   538
-         __ add     %o5,%g1,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   539
-Ll88:     rd      %y,%g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   540
+         __ add     %o5,%g3,%o5
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   541
+Ll88:     rd      %y,%g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   542
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   543
-          addcc %o4,%g1,%g1     # und bisherigen Carry addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   544
+          addcc %o4,%g3,%g3     # und bisherigen Carry addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   545
           addx %g0,%o5,%o4      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   546
           sub %o2,4,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   547
           subcc %o3,1,%o3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   548
           bne Ll87
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   549
-         _ st %g1,[%o2]         # Low-Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   550
+         _ st %g3,[%o2]         # Low-Digit ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   551
         retl
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   552
        _ st %o4,[%o2-4]         # letzten Carry ablegen
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   553
 #endif
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   554
@@ -2063,7 +2063,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   555
           sub %i2,4,%i2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   556
           ld [%i2],%o1          # nächstes dest-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   557
           addcc %l0,%o0,%o0     # und bisherigen Carry addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   558
-          addx %g0,%g1,%l0      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   559
+          addx %g0,%g3,%l0      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   560
           addcc %o1,%o0,%o0     # addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   561
           addx %g0,%l0,%l0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   562
           subcc %i3,1,%i3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   563
@@ -2150,7 +2150,7 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   564
           sub %i2,4,%i2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   565
           ld [%i2],%o1          # nächstes dest-digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   566
           addcc %l0,%o0,%o0     # und bisherigen Carry addieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   567
-          addx %g0,%g1,%l0      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   568
+          addx %g0,%g3,%l0      # High-Digit gibt neuen Carry
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   569
           subcc %o1,%o0,%o1     # davon das Low-Digit subtrahieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   570
           addx %g0,%l0,%l0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   571
           subcc %i3,1,%i3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   572
@@ -2230,16 +2230,16 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   573
         save %sp,-96,%sp
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   574
         andcc %i2,%i2,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   575
         be Ll92
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   576
-       _ mov 0,%g1                 # Rest
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   577
-Ll91:     mov %g1,%o0              # Rest als High-Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   578
+       _ mov 0,%g3                 # Rest
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   579
+Ll91:     mov %g3,%o0              # Rest als High-Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   580
           ld [%i1],%o1             # nächstes Digit als Low-Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   581
           call C(divu_6432_3232_)  # zusammen durch digit dividieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   582
          _ mov %i0,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   583
-          st %o0,[%i1]             # Quotient ablegen, Rest in %g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   584
+          st %o0,[%i1]             # Quotient ablegen, Rest in %g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   585
           subcc %i2,1,%i2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   586
           bne Ll91
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   587
          _ add %i1,4,%i1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   588
-Ll92:   mov %g1,%i0                # Rest als Ergebnis
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   589
+Ll92:   mov %g3,%i0                # Rest als Ergebnis
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   590
         ret
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   591
        _ restore
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   592
 
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   593
@@ -2248,17 +2248,17 @@
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   594
         save %sp,-96,%sp
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   595
         andcc %i3,%i3,%g0
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   596
         be Ll94
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   597
-       _ mov 0,%g1                 # Rest
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   598
-Ll93:     mov %g1,%o0              # Rest als High-Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   599
+       _ mov 0,%g3                 # Rest
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   600
+Ll93:     mov %g3,%o0              # Rest als High-Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   601
           ld [%i1],%o1             # nächstes Digit als Low-Digit
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   602
           call C(divu_6432_3232_)  # zusammen durch digit dividieren
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   603
          _ mov %i0,%o2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   604
-          st %o0,[%i2]             # Quotient ablegen, Rest in %g1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   605
+          st %o0,[%i2]             # Quotient ablegen, Rest in %g3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   606
           add %i1,4,%i1
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   607
           subcc %i3,1,%i3
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   608
           bne Ll93
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   609
          _ add %i2,4,%i2
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   610
-Ll94:   mov %g1,%i0                # Rest als Ergebnis
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   611
+Ll94:   mov %g3,%i0                # Rest als Ergebnis
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   612
         ret
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   613
        _ restore
38a06e74a699 7054634 Move clisp to userland
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   614