commit 9bceb9de223beecfd086c5b817aef394f4a7c871
parent c36a8d709416bb58d1b0b20cf9ea217df9692377
Author: Commit-Bot <unknown>
Date: Tue, 1 Jun 2010 16:55:32 +0000
Automatic commit from picoLisp.tgz, From: Tue, 01 Jun 2010 16:55:32 GMT
Diffstat:
7 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/doc64/asm b/doc64/asm
@@ -1,4 +1,4 @@
-# 19may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
@@ -91,7 +91,7 @@
st2 dst # Store two bytes from 'A' into 'dst'
st4 dst # Store four bytes from 'A' into 'dst'
xchg dst dst # Exchange 'dst's
- movm dst src end # Move memory between 'src' and 'end' to 'dst'
+ movm dst src end # Move (aligned) memory 'src'..'end' to 'dst'
movn dst src cnt # Move 'cnt' bytes from 'src' to 'dst'
mset dst cnt # Set 'cnt' bytes of memory to B
@@ -132,7 +132,7 @@
Comparisons:
cmp dst src # Compare 'dst' with 'src' [z.c]
cmp4 src # Compare four bytes in 'A' with 'src'
- cmpm dst src end # Compare 'dst' with with memory between 'src' and 'end'
+ cmpm dst src end # Compare (aligned) memory 'dst' with 'src'..'end'
cmpn dst src cnt # Compare 'cnt' bytes 'dst' with 'src'
slen dst src # Set 'dst' to the string length of 'src'
memb src cnt # Find B in 'cnt' bytes of memory
diff --git a/src64/arch/x86-64.l b/src64/arch/x86-64.l
@@ -1,4 +1,4 @@
-# 19may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
# Byte order
@@ -267,13 +267,13 @@
(dstDst "xchg" (dst Dst D) (src Dst2 D2)) )
(asm movm (Dst D Src S End E)
- (setq Dst (dst Dst D))
- (prinst (if (pre? "%" Dst) "mov" "lea") Dst "%rdi")
+ (lea Dst D "%rdi")
(lea Src S "%rsi")
(lea End E "%rcx")
(prinst "sub" "%rsi" "%rcx")
+ (prinst "shr" "$3" "%rcx")
(prinst "cld")
- (prinst "rep movsb") )
+ (prinst "rep movsq") )
(asm movn (Dst D Src S Cnt C)
(lea Dst D "%rdi")
@@ -408,13 +408,13 @@
(prinst "cmp" (src Src S) "%eax") )
(asm cmpm (Dst D Src S End E)
- (setq Dst (dst Dst D))
- (prinst (if (pre? "%" Dst) "mov" "lea") Dst "%rsi")
+ (lea Dst D "%rdi")
(lea Src S "%rdi")
(lea End E "%rcx")
(prinst "sub" "%rsi" "%rcx")
+ (prinst "shr" "$3" "%rcx")
(prinst "cld")
- (prinst "repnz cmpsb") )
+ (prinst "repnz cmpsq") )
(asm cmpn (Dst D Src S Cnt C)
(setq Dst (dst Dst D))
diff --git a/src64/err.l b/src64/err.l
@@ -1,4 +1,4 @@
-# 19may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
# Debug print routine
@@ -247,7 +247,7 @@
while nz # Yes
call popCtlFiles # Clean up
loop
- movn (Env) (X III) "(EnvEnd-Env)" # Restore environment
+ movm (Env) (X III) (X (pack III "+EnvEnd-Env")) # Restore environment
ld E (X II) # 'fin'
eval # Evaluate 'finally' expression
cmp X (S) # Reached target catch frame?
diff --git a/src64/flow.l b/src64/flow.l
@@ -1,4 +1,4 @@
-# 19may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
(code 'redefMsgEC)
@@ -2485,7 +2485,7 @@
ld X (X CDR) # X on body
eval # Evaluate tag
sub S "(EnvEnd-Env)" # Build catch frame
- movn (S) (Env) "(EnvEnd-Env)" # Save environment
+ movm (S) (Env) (EnvEnd) # Save environment
push ZERO # 'fin'
push E # 'tag'
push (Catch) # Link
@@ -2536,7 +2536,7 @@
(code 'doFinally 2)
push X
sub S "(EnvEnd-Env)" # Build catch frame
- movn (S) (Env) "(EnvEnd-Env)" # Save environment
+ movm (S) (Env) (EnvEnd) # Save environment
ld X (E CDR)
push (X) # 'exe' -> 'fin'
ld X (X CDR)
diff --git a/src64/lib/asm.l b/src64/lib/asm.l
@@ -1,4 +1,4 @@
-# 19may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
# *LittleEndian *Registers optimize
@@ -209,7 +209,7 @@
(T X) ) )
((asoq (car X) *Registers)
(cons (car X) (operand (cadr X))) )
- ((memq (car X) '(+ - * */ / % >> & | short char hex oct))
+ ((memq (car X) '(+ - * */ / % >> & | pack short char hex oct))
(apply (car X) (mapcar operand (cdr X))) )
(T (cons (car X) (operand (cadr X)))) ) )
diff --git a/src64/main.l b/src64/main.l
@@ -1,4 +1,4 @@
-# 30may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
### Global return labels ###
@@ -1426,7 +1426,7 @@
ld C L # Top of args
sub C X # Bytes
sub S C # Duplicate
- movn (S) (X) C
+ movm (S) (X) (L)
ld Y (Z) # Get function pointer
cc (Y) X # Call C-function
ld E (Z -II) # Get result specification
diff --git a/src64/version.l b/src64/version.l
@@ -1,6 +1,6 @@
-# 30may10abu
+# 01jun10abu
# (c) Software Lab. Alexander Burger
-(de *Version 3 0 2 25)
+(de *Version 3 0 2 26)
# vi:et:ts=3:sw=3