commit ed03efde96a4cc693ae3b8ecce1c56c36f7099dc
parent 968a44c022214fe228c5ba101f5de56894ac28ed
Author: Commit-Bot <unknown>
Date: Sun, 13 Jun 2010 15:52:17 +0000
Automatic commit from picoLisp.tgz, From: Sun, 13 Jun 2010 15:52:17 GMT
Diffstat:
3 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/doc64/asm b/doc64/asm
@@ -1,4 +1,4 @@
-# 02jun10abu
+# 13jun10abu
# (c) Software Lab. Alexander Burger
@@ -103,8 +103,8 @@
sub dst src # Subtract 'src' from 'dst'
subc dst src # Subtract 'src' from 'dst' with Carry
- inc dst # Increment byte 'dst' [z..]
- dec dst # Increment byte 'dst' [z..]
+ inc dst # Increment 'dst' [z..]
+ dec dst # Increment 'dst' [z..]
not dst # One's complement negation of 'dst'
neg dst # Two's complement negation of 'dst'
diff --git a/lib/tags b/lib/tags
@@ -144,7 +144,7 @@ free (2034 . "@src64/db.l")
from (3342 . "@src64/io.l")
full (1066 . "@src64/subr.l")
fun? (734 . "@src64/sym.l")
-gc (442 . "@src64/gc.l")
+gc (446 . "@src64/gc.l")
ge0 (2374 . "@src64/big.l")
get (2750 . "@src64/sym.l")
getd (742 . "@src64/sym.l")
diff --git a/src64/gc.l b/src64/gc.l
@@ -1,4 +1,4 @@
-# 09jun10abu
+# 13jun10abu
# (c) Software Lab. Alexander Burger
# Mark data
@@ -150,25 +150,29 @@
shr C 1 # In use?
if c # Yes
null (Y -II) # Active?
- continue z # Yes
- push Y
- push C
- ld Y ((Y -II)) # Else get saved L
- do
- null Y # End of stack?
- while ne # No
- ld Z (Y) # Keep end of frame in Z
+ if z # Yes
+ ld E (Y -I) # Mark 'tag'
+ call markE
+ else
+ push Y
+ push C
+ ld Y ((Y -II)) # Else get saved L
do
- add Y I # End of frame?
- cmp Y Z
+ null Y # End of stack?
while ne # No
- ld E (Y) # Next item
- call markE # Mark it
+ ld Z (Y) # Keep end of frame in Z
+ do
+ add Y I # End of frame?
+ cmp Y Z
+ while ne # No
+ ld E (Y) # Next item
+ call markE # Mark it
+ loop
+ ld Y (Y) # Next frame
loop
- ld Y (Y) # Next frame
- loop
- pop C
- pop Y
+ pop C
+ pop Y
+ end
continue T
end
until z