diff -r 165add577cba -r e336bbbceb4f components/clisp/patches/arisparc64.d.patch --- a/components/clisp/patches/arisparc64.d.patch Tue Jan 12 04:51:27 2016 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,459 +0,0 @@ ---- src.orig/arisparc64.d Thu Dec 6 00:06:32 2007 -+++ src/arisparc64.d Mon Feb 2 15:35:22 2009 -@@ -75,9 +75,9 @@ - - # 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 - umul %o0,%o1,%o2 -- rd %y,%g1 -+ rd %y,%g3 - retl - _ srl %o2,0,%o0 - -@@ -90,11 +90,11 @@ - - # 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 - wr %o0,%g0,%y - udiv %o1,%o2,%o0 # x durch y dividieren, %o0 := q -- umul %o0,%o2,%g1 # %g1 := (q*y) mod 2^32 -- sub %o1,%g1,%g1 # %g1 := (xlo-q*y) mod 2^32 = r -+ umul %o0,%o2,%g3 # %g3 := (q*y) mod 2^32 -+ sub %o1,%g3,%g3 # %g3 := (xlo-q*y) mod 2^32 = r - retl - _ srl %o0,0,%o0 - -@@ -104,13 +104,13 @@ - wr %g0,%g0,%y - udiv %o0,%o1,%o2 # dividieren, Quotient nach %o2 - #if 0 # Who says that %y has some meaningful contents after `udiv' ?? -- rd %y,%g1 # Rest aus %y -+ rd %y,%g3 # Rest aus %y - #else -- umul %o2,%o1,%g1 # %g1 := (q*y) mod 2^32 -- sub %o0,%g1,%g1 # %g1 := (x-q*y) mod 2^32 = r -+ umul %o2,%o1,%g3 # %g3 := (q*y) mod 2^32 -+ sub %o0,%g3,%g3 # %g3 := (x-q*y) mod 2^32 = r - #endif -- sll %g1,16,%g1 # in die oberen 16 Bit schieben -- or %o2,%g1,%o0 -+ sll %g3,16,%g3 # in die oberen 16 Bit schieben -+ or %o2,%g3,%o0 - retl - _ srl %o0,0,%o0 - -@@ -713,28 +713,28 @@ - #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 - # srl %o3,0,%o3 # zero-extend %o3 = count - brz,pn %o3,2f -- _ mov %g0,%g1 # Carry := 0 -+ _ mov %g0,%g3 # Carry := 0 - 1: sub %o0,4,%o0 - lduw [%o0],%o4 # source1-digit, zero-extend - sub %o1,4,%o1 - lduw [%o1],%o5 # source2-digit, zero-extend -- add %g1,%o4,%g1 # zum Carry addieren -- add %g1,%o5,%g1 # zum Carry addieren -- st %g1,[%o2] # Digit ablegen -+ add %g3,%o4,%g3 # zum Carry addieren -+ add %g3,%o5,%g3 # zum Carry addieren -+ st %g3,[%o2] # Digit ablegen - subcc %o3,1,%o3 - bne,pt %xcc,1b -- _ srlx %g1,32,%g1 # neuer Carry -+ _ srlx %g3,32,%g3 # neuer Carry - 2: retl -- _ mov %g1,%o0 -+ _ mov %g3,%o0 - #endif - #if COUNTER_LOOPS - # srl %o3,0,%o3 # zero-extend %o3 = count - brz,pn %o3,2f -- _ mov %g0,%g1 # Carry := 0 -+ _ mov %g0,%g3 # Carry := 0 - sub %o0,4,%o0 - sub %o1,4,%o1 - sllx %o3,2,%o3 # %o3 = 4*count -@@ -743,14 +743,14 @@ - sub %o2,%o3,%o2 # %o2 = &destptr[-count] - 1: lduw [%o0+%o3],%o4 # source1-digit, zero-extend - lduw [%o1+%o3],%o5 # source2-digit, zero-extend -- add %g1,%o4,%g1 # zum Carry addieren -- add %g1,%o5,%g1 # zum Carry addieren -- st %g1,[%o2+%o3] # Digit ablegen -+ add %g3,%o4,%g3 # zum Carry addieren -+ add %g3,%o5,%g3 # zum Carry addieren -+ st %g3,[%o2+%o3] # Digit ablegen - subcc %o3,4,%o3 - bne,pt %xcc,1b -- _ srlx %g1,32,%g1 # neuer Carry -+ _ srlx %g3,32,%g3 # neuer Carry - 2: retl -- _ mov %g1,%o0 -+ _ mov %g3,%o0 - #endif - - # extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count); -@@ -831,28 +831,28 @@ - #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 - # srl %o3,0,%o3 # zero-extend %o3 = count - brz,pn %o3,2f -- _ mov %g0,%g1 # Carry := 0 -+ _ mov %g0,%g3 # Carry := 0 - 1: sub %o0,4,%o0 - lduw [%o0],%o4 # source1-digit, zero-extend - sub %o1,4,%o1 - lduw [%o1],%o5 # source2-digit, zero-extend -- add %g1,%o4,%g1 # zum Carry addieren -- sub %g1,%o5,%g1 # vom Carry subtrahieren -- st %g1,[%o2] # Digit ablegen -+ add %g3,%o4,%g3 # zum Carry addieren -+ sub %g3,%o5,%g3 # vom Carry subtrahieren -+ st %g3,[%o2] # Digit ablegen - subcc %o3,1,%o3 - bne,pt %xcc,1b -- _ srax %g1,32,%g1 # neuer Carry -+ _ srax %g3,32,%g3 # neuer Carry - 2: retl -- _ srl %g1,0,%o0 -+ _ srl %g3,0,%o0 - #endif - #if COUNTER_LOOPS - # srl %o3,0,%o3 # zero-extend %o3 = count - brz,pn %o3,2f -- _ mov %g0,%g1 # Carry := 0 -+ _ mov %g0,%g3 # Carry := 0 - sub %o0,4,%o0 - sub %o1,4,%o1 - sllx %o3,2,%o3 # %o3 = 4*count -@@ -861,39 +861,39 @@ - sub %o2,%o3,%o2 # %o2 = &destptr[-count] - 1: lduw [%o0+%o3],%o4 # source1-digit, zero-extend - lduw [%o1+%o3],%o5 # source2-digit, zero-extend -- add %g1,%o4,%g1 # zum Carry addieren -- sub %g1,%o5,%g1 # vom Carry subtrahieren -- st %g1,[%o2+%o3] # Digit ablegen -+ add %g3,%o4,%g3 # zum Carry addieren -+ sub %g3,%o5,%g3 # vom Carry subtrahieren -+ st %g3,[%o2+%o3] # Digit ablegen - subcc %o3,4,%o3 - bne,pt %xcc,1b -- _ srax %g1,32,%g1 # neuer Carry -+ _ srax %g3,32,%g3 # neuer Carry - 2: retl -- _ srl %g1,0,%o0 -+ _ srl %g3,0,%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 - # srl %o3,0,%o3 # zero-extend %o3 = count - brz,pn %o3,2f -- _ sra %o4,0,%g1 # Carry, sign-extend -+ _ sra %o4,0,%g3 # Carry, sign-extend - 1: sub %o0,4,%o0 - lduw [%o0],%o4 # source1-digit, zero-extend - sub %o1,4,%o1 - lduw [%o1],%o5 # source2-digit, zero-extend -- add %g1,%o4,%g1 # zum Carry addieren -- sub %g1,%o5,%g1 # vom Carry subtrahieren -- st %g1,[%o2] # Digit ablegen -+ add %g3,%o4,%g3 # zum Carry addieren -+ sub %g3,%o5,%g3 # vom Carry subtrahieren -+ st %g3,[%o2] # Digit ablegen - subcc %o3,1,%o3 - bne,pt %xcc,1b -- _ srax %g1,32,%g1 # neuer Carry -+ _ srax %g3,32,%g3 # neuer Carry - 2: retl -- _ srl %g1,0,%o0 -+ _ srl %g3,0,%o0 - #endif - #if COUNTER_LOOPS - # srl %o3,0,%o3 # zero-extend %o3 = count - brz,pn %o3,2f -- _ sra %o4,0,%g1 # Carry, sign-extend -+ _ sra %o4,0,%g3 # Carry, sign-extend - sub %o0,4,%o0 - sub %o1,4,%o1 - sllx %o3,2,%o3 # %o3 = 4*count -@@ -902,14 +902,14 @@ - sub %o2,%o3,%o2 # %o2 = &destptr[-count] - 1: lduw [%o0+%o3],%o4 # source1-digit, zero-extend - lduw [%o1+%o3],%o5 # source2-digit, zero-extend -- add %g1,%o4,%g1 # zum Carry addieren -- sub %g1,%o5,%g1 # vom Carry subtrahieren -- st %g1,[%o2+%o3] # Digit ablegen -+ add %g3,%o4,%g3 # zum Carry addieren -+ sub %g3,%o5,%g3 # vom Carry subtrahieren -+ st %g3,[%o2+%o3] # Digit ablegen - subcc %o3,4,%o3 - bne,pt %xcc,1b -- _ srax %g1,32,%g1 # neuer Carry -+ _ srax %g3,32,%g3 # neuer Carry - 2: retl -- _ srl %g1,0,%o0 -+ _ srl %g3,0,%o0 - #endif - - # extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count); -@@ -1135,16 +1135,16 @@ - #endif - - # 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 - #ifdef SLOWER - # srl %o1,0,%o1 # zero-extend %o1 = count - brz,pn %o1,2f - _ or %g0,%g0,%o3 # Carry := 0 -- mov 32,%g1 -- sub %g1,%o2,%g1 # 32-i -+ mov 32,%g3 -+ sub %g3,%o2,%g3 # 32-i - 1: lduw [%o0],%o4 # Digit, zero-extend - subcc %o1,1,%o1 -- sllx %o4,%g1,%o4 # shiften -+ sllx %o4,%g3,%o4 # shiften - or %o3,%o4,%o3 # und mit altem Carry kombinieren - srlx %o3,32,%o4 - st %o4,[%o0] # und ablegen -@@ -1157,13 +1157,13 @@ - # srl %o1,0,%o1 # zero-extend %o1 = count - brz,pn %o1,2f - _ or %g0,%g0,%o3 # Carry := 0 -- sub %g0,%o2,%g1 # 32-i (mod 32) -+ sub %g0,%o2,%g3 # 32-i (mod 32) - 1: 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,pt %xcc,1b - _ add %o0,4,%o0 - 2: retl -@@ -1171,14 +1171,14 @@ - #endif - - # 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 - #ifdef SLOWER - # srl %o1,0,%o1 # zero-extend %o1 = count -- mov 32,%g1 -- sub %g1,%o2,%g1 # 32-i -+ mov 32,%g3 -+ sub %g3,%o2,%g3 # 32-i - ldsw [%o0],%o3 # erstes Digit, sign-extend - subcc %o1,1,%o1 -- sllx %o3,%g1,%o3 # shiften -+ sllx %o3,%g3,%o3 # shiften - srlx %o3,32,%o4 - st %o4,[%o0] # und ablegen - sllx %o3,32,%o3 # neuer Carry -@@ -1186,7 +1186,7 @@ - _ add %o0,4,%o0 - 1: lduw [%o0],%o4 # Digit, zero-extend - subcc %o1,1,%o1 -- sllx %o4,%g1,%o4 # shiften -+ sllx %o4,%g3,%o4 # shiften - or %o3,%o4,%o3 # und mit altem Carry kombinieren - srlx %o3,32,%o4 - st %o4,[%o0] # und ablegen -@@ -1198,10 +1198,10 @@ - #else - # srl %o1,0,%o1 # zero-extend %o1 = count - 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,pn %xcc,2f - _ add %o0,4,%o0 -@@ -1210,7 +1210,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,pt %xcc,1b - _ add %o0,4,%o0 - 2: retl -@@ -1218,16 +1218,16 @@ - #endif - - # 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 -+C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3,%g2, Output in %o0 - #ifdef SLOWER - # srl %o2,0,%o2 # zero-extend %o2 = count -- sub %g0,%o3,%g1 # 64-i (mod 64) -+ sub %g0,%o3,%g3 # 64-i (mod 64) - brz,pn %o2,2f -- _ sllx %o4,%g1,%o4 # erster Carry -- add %g1,32,%g1 # 32-i -+ _ sllx %o4,%g3,%o4 # erster Carry -+ add %g3,32,%g3 # 32-i - 1: lduw [%o0],%o5 # Digit, zero-extend - add %o0,4,%o0 -- sllx %o5,%g1,%o5 # shiften -+ sllx %o5,%g3,%o5 # shiften - or %o4,%o5,%o4 # und mit altem Carry kombinieren - srlx %o4,32,%o5 - st %o5,[%o1] # und ablegen -@@ -1239,15 +1239,15 @@ - _ srlx %o4,32,%o0 - #else - # srl %o2,0,%o2 # zero-extend %o2 = count -- sub %g0,%o3,%g1 # 32-i (mod 32) -+ sub %g0,%o3,%g3 # 32-i (mod 32) - brz,pn %o2,2f -- _ sll %o4,%g1,%g2 # erster Carry -+ _ sll %o4,%g3,%g2 # erster Carry - 1: 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,pt %xcc,1b - _ add %o1,4,%o1 -@@ -1290,58 +1290,58 @@ - _ srl %o3,0,%o0 - - # extern void mulu_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); --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 - # srl %o3,0,%o3 # zero-extend %o3 = len - mov 0,%o4 # Carry - 1: sub %o1,4,%o1 -- ld [%o1],%g1 # nächstes Digit -+ ld [%o1],%g3 # nächstes Digit - sub %o2,4,%o2 -- # mit digit multiplizieren: %o0 * %g1 -> %o5|%g1 -- umul %g1,%o0,%g1 -+ # mit digit multiplizieren: %o0 * %g3 -> %o5|%g3 -+ umul %g3,%o0,%g3 - rd %y,%o5 -- 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 - subcc %o3,1,%o3 - bne,pt %xcc,1b -- _ st %g1,[%o2] # Low-Digit ablegen -+ _ st %g3,[%o2] # Low-Digit ablegen - retl - _ st %o4,[%o2-4] # letzten Carry ablegen - - # extern uintD muluadd_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); --C(muluadd_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0 -+C(muluadd_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0 - # srl %o3,0,%o3 # zero-extend %o3 = len - mov 0,%o4 # Carry - 1: sub %o1,4,%o1 - ld [%o1],%o5 # nächstes source-Digit - sub %o2,4,%o2 -- # mit digit multiplizieren: %o0 * %o5 -> %g2|%g1 -- umul %o0,%o5,%g1 -+ # mit digit multiplizieren: %o0 * %o5 -> %g2|%g3 -+ umul %o0,%o5,%g3 - rd %y,%g2 - ld [%o2],%o5 # nächstes dest-digit -- addcc %o4,%g1,%g1 # und bisherigen Carry addieren -+ addcc %o4,%g3,%g3 # und bisherigen Carry addieren - addx %g0,%g2,%o4 # High-Digit gibt neuen Carry -- addcc %o5,%g1,%g1 # addieren -+ addcc %o5,%g3,%g3 # addieren - addx %g0,%o4,%o4 - subcc %o3,1,%o3 - bne,pt %xcc,1b -- _ st %g1,[%o2] # Low-Digit ablegen -+ _ st %g3,[%o2] # Low-Digit ablegen - retl - _ srl %o4,0,%o0 # letzter Carry - - # extern uintD mulusub_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); --C(mulusub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0 -+C(mulusub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0 - # srl %o3,0,%o3 # zero-extend %o3 = len - mov 0,%o4 # Carry - 1: sub %o1,4,%o1 - ld [%o1],%o5 # nächstes source-Digit - sub %o2,4,%o2 -- # mit digit multiplizieren: %o0 * %o5 -> %g2|%g1 -- umul %o0,%o5,%g1 -+ # mit digit multiplizieren: %o0 * %o5 -> %g2|%g3 -+ umul %o0,%o5,%g3 - rd %y,%g2 - ld [%o2],%o5 # nächstes dest-digit -- addcc %o4,%g1,%g1 # und bisherigen Carry addieren -+ addcc %o4,%g3,%g3 # und bisherigen Carry addieren - addx %g0,%g2,%o4 # High-Digit gibt neuen Carry -- subcc %o5,%g1,%o5 # davon das Low-Digit subtrahieren -+ subcc %o5,%g3,%o5 # davon das Low-Digit subtrahieren - addx %g0,%o4,%o4 - subcc %o3,1,%o3 - bne,pt %xcc,1b -@@ -1350,7 +1350,7 @@ - _ srl %o4,0,%o0 # letzter Carry - - # extern uintD divu_loop_up (uintD digit, uintD* ptr, uintC len); --C(divu_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0 -+C(divu_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0 - # srl %o2,0,%o2 # zero-extend %o2 = len - brz,pn %o2,2f - _ mov 0,%o3 # Rest -@@ -1360,8 +1360,8 @@ - or %o3,%o4,%o3 # zusammen - udivx %o3,%o0,%o4 # durch digit dividieren - st %o4,[%o1] # Quotient ablegen -- umul %o0,%o4,%g1 -- sub %o3,%g1,%o3 # Rest in den unteren 32 Bit von %o3 -+ umul %o0,%o4,%g3 -+ sub %o3,%g3,%o3 # Rest in den unteren 32 Bit von %o3 - subcc %o2,1,%o2 - bne,pt %xcc,1b - _ add %o1,4,%o1 -@@ -1369,7 +1369,7 @@ - _ srl %o3,0,%o0 # Rest als Ergebnis - - # extern uintD divucopy_loop_up (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); --C(divucopy_loop_up:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0 -+C(divucopy_loop_up:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0 - # srl %o3,0,%o3 # zero-extend %o3 = len - brz,pn %o3,2f - _ mov 0,%o4 # Rest -@@ -1380,8 +1380,8 @@ - or %o4,%o5,%o4 # zusammen - udivx %o4,%o0,%o5 # durch digit dividieren - st %o5,[%o2] # Quotient ablegen -- umul %o0,%o5,%g1 -- sub %o4,%g1,%o4 # Rest in den unteren 32 Bit von %o4 -+ umul %o0,%o5,%g3 -+ sub %o4,%g3,%o4 # Rest in den unteren 32 Bit von %o4 - subcc %o3,1,%o3 - bne,pt %xcc,1b - _ add %o2,4,%o2