--- src.orig/arisparc.d Thu Dec 6 00:06:32 2007
+++ src/arisparc.d Mon Feb 2 15:35:22 2009
@@ -100,11 +100,11 @@
# extern struct { uint32 lo; uint32 hi; } mulu32_ (uint32 arg1, uint32 arg2);
# 2^32*hi+lo := arg1*arg2.
-C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g1
+C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g3
#ifdef sparcv8
umul %o0,%o1,%o0
retl
- _ rd %y,%g1
+ _ rd %y,%g3
#else
mov %o1,%y
sra %o0,31,%o3 # Wartetakt, nötig z.B. für SUN SPARCstation IPC
@@ -143,7 +143,7 @@
mulscc %o2,%o0,%o2
mulscc %o2,%g0,%o2
and %o3,%o1,%o3 # %o3 = (0 falls %o0>=0, %o1 falls %o0<0)
- add %o2,%o3,%g1 # hi
+ add %o2,%o3,%g3 # hi
retl
_ rd %y,%o0 # lo
#endif
@@ -216,7 +216,7 @@
# extern struct { uint32 q; uint32 r; } divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y);
# x = 2^32*xhi+xlo = q*y+r schreiben. Sei bekannt, dass 0 <= x < 2^32*y .
-C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g1
+C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g3
#if defined(sparcv8)
# Problem: Is udiv worth using (gmp-2.0.2 doesn't use it) ??
wr %o0,%g0,%y
@@ -224,9 +224,9 @@
nop # wait 2 | processors such as Ross Hypersparc,
nop # wait 3 | but not for most of the others.
udiv %o1,%o2,%o0 # x durch y dividieren, %o0 := q
- umul %o0,%o2,%g1 # %g1 := (q*y) mod 2^32
+ umul %o0,%o2,%g3 # %g3 := (q*y) mod 2^32
retl
- _ sub %o1,%g1,%g1 # %g1 := (xlo-q*y) mod 2^32 = r
+ _ sub %o1,%g3,%g3 # %g3 := (xlo-q*y) mod 2^32 = r
#else
# %o0 = xhi, %o1 = xlo, %o2 = y
# Divisions-Einzelschritte:
@@ -305,20 +305,20 @@
_ subcc %o0,%o2,%o3
subcc %o3,%o2,%o0 # muss der Quotient nochmals erhöht werden?
bcs Ll03
- _ mov %o3,%g1
+ _ mov %o3,%g3
# Quotient 2 mal erhöhen, Rest %o0
- mov %o0,%g1
+ mov %o0,%g3
retl
_ add %o1,2,%o0
Ll02: # kein Additions-Überlauf.
# Wegen y>=2^31 muss der Quotient noch höchstens 1 mal erhöht werden:
bcs Ll04 # %o0 < %o2 -> Rest %o0 und Quotient %o1 OK
- _ mov %o3,%g1
+ _ mov %o3,%g3
Ll03: # Quotient %o1 erhöhen, Rest = %o0-%o2 = %o3
retl
_ add %o1,1,%o0
Ll04: # Quotient %o1 und Rest %o0 OK
- mov %o0,%g1
+ mov %o0,%g3
retl
_ mov %o1,%o0
# Parallelschiene zu La01..La32:
@@ -366,20 +366,20 @@
_ subcc %o3,%o2,%o0
subcc %o0,%o2,%o3 # muss der Quotient nochmals erhöht werden?
bcs Ll06
- _ mov %o0,%g1
+ _ mov %o0,%g3
# Quotient 2 mal erhöhen, Rest %o3
- mov %o3,%g1
+ mov %o3,%g3
retl
_ add %o1,2,%o0
Ll05: # kein Additions-Überlauf.
# Wegen y>=2^31 muss der Quotient noch höchstens 1 mal erhöht werden:
bcs Ll07 # %o3 < %o2 -> Rest %o3 und Quotient %o1 OK
- _ mov %o0,%g1
+ _ mov %o0,%g3
Ll06: # Quotient %o1 erhöhen, Rest = %o3-%o2 = %o0
retl
_ add %o1,1,%o0
Ll07: # Quotient %o1 und Rest %o3 OK
- mov %o3,%g1
+ mov %o3,%g3
retl
_ mov %o1,%o0
Lsmalldiv: # Division durch y < 2^31
@@ -416,7 +416,7 @@
Lc29: SB0(); SA0(Ld30) # Bit 2 des Quotienten bestimmen
Lc30: SB0(); SA0(Ld31) # Bit 1 des Quotienten bestimmen
Lc31: SB0(); SA0(Ld32) # Bit 0 des Quotienten bestimmen
-Lc32: mov %o0,%g1 # Rest aus %o0 in %g1 abspeichern
+Lc32: mov %o0,%g3 # Rest aus %o0 in %g3 abspeichern
retl
_ xor %o1,-1,%o0 # Quotient nach %o0
# Parallelschiene zu Lc01..Lc32:
@@ -451,7 +451,7 @@
Ld29: SB1(); SA1(Lc30)
Ld30: SB1(); SA1(Lc31)
Ld31: SB1(); SA1(Lc32)
-Ld32: mov %o3,%g1 # Rest aus %o3 in %g1 abspeichern
+Ld32: mov %o3,%g3 # Rest aus %o3 in %g3 abspeichern
retl
_ xor %o1,-1,%o0 # Quotient nach %o0
Levendiv: # Division durch gerades y.
@@ -493,7 +493,7 @@
Le30: SB0(); SA0(Lf31) # Bit 1 des Quotienten bestimmen
Le31: SB0(); SA0(Lf32) # Bit 0 des Quotienten bestimmen
Le32: SB0() # Bit 0 des Restes bestimmen
- mov %o0,%g1 # Rest aus %o0 in %g1 abspeichern
+ mov %o0,%g3 # Rest aus %o0 in %g3 abspeichern
retl
_ xor %o1,-1,%o0 # Quotient nach %o0
# Parallelschiene zu Le01..Le32:
@@ -529,7 +529,7 @@
Lf30: SB1(); SA1(Le31)
Lf31: SB1(); SA1(Le32)
Lf32: SB1()
- mov %o3,%g1 # Rest aus %o0 in %g1 abspeichern
+ mov %o3,%g3 # Rest aus %o0 in %g3 abspeichern
retl
_ xor %o1,-1,%o0 # Quotient nach %o0
#endif
@@ -1205,18 +1205,18 @@
#endif
# extern uintD add_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
-C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
+C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
#if STANDARD_LOOPS
andcc %o3,%o3,%g0
be Ll49
- _ mov %g0,%g1 # Carry := 0
+ _ mov %g0,%g3 # Carry := 0
sub %o0,4,%o0
Ll48: ld [%o0],%o4 # source1-digit
sub %o1,4,%o1
ld [%o1],%o5 # source2-digit
- subcc %g0,%g1,%g0 # carry
+ subcc %g0,%g3,%g0 # carry
addxcc %o4,%o5,%o4 # addieren
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
sub %o2,4,%o2
st %o4,[%o2] # Digit ablegen
subcc %o3,1,%o3
@@ -1223,12 +1223,12 @@
bne Ll48
_ sub %o0,4,%o0
Ll49: retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
#if COUNTER_LOOPS
andcc %o3,%o3,%g0
be Ll49
- _ mov %g0,%g1 # Carry := 0
+ _ mov %g0,%g3 # Carry := 0
sub %o0,4,%o0
sub %o1,4,%o1
sll %o3,2,%o3 # %o3 = 4*count
@@ -1237,14 +1237,14 @@
sub %o2,%o3,%o2 # %o2 = &destptr[-count]
Ll48: ld [%o0+%o3],%o4 # source1-digit
ld [%o1+%o3],%o5 # source2-digit
- subcc %g0,%g1,%g0 # carry
+ subcc %g0,%g3,%g0 # carry
addxcc %o4,%o5,%o4 # addieren
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
subcc %o3,4,%o3
bne Ll48
_ st %o4,[%o2+%o3] # Digit ablegen
Ll49: retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
#if UNROLLED_LOOPS
and %o3,7,%o4 # count mod 8
@@ -1257,7 +1257,7 @@
sub %o5,%o4,%o5
jmp %o5 # Sprung nach _add_loop_down+4*(12+4*8-4*(count mod 8))
_ subcc %g0,%g0,%g0 # carry löschen
-Ll48: subcc %g0,%g1,%g0 # carry
+Ll48: subcc %g0,%g3,%g0 # carry
ld [%o0+28],%o4 # source1-digit
ld [%o1+28],%o5 # source2-digit
addxcc %o5,%o4,%o5 # addieren
@@ -1290,7 +1290,7 @@
ld [%o1],%o5 # source2-digit
addxcc %o5,%o4,%o5 # addieren
st %o5,[%o2] # Digit ablegen
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
sub %o0,32,%o0
sub %o1,32,%o1
subcc %o3,8,%o3 # noch mindestens 8 Digits abzuarbeiten?
@@ -1297,7 +1297,7 @@
bcc Ll48
_ sub %o2,32,%o2
retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
# extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
@@ -1431,18 +1431,18 @@
#endif
# extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
-C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
+C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
#if STANDARD_LOOPS
andcc %o3,%o3,%g0
be Ll56
- _ mov %g0,%g1 # Carry := 0
+ _ mov %g0,%g3 # Carry := 0
sub %o0,4,%o0
Ll55: ld [%o0],%o4 # source1-digit
sub %o1,4,%o1
ld [%o1],%o5 # source2-digit
- subcc %g0,%g1,%g0 # carry
+ subcc %g0,%g3,%g0 # carry
subxcc %o4,%o5,%o4 # subtrahieren
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
sub %o2,4,%o2
st %o4,[%o2] # Digit ablegen
subcc %o3,1,%o3
@@ -1449,12 +1449,12 @@
bne Ll55
_ sub %o0,4,%o0
Ll56: retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
#if COUNTER_LOOPS
andcc %o3,%o3,%g0
be Ll56
- _ mov %g0,%g1 # Carry := 0
+ _ mov %g0,%g3 # Carry := 0
sub %o0,4,%o0
sub %o1,4,%o1
sll %o3,2,%o3 # %o3 = 4*count
@@ -1463,14 +1463,14 @@
sub %o2,%o3,%o2 # %o2 = &destptr[-count]
Ll55: ld [%o0+%o3],%o4 # source1-digit
ld [%o1+%o3],%o5 # source2-digit
- subcc %g0,%g1,%g0 # carry
+ subcc %g0,%g3,%g0 # carry
subxcc %o4,%o5,%o4 # subtrahieren
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
subcc %o3,4,%o3
bne Ll55
_ st %o4,[%o2+%o3] # Digit ablegen
Ll56: retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
#if UNROLLED_LOOPS
and %o3,7,%o4 # count mod 8
@@ -1483,7 +1483,7 @@
sub %o5,%o4,%o5
jmp %o5 # Sprung nach _sub_loop_down+4*(12+4*8-4*(count mod 8))
_ subcc %g0,%g0,%g0 # carry löschen
-Ll55: subcc %g0,%g1,%g0 # carry
+Ll55: subcc %g0,%g3,%g0 # carry
ld [%o0+28],%o4 # source1-digit
ld [%o1+28],%o5 # source2-digit
subxcc %o4,%o5,%o4 # subtrahieren
@@ -1516,7 +1516,7 @@
ld [%o1],%o5 # source2-digit
subxcc %o4,%o5,%o4 # subtrahieren
st %o4,[%o2] # Digit ablegen
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
sub %o0,32,%o0
sub %o1,32,%o1
subcc %o3,8,%o3 # noch mindestens 8 Digits abzuarbeiten?
@@ -1523,22 +1523,22 @@
bcc Ll55
_ sub %o2,32,%o2
retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
# extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count, uintD carry);
-C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1, Output in %o0
+C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3, Output in %o0
#if STANDARD_LOOPS
andcc %o3,%o3,%g0
be Ll58
- _ mov %o4,%g1 # Carry
+ _ mov %o4,%g3 # Carry
sub %o0,4,%o0
Ll57: ld [%o0],%o4 # source1-digit
sub %o1,4,%o1
ld [%o1],%o5 # source2-digit
- subcc %g0,%g1,%g0 # carry
+ subcc %g0,%g3,%g0 # carry
subxcc %o4,%o5,%o4 # subtrahieren
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
sub %o2,4,%o2
st %o4,[%o2] # Digit ablegen
subcc %o3,1,%o3
@@ -1545,12 +1545,12 @@
bne Ll57
_ sub %o0,4,%o0
Ll58: retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
#if COUNTER_LOOPS
andcc %o3,%o3,%g0
be Ll58
- _ mov %o4,%g1 # Carry
+ _ mov %o4,%g3 # Carry
sub %o0,4,%o0
sub %o1,4,%o1
sll %o3,2,%o3 # %o3 = 4*count
@@ -1559,27 +1559,27 @@
sub %o2,%o3,%o2 # %o2 = &destptr[-count]
Ll57: ld [%o0+%o3],%o4 # source1-digit
ld [%o1+%o3],%o5 # source2-digit
- subcc %g0,%g1,%g0 # carry
+ subcc %g0,%g3,%g0 # carry
subxcc %o4,%o5,%o4 # subtrahieren
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
subcc %o3,4,%o3
bne Ll57
_ st %o4,[%o2+%o3] # Digit ablegen
Ll58: retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
#if UNROLLED_LOOPS
and %o3,7,%o5 # count mod 8
- sll %o5,2,%g1
- sub %o0,%g1,%o0 # %o0 = &sourceptr1[-(count mod 8)]
- sub %o1,%g1,%o1 # %o1 = &sourceptr2[-(count mod 8)]
- sub %o2,%g1,%o2 # %o2 = &destptr[-(count mod 8)]
+ sll %o5,2,%g3
+ sub %o0,%g3,%o0 # %o0 = &sourceptr1[-(count mod 8)]
+ sub %o1,%g3,%o1 # %o1 = &sourceptr2[-(count mod 8)]
+ sub %o2,%g3,%o2 # %o2 = &destptr[-(count mod 8)]
sll %o5,4,%o5
- set _subx_loop_down+176,%g1
- sub %g1,%o5,%g1
- jmp %g1 # Sprung nach _subx_loop_down+4*(12+4*8-4*(count mod 8))
+ set _subx_loop_down+176,%g3
+ sub %g3,%o5,%g3
+ jmp %g3 # Sprung nach _subx_loop_down+4*(12+4*8-4*(count mod 8))
_ subcc %g0,%o4,%g0 # carry initialisieren
-Ll57: subcc %g0,%g1,%g0 # carry
+Ll57: subcc %g0,%g3,%g0 # carry
ld [%o0+28],%o4 # source1-digit
ld [%o1+28],%o5 # source2-digit
subxcc %o4,%o5,%o4 # subtrahieren
@@ -1612,7 +1612,7 @@
ld [%o1],%o5 # source2-digit
subxcc %o4,%o5,%o4 # subtrahieren
st %o4,[%o2] # Digit ablegen
- addx %g0,%g0,%g1 # neuer Carry
+ addx %g0,%g0,%g3 # neuer Carry
sub %o0,32,%o0
sub %o1,32,%o1
subcc %o3,8,%o3 # noch mindestens 8 Digits abzuarbeiten?
@@ -1619,7 +1619,7 @@
bcc Ll57
_ sub %o2,32,%o2
retl
- _ mov %g1,%o0
+ _ mov %g3,%o0
#endif
# extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
@@ -1831,10 +1831,10 @@
_ mov %o3,%o0
# extern uintD shiftleft_loop_down (uintD* ptr, uintC count, uintC i, uintD carry);
-C(shiftleft_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
+C(shiftleft_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
andcc %o1,%o1,%g0
be Ll72
- _ sub %g0,%o2,%g1 # 32-i (mod 32)
+ _ sub %g0,%o2,%g3 # 32-i (mod 32)
sub %o0,4,%o0
Ll71: ld [%o0],%o4 # Digit
subcc %o1,1,%o1
@@ -1841,7 +1841,7 @@
sll %o4,%o2,%o5 # dessen niedere (32-i) Bits
or %o3,%o5,%o5 # mit dem alten Carry kombinieren
st %o5,[%o0] # Digit ablegen
- srl %o4,%g1,%o3 # dessen höchste i Bits liefern den neuen Carry
+ srl %o4,%g3,%o3 # dessen höchste i Bits liefern den neuen Carry
bne Ll71
_ sub %o0,4,%o0
Ll72: retl
@@ -1848,11 +1848,11 @@
_ mov %o3,%o0
# extern uintD shiftleftcopy_loop_down (uintD* sourceptr, uintD* destptr, uintC count, uintC i);
-C(shiftleftcopy_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0
+C(shiftleftcopy_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0
andcc %o2,%o2,%g0
be Ll74
_ mov 0,%o4 # Carry := 0
- sub %g0,%o3,%g1 # 32-i (mod 32)
+ sub %g0,%o3,%g3 # 32-i (mod 32)
sub %o0,4,%o0
Ll73: ld [%o0],%o5 # Digit
subcc %o2,1,%o2
@@ -1860,7 +1860,7 @@
or %o4,%g2,%g2 # mit dem alten Carry kombinieren
sub %o1,4,%o1
st %g2,[%o1] # Digit ablegen
- srl %o5,%g1,%o4 # dessen höchste i Bits liefern den neuen Carry
+ srl %o5,%g3,%o4 # dessen höchste i Bits liefern den neuen Carry
bne Ll73
_ sub %o0,4,%o0
Ll74: retl
@@ -1883,17 +1883,17 @@
_ mov %o2,%o0
# extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i);
-C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
+C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
andcc %o1,%o1,%g0
be Ll78
_ or %g0,%g0,%o3 # Carry := 0
- sub %g0,%o2,%g1 # 32-i (mod 32)
+ sub %g0,%o2,%g3 # 32-i (mod 32)
Ll77: ld [%o0],%o4 # Digit
subcc %o1,1,%o1
srl %o4,%o2,%o5 # shiften
or %o3,%o5,%o5 # und mit altem Carry kombinieren
st %o5,[%o0] # und ablegen
- sll %o4,%g1,%o3 # neuer Carry
+ sll %o4,%g3,%o3 # neuer Carry
bne Ll77
_ add %o0,4,%o0
Ll78: retl
@@ -1900,12 +1900,12 @@
_ mov %o3,%o0
# extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i);
-C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
+C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
ld [%o0],%o4 # erstes Digit
- sub %g0,%o2,%g1 # 32-i (mod 32)
+ sub %g0,%o2,%g3 # 32-i (mod 32)
sra %o4,%o2,%o5 # shiften
st %o5,[%o0] # und ablegen
- sll %o4,%g1,%o3 # neuer Carry
+ sll %o4,%g3,%o3 # neuer Carry
subcc %o1,1,%o1
be Ll80
_ add %o0,4,%o0
@@ -1914,7 +1914,7 @@
srl %o4,%o2,%o5 # shiften
or %o3,%o5,%o5 # und mit altem Carry kombinieren
st %o5,[%o0] # und ablegen
- sll %o4,%g1,%o3 # neuer Carry
+ sll %o4,%g3,%o3 # neuer Carry
bne Ll79
_ add %o0,4,%o0
Ll80: retl
@@ -1921,17 +1921,17 @@
_ mov %o3,%o0
# extern uintD shiftrightcopy_loop_up (uintD* sourceptr, uintD* destptr, uintC count, uintC i, uintD carry);
-C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1,%g2, Output in %o0
- sub %g0,%o3,%g1 # 32-i (mod 32)
+C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3,%g2, Output in %o0
+ sub %g0,%o3,%g3 # 32-i (mod 32)
andcc %o2,%o2,%g0
be Ll82
- _ sll %o4,%g1,%g2 # erster Carry
+ _ sll %o4,%g3,%g2 # erster Carry
Ll81: ld [%o0],%o4 # Digit
add %o0,4,%o0
srl %o4,%o3,%o5 # shiften
or %g2,%o5,%o5 # und mit altem Carry kombinieren
st %o5,[%o1] # und ablegen
- sll %o4,%g1,%g2 # neuer Carry
+ sll %o4,%g3,%g2 # neuer Carry
subcc %o2,1,%o2
bne Ll81
_ add %o1,4,%o1
@@ -1982,7 +1982,7 @@
call _mulu32_ # mit digit multiplizieren
_ mov %i0,%o0
addcc %l0,%o0,%o0 # und bisherigen Carry addieren
- addx %g0,%g1,%l0 # High-Digit gibt neuen Carry
+ addx %g0,%g3,%l0 # High-Digit gibt neuen Carry
sub %i2,4,%i2
subcc %i3,1,%i3
bne Ll86
@@ -1991,16 +1991,16 @@
ret
_ restore
#else
-C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1
+C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3
mov 0,%o4 # Carry
-Ll87: ld [%o1-4],%g1 # nächstes Digit
- # mit digit multiplizieren: %o0 * %g1 -> %o5|%g1
+Ll87: ld [%o1-4],%g3 # nächstes Digit
+ # mit digit multiplizieren: %o0 * %g3 -> %o5|%g3
#ifdef sparcv8
sub %o1,4,%o1
- umul %g1,%o0,%g1
+ umul %g3,%o0,%g3
rd %y,%o5
#else
- mov %g1,%y
+ mov %g3,%y
sub %o1,4,%o1 # Wartetakt!
andcc %g0,%g0,%o5
mulscc %o5,%o0,%o5
@@ -2038,15 +2038,15 @@
mulscc %o5,%g0,%o5
tst %o0
bl,a Ll88
- __ add %o5,%g1,%o5
-Ll88: rd %y,%g1
+ __ add %o5,%g3,%o5
+Ll88: rd %y,%g3
#endif
- addcc %o4,%g1,%g1 # und bisherigen Carry addieren
+ addcc %o4,%g3,%g3 # und bisherigen Carry addieren
addx %g0,%o5,%o4 # High-Digit gibt neuen Carry
sub %o2,4,%o2
subcc %o3,1,%o3
bne Ll87
- _ st %g1,[%o2] # Low-Digit ablegen
+ _ st %g3,[%o2] # Low-Digit ablegen
retl
_ st %o4,[%o2-4] # letzten Carry ablegen
#endif
@@ -2063,7 +2063,7 @@
sub %i2,4,%i2
ld [%i2],%o1 # nächstes dest-digit
addcc %l0,%o0,%o0 # und bisherigen Carry addieren
- addx %g0,%g1,%l0 # High-Digit gibt neuen Carry
+ addx %g0,%g3,%l0 # High-Digit gibt neuen Carry
addcc %o1,%o0,%o0 # addieren
addx %g0,%l0,%l0
subcc %i3,1,%i3
@@ -2150,7 +2150,7 @@
sub %i2,4,%i2
ld [%i2],%o1 # nächstes dest-digit
addcc %l0,%o0,%o0 # und bisherigen Carry addieren
- addx %g0,%g1,%l0 # High-Digit gibt neuen Carry
+ addx %g0,%g3,%l0 # High-Digit gibt neuen Carry
subcc %o1,%o0,%o1 # davon das Low-Digit subtrahieren
addx %g0,%l0,%l0
subcc %i3,1,%i3
@@ -2230,16 +2230,16 @@
save %sp,-96,%sp
andcc %i2,%i2,%g0
be Ll92
- _ mov 0,%g1 # Rest
-Ll91: mov %g1,%o0 # Rest als High-Digit
+ _ mov 0,%g3 # Rest
+Ll91: mov %g3,%o0 # Rest als High-Digit
ld [%i1],%o1 # nächstes Digit als Low-Digit
call C(divu_6432_3232_) # zusammen durch digit dividieren
_ mov %i0,%o2
- st %o0,[%i1] # Quotient ablegen, Rest in %g1
+ st %o0,[%i1] # Quotient ablegen, Rest in %g3
subcc %i2,1,%i2
bne Ll91
_ add %i1,4,%i1
-Ll92: mov %g1,%i0 # Rest als Ergebnis
+Ll92: mov %g3,%i0 # Rest als Ergebnis
ret
_ restore
@@ -2248,17 +2248,17 @@
save %sp,-96,%sp
andcc %i3,%i3,%g0
be Ll94
- _ mov 0,%g1 # Rest
-Ll93: mov %g1,%o0 # Rest als High-Digit
+ _ mov 0,%g3 # Rest
+Ll93: mov %g3,%o0 # Rest als High-Digit
ld [%i1],%o1 # nächstes Digit als Low-Digit
call C(divu_6432_3232_) # zusammen durch digit dividieren
_ mov %i0,%o2
- st %o0,[%i2] # Quotient ablegen, Rest in %g1
+ st %o0,[%i2] # Quotient ablegen, Rest in %g3
add %i1,4,%i1
subcc %i3,1,%i3
bne Ll93
_ add %i2,4,%i2
-Ll94: mov %g1,%i0 # Rest als Ergebnis
+Ll94: mov %g3,%i0 # Rest als Ergebnis
ret
_ restore