picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

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:
Mdoc64/asm | 6+++---
Msrc64/arch/x86-64.l | 14+++++++-------
Msrc64/err.l | 4++--
Msrc64/flow.l | 6+++---
Msrc64/lib/asm.l | 4++--
Msrc64/main.l | 4++--
Msrc64/version.l | 4++--
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